summaryrefslogtreecommitdiff
path: root/rfc.go
diff options
context:
space:
mode:
Diffstat (limited to 'rfc.go')
-rw-r--r--rfc.go72
1 files changed, 0 insertions, 72 deletions
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{})
-}