Beispiel #1
0
func (s *t) snarf(conn *irc.Connection, msg *irc.Message) {
	if msg.String() == "" {
		return
	}

	stmt, err := s.db.Prepare(
		fmt.Sprintf("select id from %s where nick like ?", tableName))
	defer stmt.Finalize()

	if err != nil {
		log.Printf("seen.snarf() 1: sql error: %s", err)
		return
	}

	stmt.Exec(msg.Nick)
	found := stmt.Next()

	if found {
		var id int
		stmt.Scan(&id)
		stmt.Reset()
		stmt, err = s.db.Prepare(
			fmt.Sprintf("update %s set datetime = ?, message = ? where id = ?", tableName))

		if err != nil {
			log.Printf("seen.snarf() 2: sql error: %s", err)
			return
		}

		stmt.Exec(time.Seconds(), msg.String(), id)
		stmt.Next()
	} else {
		stmt.Reset()
		stmt, err = s.db.Prepare(
			fmt.Sprintf("insert into %s (datetime, nick, message) values(?, ?, ?)", tableName))

		if err != nil {
			log.Printf("seen.snarf() 3: sql error: %s", err)
			return
		}

		stmt.Exec(time.Seconds(), msg.Nick, msg.String())
		stmt.Next()
	}
}