-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathmain.go
44 lines (38 loc) · 1011 Bytes
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
package main
import (
"github.com/asdine/storm"
"github.com/sirupsen/logrus"
tb "gopkg.in/tucnak/telebot.v2"
"net/http"
)
var Config configParsed
var log *logrus.Logger
var storage *storm.DB
var BotMulticast = make(chan Message, 4)
func init() {
var err error
log = logrus.New()
Config = GetConfig()
log.SetLevel(Config.LogLevel)
storage, err = storm.Open(Config.STPath)
if err != nil {
log.Fatalf("Can not open storage, error: %s", err)
}
}
func main() {
bot, err := tb.NewBot(tb.Settings{
Token: Config.TgToken,
Poller: &tb.LongPoller{Timeout: Config.TgPollInterval},
})
if err != nil {
log.Fatal("Failed to setup telegram bot, error: %s", err)
}
go StartBot(bot)
go BotSender(bot, BotMulticast)
http.HandleFunc(Config.GitHubHookPath, GitHubHookHandler)
http.HandleFunc(Config.TravisHookPath, TravisHookHandler)
http.HandleFunc("/health", HealthCheckHandler)
if err := http.ListenAndServe(Config.WebListen, nil); err != nil {
log.Fatalf("Web server error: %s", err)
}
}