diff options
| author | Christine Dodrill <me@christine.website> | 2018-12-04 19:47:14 -0800 |
|---|---|---|
| committer | Christine Dodrill <me@christine.website> | 2018-12-05 13:37:38 -0800 |
| commit | e43bb4564c63edd28fff633143f35f296d483097 (patch) | |
| tree | 76786d72ea6947df455856e61ac28b7c04a78ac4 | |
| parent | fd64075ea32a760527f71c9680d71f99607ffcc3 (diff) | |
| download | x-e43bb4564c63edd28fff633143f35f296d483097.tar.xz x-e43bb4564c63edd28fff633143f35f296d483097.zip | |
make polyglot work
| -rw-r--r-- | go.mod | 1 | ||||
| -rw-r--r-- | go.sum | 2 | ||||
| -rw-r--r-- | telegram/polyglot/camxes.go | 61 | ||||
| -rw-r--r-- | telegram/polyglot/main.go | 17 | ||||
| -rw-r--r-- | tg/polyglot/main.go | 55 |
5 files changed, 58 insertions, 78 deletions
@@ -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 ) @@ -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()) + } +} |
