package main import ( "fmt" "log" "strings" "dim13.org/rfc" irc "github.com/fluffle/goirc/client" ) var rfcMap = make(map[int]rfc.Entry) func ExtractRFC(conn *irc.Conn, line *irc.Line) { for _, v := range strings.Fields(line.Text()) { var id int w := strings.ToUpper(v) if _, err := fmt.Sscanf(w, "RFC%d", &id); err == nil { if entry, ok := rfcMap[id]; ok { s := fmt.Sprint(entry) conn.Privmsg(line.Target(), s) } } } } func init() { fd, err := rfc.Open() if err != nil { log.Fatal(err) } entries, err := rfc.Decode(fd) if err != nil { log.Fatal(err) } for _, e := range entries { id := e.ID() rfcMap[id] = e } }