68 lines
1.2 KiB
Go
68 lines
1.2 KiB
Go
package main
|
|
|
|
import (
|
|
"log"
|
|
"net/http"
|
|
|
|
"github.com/cjoudrey/gluahttp"
|
|
"github.com/kohkimakimoto/gluayaml"
|
|
"github.com/kr/pretty"
|
|
luar "github.com/layeh/gopher-luar"
|
|
"github.com/namsral/flag"
|
|
lua "github.com/yuin/gopher-lua"
|
|
"gopkg.in/telegram-bot-api.v4"
|
|
"layeh.com/gopher-json"
|
|
"layeh.com/gopher-lfs"
|
|
)
|
|
|
|
var (
|
|
discordBotToken = flag.String("discord-token", "", "Discord bot token")
|
|
telegramBotToken = flag.String("telegram-token", "", "Telegram bot token")
|
|
)
|
|
|
|
func main() {
|
|
flag.Parse()
|
|
|
|
bot, err := tgbotapi.NewBotAPI(*telegramBotToken)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
|
|
u := tgbotapi.NewUpdate(0)
|
|
u.Timeout = 60
|
|
|
|
updates, err := bot.GetUpdatesChan(u)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
|
|
L := lua.NewState()
|
|
defer L.Close()
|
|
|
|
L.PreloadModule("yaml", gluayaml.Loader)
|
|
L.PreloadModule("http", gluahttp.NewHttpModule(&http.Client{}).Loader)
|
|
json.Preload(L)
|
|
lfs.Preload(L)
|
|
|
|
L.SetGlobal("tg", luar.New(L, bot))
|
|
L.SetGlobal("tgupdates", luar.New(L, updates))
|
|
L.SetGlobal("pprint", luar.New(L, pretty.Println))
|
|
|
|
preloadTG(L)
|
|
|
|
err = L.DoFile("lib.lua")
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
|
|
err = L.DoFile("bot.lua")
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
|
|
err = L.DoString("main()")
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
}
|