aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristine Dodrill <me@christine.website>2018-10-04 18:06:52 -0700
committerChristine Dodrill <me@christine.website>2018-10-04 18:06:52 -0700
commit7103fa3380d0038b4e1a452ef6aa8f3c3a9298ca (patch)
treec66845fc6bec9e4e7bd1f3ca54fd44db8e8476ad
parentf69f9d2eb2f51fe0b5df503ae5fa7477b931844b (diff)
downloadx-7103fa3380d0038b4e1a452ef6aa8f3c3a9298ca.tar.xz
x-7103fa3380d0038b4e1a452ef6aa8f3c3a9298ca.zip
ilo Kesi o, sina wile lukin li taso toki pona.
-rw-r--r--discord/ilo-kesi/bot.go1
-rw-r--r--discord/ilo-kesi/main.go13
-rw-r--r--discord/ilo-kesi/parse.go1
-rw-r--r--discord/ilo-kesi/tokipona.go35
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,")
+}