aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristine Dodrill <me@christine.website>2018-12-04 19:47:14 -0800
committerChristine Dodrill <me@christine.website>2018-12-05 13:37:38 -0800
commite43bb4564c63edd28fff633143f35f296d483097 (patch)
tree76786d72ea6947df455856e61ac28b7c04a78ac4
parentfd64075ea32a760527f71c9680d71f99607ffcc3 (diff)
downloadx-e43bb4564c63edd28fff633143f35f296d483097.tar.xz
x-e43bb4564c63edd28fff633143f35f296d483097.zip
make polyglot work
-rw-r--r--go.mod1
-rw-r--r--go.sum2
-rw-r--r--telegram/polyglot/camxes.go61
-rw-r--r--telegram/polyglot/main.go17
-rw-r--r--tg/polyglot/main.go55
5 files changed, 58 insertions, 78 deletions
diff --git a/go.mod b/go.mod
index 528ca07..37f24c7 100644
--- a/go.mod
+++ b/go.mod
@@ -55,5 +55,6 @@ require (
golang.org/x/oauth2 v0.0.0-20181003184128-c57b0facaced
golang.org/x/sys v0.0.0-20181004145325-8469e314837c // indirect
gopkg.in/irc.v1 v1.3.0
+ gopkg.in/tucnak/telebot.v2 v2.0.0-20181115150921-4688194c178d
gopkg.in/yaml.v2 v2.2.1 // indirect
)
diff --git a/go.sum b/go.sum
index 163c67d..bcf1f82 100644
--- a/go.sum
+++ b/go.sum
@@ -217,6 +217,8 @@ gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8
gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=
gopkg.in/irc.v1 v1.3.0 h1:28A0njDuHNueatbQZsRB78CaU8sueA8JWIXVvue60sg=
gopkg.in/irc.v1 v1.3.0/go.mod h1:yXDeqklL7+ht3OdUIo0r8WaraGQyjyD+/92R1YxNZxM=
+gopkg.in/tucnak/telebot.v2 v2.0.0-20181115150921-4688194c178d h1:rwP+DFa5TQOEP7iCCc2z0ql57CtuI+divggCiXbuYR0=
+gopkg.in/tucnak/telebot.v2 v2.0.0-20181115150921-4688194c178d/go.mod h1:EmWSFwexO5JPTHiU7gDd9HMCCiyatACwO0HhuKNsOd0=
gopkg.in/yaml.v2 v2.2.1 h1:mUhvW9EsL+naU5Q3cakzfE91YhliOondGd6ZrsDBHQE=
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
grpc.go4.org v0.0.0-20170609214715-11d0a25b4919/go.mod h1:77eQGdRu53HpSqPFJFmuJdjuHRquDANNeA4x7B8WQ9o=
diff --git a/telegram/polyglot/camxes.go b/telegram/polyglot/camxes.go
deleted file mode 100644
index 31e8532..0000000
--- a/telegram/polyglot/camxes.go
+++ /dev/null
@@ -1,61 +0,0 @@
-package main
-
-import (
- "bytes"
- "log"
- "strings"
-
- "github.com/Syfaro/finch"
- "github.com/Xe/johaus/parser"
- _ "github.com/Xe/johaus/parser/camxes"
- "github.com/Xe/johaus/pretty"
- tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api/v5"
-)
-
-func init() {
- finch.RegisterCommand(&camxesCommand{})
-}
-
-type camxesCommand struct {
- finch.CommandBase
-}
-
-const dialect = "camxes"
-
-func (c camxesCommand) Help() finch.Help {
- return finch.Help{
- Name: "camxes",
- Description: "Use the camxes parser for lojban",
- Example: "/camxes@@ .i lo mlatu cu pinxe lo ladru",
- Botfather: [][]string{
- []string{"camxes", "parse lojban"},
- },
- }
-}
-
-func (c camxesCommand) ShouldExecute(message tgbotapi.Message) bool {
- return finch.SimpleCommand("camxes", message.Text)
-}
-
-func (c camxesCommand) Execute(message tgbotapi.Message) error {
- msg := strings.Join(strings.Split(message.Text, " ")[1:], " ")
- log.Printf("msg: %s", msg)
- tree, err := parser.Parse(dialect, msg)
- if err != nil {
- return err
- }
-
- parser.RemoveMorphology(tree)
- parser.AddElidedTerminators(tree)
- parser.RemoveSpace(tree)
- parser.CollapseLists(tree)
-
- buf := bytes.NewBuffer(nil)
- pretty.Braces(buf, tree)
-
- log.Println(buf.String())
-
- tmsg := tgbotapi.NewMessage(message.Chat.ID, buf.String())
- tmsg.ReplyToMessageID = message.MessageID
- return c.CommandBase.Finch.SendMessage(tmsg)
-}
diff --git a/telegram/polyglot/main.go b/telegram/polyglot/main.go
deleted file mode 100644
index 03ab76d..0000000
--- a/telegram/polyglot/main.go
+++ /dev/null
@@ -1,17 +0,0 @@
-package main
-
-import (
- "os"
-
- "github.com/Syfaro/finch"
- _ "github.com/Syfaro/finch/commands/help"
- _ "github.com/Syfaro/finch/commands/info"
- _ "github.com/Syfaro/finch/commands/stats"
- _ "github.com/joho/godotenv/autoload"
-)
-
-func main() {
- f := finch.NewFinch(os.Getenv("TELEGRAM_TOKEN"))
-
- f.Start()
-}
diff --git a/tg/polyglot/main.go b/tg/polyglot/main.go
new file mode 100644
index 0000000..1986580
--- /dev/null
+++ b/tg/polyglot/main.go
@@ -0,0 +1,55 @@
+package main
+
+import (
+ "bytes"
+ "log"
+ "os"
+ "strings"
+ "time"
+
+ "github.com/Xe/johaus/parser"
+ _ "github.com/Xe/johaus/parser/alldialects"
+ "github.com/Xe/johaus/pretty"
+ _ "github.com/joho/godotenv/autoload"
+ tb "gopkg.in/tucnak/telebot.v2"
+)
+
+func main() {
+ b, err := tb.NewBot(tb.Settings{
+ Token: os.Getenv("TELEGRAM_TOKEN"),
+ Poller: &tb.LongPoller{Timeout: 10 * time.Second},
+ })
+
+ if err != nil {
+ log.Fatal(err)
+ return
+ }
+
+ b.Handle("/camxes", parserCommandFor(b, "camxes"))
+ b.Handle("/ilmentufa", parserCommandFor(b, "ilmentufa"))
+ b.Handle("/maftufa", parserCommandFor(b, "maftufa"))
+ b.Handle("/zantufa", parserCommandFor(b, "zantufa"))
+
+ b.Start()
+}
+
+func parserCommandFor(b *tb.Bot, dialect string) func(*tb.Message) {
+ return func(m *tb.Message) {
+ msg := strings.Join(strings.Split(m.Payload, " ")[1:], " ")
+ tree, err := parser.Parse(dialect, msg)
+ if err != nil {
+ b.Send(m.Sender, err.Error())
+ return
+ }
+
+ parser.RemoveMorphology(tree)
+ parser.AddElidedTerminators(tree)
+ parser.RemoveSpace(tree)
+ parser.CollapseLists(tree)
+
+ buf := bytes.NewBuffer(nil)
+ pretty.Braces(buf, tree)
+
+ b.Send(m.Sender, buf.String())
+ }
+}