From 31185836998a18f9a14102942dab04a0324a1194 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Sun, 16 Oct 2016 20:27:37 +0200 Subject: Drop RFC parser --- rfc.go | 72 ------------------------------------------------------------------ 1 file changed, 72 deletions(-) delete mode 100644 rfc.go (limited to 'rfc.go') diff --git a/rfc.go b/rfc.go deleted file mode 100644 index 5f218e1..0000000 --- a/rfc.go +++ /dev/null @@ -1,72 +0,0 @@ -package main - -import ( - "fmt" - "log" - "strings" - - "dim13.org/rfc" - irc "github.com/fluffle/goirc/client" -) - -type RFC struct{} - -var ( - rfcMap = make(map[int]rfc.Entry) - rfcKW = make(map[string][]string) -) - -func (RFC) Handle(conn *irc.Conn, line *irc.Line) { - if f := strings.Fields(line.Text()); len(f) > 1 { - kw := strings.ToLower(f[1]) - if e, ok := rfcKW[kw]; ok { - if line.Public() && len(e) > 10 { - n := fmt.Sprint("... ", len(e), " total") - e = append(e[:10], n) - } - s := strings.Join(e, ", ") - conn.Notice(line.Target(), s) - } else { - conn.Notice(line.Target(), "no matches") - } - } -} - -func (RFC) String() string { - return "search rfc by keyword (msg privat to see all matches)" -} - -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.Notice(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 - for _, w := range e.Keywords { - for _, f := range strings.Fields(w) { - kw := strings.ToLower(f) - rfcKW[kw] = append(rfcKW[kw], e.DocID) - } - } - } - Register("rfc", &RFC{}) -} -- cgit v1.2.3