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) } }