diff options
| author | Christine Dodrill <me@christine.website> | 2018-10-04 18:06:52 -0700 |
|---|---|---|
| committer | Christine Dodrill <me@christine.website> | 2018-10-04 18:06:52 -0700 |
| commit | 7103fa3380d0038b4e1a452ef6aa8f3c3a9298ca (patch) | |
| tree | c66845fc6bec9e4e7bd1f3ca54fd44db8e8476ad | |
| parent | f69f9d2eb2f51fe0b5df503ae5fa7477b931844b (diff) | |
| download | x-7103fa3380d0038b4e1a452ef6aa8f3c3a9298ca.tar.xz x-7103fa3380d0038b4e1a452ef6aa8f3c3a9298ca.zip | |
ilo Kesi o, sina wile lukin li taso toki pona.
| -rw-r--r-- | discord/ilo-kesi/bot.go | 1 | ||||
| -rw-r--r-- | discord/ilo-kesi/main.go | 13 | ||||
| -rw-r--r-- | discord/ilo-kesi/parse.go | 1 | ||||
| -rw-r--r-- | discord/ilo-kesi/tokipona.go | 35 |
4 files changed, 49 insertions, 1 deletions
diff --git a/discord/ilo-kesi/bot.go b/discord/ilo-kesi/bot.go index 07c0721..6bfe9a9 100644 --- a/discord/ilo-kesi/bot.go +++ b/discord/ilo-kesi/bot.go @@ -11,6 +11,7 @@ type ilo struct { cfg lipuSona sw switchcounter.API chain *Chain + words []Word } var ( diff --git a/discord/ilo-kesi/main.go b/discord/ilo-kesi/main.go index cda2584..9d6f5c0 100644 --- a/discord/ilo-kesi/main.go +++ b/discord/ilo-kesi/main.go @@ -63,10 +63,16 @@ func main() { log.Fatal(err) } + words, err := loadWords("./tokipona.json") + if err != nil { + log.Fatal(err) + } + i := ilo{ cfg: cfg, sw: sw, chain: chain, + words: words, } line.SetCtrlCAborts(true) @@ -78,7 +84,12 @@ func main() { return } - result, err := i.parse(m.Author.ID, m.ContentWithMentionsReplaced()) + msg := m.ContentWithMentionsReplaced() + if !i.tokiNiTokiPonaAnuSeme(msg) { + return + } + + result, err := i.parse(m.Author.ID, msg) if err != nil { switch err { case ErrJanLawaAla, ErrUnknownAction: diff --git a/discord/ilo-kesi/parse.go b/discord/ilo-kesi/parse.go index 30b9b66..ec83f1f 100644 --- a/discord/ilo-kesi/parse.go +++ b/discord/ilo-kesi/parse.go @@ -11,6 +11,7 @@ import ( ) var ( + ErrNotTokiPona = errors.New("toki ni li toki pona ala") ErrNotAddressed = errors.New("ilo-kesi: ilo kesi was not addressed") ) diff --git a/discord/ilo-kesi/tokipona.go b/discord/ilo-kesi/tokipona.go new file mode 100644 index 0000000..2422002 --- /dev/null +++ b/discord/ilo-kesi/tokipona.go @@ -0,0 +1,35 @@ +package main + +import ( + "encoding/json" + "os" + "strings" +) + +type Word struct { + Name string `json:"name"` + Gloss string `json:"gloss"` + Grammar []string `json:"grammar"` + Category string `json:"category,omitempty"` + Type string `json:"type,omitempty"` +} + +func loadWords(fname string) ([]Word, error) { + fin, err := os.Open(fname) + if err != nil { + return nil, err + } + defer fin.Close() + + var result []Word + err = json.NewDecoder(fin).Decode(&result) + if err != nil { + return nil, err + } + + return result, nil +} + +func (i ilo) tokiNiTokiPonaAnuSeme(lipu string) bool { + return strings.HasPrefix(lipu, "ilo Kesi o,") +} |
