12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- package main
- import (
- "fmt"
- "log"
- "bufio"
- "os"
- "time"
- tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api"
- )
- var (
- appSettings Settings
- dBConnector Connection
- myBotClient tgbotapi.BotAPI
- LogInfo *log.Logger
- LogWarn *log.Logger
- LogError *log.Logger
- LogDebug *log.Logger
- )
- func main() {
- appSettings.LoadFromFile("config.json")
- LoggersInit()
- LogInfo.Println("App started")
- botClient, err := tgbotapi.NewBotAPI(appSettings.Token)
- if err != nil {
- LogError.Panic(err)
- }
- myBotClient = *botClient
- var me = botClient.Self
- LogInfo.Printf("Hello, World! I am user %d and my name is %s.\n", me.ID, me.FirstName)
- if len(os.Args[1:]) >= 2 {
- appSettings.DbUser = os.Args[1]
- appSettings.DbPassword = os.Args[2]
- } else {
- fmt.Print("DataBase Username:")
- _, err := fmt.Scanln(&appSettings.DbUser)
- if err != nil {
- LogError.Panic(os.Stderr, err)
- return
- }
- fmt.Print("DataBase Password:")
- _, err = fmt.Scanln(&appSettings.DbPassword)
- if err != nil {
- LogError.Panic(os.Stderr, err)
- return
- }
- }
- dBConnector.Init()
- go Updater()
- go Listener(botClient)
- fmt.Println("Press Enter to exit")
- reader := bufio.NewReader(os.Stdin)
- reader.ReadString('\n')
- }
- // Listens for comming messages.
- func Listener(botClient *tgbotapi.BotAPI) {
- u := tgbotapi.NewUpdate(0)
- u.Timeout = 60
- updates, _ := botClient.GetUpdatesChan(u)
- for update := range updates {
- // Ignore any non-Message Updates
- if update.Message == nil {
- continue
- }
- go HandleMessage(update.Message, botClient)
- }
- }
- // Starts DataUpdater goroutine every 4 minutes
- func Updater() {
- LogInfo.Println("Scheduler started!")
- for {
- go dBConnector.UpdateData()
- time.Sleep(4 * time.Minute)
- }
- }
|