Files
dislate/main.go

74 lines
1.7 KiB
Go
Raw Normal View History

2024-08-06 12:29:34 -03:00
package main
import (
"dislate/internals/discord"
"dislate/internals/guilddb"
"dislate/internals/translator"
2024-08-13 21:33:11 -03:00
"flag"
2024-08-06 13:15:41 -03:00
"log"
2024-08-06 13:48:37 -03:00
"os"
2024-08-07 14:36:55 -03:00
"os/signal"
"syscall"
2024-08-06 12:29:34 -03:00
)
2024-08-13 21:33:11 -03:00
type TranslationProvider string
const (
GOOGLE_TRANSLATE TranslationProvider = "google-translate"
)
var translation_provider = flag.String("tprovider", string(GOOGLE_TRANSLATE), "Translation provider")
var database_file = flag.String("db", "file:./guild.db", "SQLite database file/location")
var discord_token = flag.String("token", os.Getenv("DISCORD_TOKEN"), "Discord bot authentication token")
func init() {
flag.Parse()
}
2024-08-06 12:29:34 -03:00
func main() {
2024-08-06 13:15:41 -03:00
log.Printf("Hello, world")
2024-08-06 13:48:37 -03:00
2024-08-14 10:16:16 -03:00
db, err := guilddb.NewSQLiteDB(*database_file)
2024-08-08 11:08:17 -03:00
if err != nil {
log.Printf("ERROR: failed to open database %s", err)
return
}
log.Print("Connection to database started")
2024-08-08 11:08:17 -03:00
defer func() {
err := db.Close()
if err != nil {
log.Printf("ERROR: failed to close database %s", err)
return
}
log.Print("Connection to database closed")
2024-08-08 11:08:17 -03:00
}()
if err := db.Prepare(); err != nil {
log.Printf("ERROR: failed to prepare database: %s", err)
2024-08-08 11:08:17 -03:00
return
}
log.Print("Database prepared to be used")
2024-08-08 11:08:17 -03:00
2024-08-13 21:33:11 -03:00
bot, err := discord.NewBot(*discord_token, db, translator.NewMockTranslator())
2024-08-06 13:48:37 -03:00
if err != nil {
log.Printf("ERROR: failed to create discord bot: %s", err)
2024-08-08 11:08:17 -03:00
return
2024-08-06 13:48:37 -03:00
}
if err := bot.Start(); err != nil {
log.Printf("ERROR: failed to start discord bot: %s", err)
2024-08-08 11:08:17 -03:00
return
2024-08-06 13:48:37 -03:00
}
log.Print("Connection to discord bot started")
2024-08-08 11:08:17 -03:00
defer func() {
if err := bot.Stop(); err != nil {
log.Printf("ERROR: failed to stop discord bot: %s", err)
2024-08-08 11:08:17 -03:00
return
}
log.Print("Connection to discord bot stopped")
2024-08-08 11:08:17 -03:00
}()
2024-08-07 14:36:55 -03:00
sig := make(chan os.Signal, 1)
signal.Notify(sig, os.Interrupt, syscall.SIGINT)
<-sig
2024-08-06 12:29:34 -03:00
}