-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.go
58 lines (51 loc) · 1.18 KB
/
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
package main
import (
"github.com/madflojo/tasks"
"github.com/oxanahr/discord-bot/cmd/bot"
"github.com/oxanahr/discord-bot/cmd/config"
"github.com/oxanahr/discord-bot/cmd/database"
"github.com/oxanahr/discord-bot/cmd/database/migrations"
"github.com/oxanahr/discord-bot/cmd/handlers"
"log"
"os"
"os/signal"
"syscall"
"time"
)
func main() {
// Load environment variables
config.Load()
// Connect to database and run migrations
database.Connect()
migrations.AutoMigrate()
// Start the bot
bot.Start()
defer bot.Stop()
// Start the scheduler
scheduler := tasks.New()
defer scheduler.Stop()
// Add a task
_, err := scheduler.Add(&tasks.Task{
Interval: 1 * time.Hour,
//Interval: 30 * time.Second,
//StartAfter: time.Now().Add(10 * time.Second), // run at X:00 every day?
TaskFunc: func() error {
err := handlers.PingUsers()
if err != nil {
log.Println(err)
}
err = handlers.Summary()
if err != nil {
log.Println(err)
}
return nil
},
})
if err != nil {
log.Println(err)
}
log.Println("Bot is running. Press Ctrl + C to exit.")
sc := make(chan os.Signal, 1)
signal.Notify(sc, syscall.SIGINT, syscall.SIGTERM, os.Interrupt, os.Kill)
<-sc
}