shitty-rp-bot/main.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)
}
}