96 lines
1.9 KiB
Go
96 lines
1.9 KiB
Go
package main
|
|
|
|
import (
|
|
"log"
|
|
"os"
|
|
"os/signal"
|
|
"syscall"
|
|
"twdcbot/discord"
|
|
"twdcbot/mode"
|
|
server_repository "twdcbot/server/repository"
|
|
tribe_repository "twdcbot/tribe/repository"
|
|
|
|
"github.com/go-pg/pg/v10"
|
|
"github.com/joho/godotenv"
|
|
"github.com/sirupsen/logrus"
|
|
)
|
|
|
|
func init() {
|
|
os.Setenv("TZ", "UTC")
|
|
|
|
if mode.Get() == mode.DevelopmentMode {
|
|
godotenv.Load(".env.development")
|
|
}
|
|
}
|
|
|
|
func main() {
|
|
//postgres
|
|
db := pg.Connect(&pg.Options{
|
|
User: os.Getenv("DB_USER"),
|
|
Password: os.Getenv("DB_PASSWORD"),
|
|
Database: os.Getenv("DB_NAME"),
|
|
Addr: os.Getenv("DB_HOST") + ":" + os.Getenv("DB_PORT"),
|
|
})
|
|
defer func() {
|
|
if err := db.Close(); err != nil {
|
|
logrus.Fatal(err)
|
|
}
|
|
}()
|
|
serverRepo, err := server_repository.NewPgRepo(db)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
tribeRepo, err := tribe_repository.NewPgRepo(db)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
sess, err := discord.New(discord.SessionConfig{
|
|
Token: os.Getenv("BOT_TOKEN"),
|
|
CommandPrefix: "tw!",
|
|
Status: "Twstats",
|
|
TribeRepository: tribeRepo,
|
|
ServerRepository: serverRepo,
|
|
})
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
defer sess.Close()
|
|
|
|
// for world, conquers := range scraper.New([]string{"pl149", "pl150"}, time.Now().Add(time.Minute*-10)).Scrap() {
|
|
// fmt.Print("\n\n", world, "\n\n")
|
|
// for _, c := range conquers {
|
|
// log.Print(c.ConqueredAt,
|
|
// " | ",
|
|
// c.VillageID,
|
|
// " | ",
|
|
// c.Village,
|
|
// " | ",
|
|
// c.OldOwnerID,
|
|
// " | ",
|
|
// c.OldOwnerName,
|
|
// " | ",
|
|
// c.OldOwnerTribeID,
|
|
// " | ",
|
|
// c.OldOwnerTribeName,
|
|
// " | ",
|
|
// c.NewOwnerID,
|
|
// " | ",
|
|
// c.NewOwnerName,
|
|
// " | ",
|
|
// c.NewOwnerTribeID,
|
|
// " | ",
|
|
// c.NewOwnerTribeName)
|
|
// }
|
|
// }
|
|
|
|
log.Print("Bot is waiting for your actions!")
|
|
|
|
channel := make(chan os.Signal, 1)
|
|
signal.Notify(channel, os.Interrupt, os.Kill, syscall.SIGTERM, syscall.SIGINT)
|
|
<-channel
|
|
|
|
logrus.Info("shutting down")
|
|
os.Exit(0)
|
|
|
|
}
|