ALFRED/alfred.go

78 lines
2.2 KiB
Go

/*
* @Author: Bartuccio Antoine
* @Date: 2018-07-23 15:24:22
* @Last Modified by: Bartuccio Antoine
* @Last Modified time: 2019-01-05 17:47:10
*/
package main
import (
"log"
"time"
"git.klmp200.net/ALFRED/ALFRED/commands"
"git.klmp200.net/ALFRED/ALFRED/settings"
"git.klmp200.net/ALFRED/ALFRED/shared"
tb "gopkg.in/tucnak/telebot.v2"
)
func main() {
registeredCommands := map[string]func(*tb.Message){
tb.OnText: commands.OnText,
"/registerprivate": commands.RegisterPrivate,
"/unregisterprivate": commands.UnRegisterPrivate,
"/hello": commands.Hello,
"/sponge": commands.Sponge,
"/git": commands.Git,
"/framapad": commands.Framapad,
"/setgender": commands.SetGender,
"/gender": commands.Gender,
"/roll": commands.Dice,
"/trump": commands.LastTrumpTweet,
"/trends": commands.TwitterTrends,
"/chaos": commands.TwitterSJW,
"/apero": commands.AperoTime,
"/quote": commands.Quote,
"/subscribe": commands.Subscribe,
"/unsubscribe": commands.Unsubscribe,
"/listsubscribers": commands.ListSubscribers,
"/publish": commands.Publish,
"/unpublish": commands.Unpublish,
"/retrieve": commands.Retrieve,
"/toggleupdates": commands.ToggleUpdates,
}
if err := settings.LoadSettings("settings.json", "settings_custom.json"); err != nil {
log.Fatal(err)
}
log.Println("Initialize history")
shared.InitHistory(int(settings.Settings["history size"].(float64)),
settings.Settings["history file"].(string))
log.Println("Initialize users infos")
shared.InitUsers(settings.Settings["users file"].(string))
log.Println("Initialize chat data")
shared.InitChatData(settings.Settings["chat data file"].(string))
log.Println("Bot initialisation")
b, err := tb.NewBot(tb.Settings{
Token: settings.Settings["token"].(string),
Poller: &tb.LongPoller{Timeout: 10 * time.Second},
})
if err != nil {
log.Fatal(err)
return
}
shared.Bot = b
for key, value := range registeredCommands {
b.Handle(key, value)
}
log.Println("Starting bot")
b.Start()
}