You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

73 lines
1.8 KiB

3 years ago
package main
import (
"gitea.russia9.dev/Russia9/chatwars-duels/app"
"gitea.russia9.dev/Russia9/chatwars-duels/utils"
"github.com/confluentinc/confluent-kafka-go/kafka"
"github.com/rs/zerolog"
"github.com/rs/zerolog/log"
"gopkg.in/tucnak/telebot.v2"
"os"
"strconv"
"time"
)
func main() {
// Log settings
zerolog.TimeFieldFormat = zerolog.TimeFormatUnix
pretty, err := strconv.ParseBool(os.Getenv("LOG_PRETTY"))
if err != nil {
pretty = false
}
if pretty {
log.Logger = log.Output(zerolog.ConsoleWriter{Out: os.Stderr})
}
switch os.Getenv("LOG_LEVEL") {
case "DISABLED":
zerolog.SetGlobalLevel(zerolog.Disabled)
case "PANIC":
zerolog.SetGlobalLevel(zerolog.PanicLevel)
case "FATAL":
zerolog.SetGlobalLevel(zerolog.FatalLevel)
case "ERROR":
zerolog.SetGlobalLevel(zerolog.ErrorLevel)
case "WARN":
zerolog.SetGlobalLevel(zerolog.WarnLevel)
case "DEBUG":
zerolog.SetGlobalLevel(zerolog.DebugLevel)
case "TRACE":
zerolog.SetGlobalLevel(zerolog.TraceLevel)
default:
zerolog.SetGlobalLevel(zerolog.InfoLevel)
}
// Kafka consumer init
consumer, err := kafka.NewConsumer(&kafka.ConfigMap{
"bootstrap.servers": utils.GetEnv("KAFKA_ADDRESS", "localhost"),
"group.id": "cw3",
"auto.offset.reset": "latest",
})
if err != nil {
log.Fatal().Err(err).Str("module", "kafka").Send()
}
// Bot init
bot, err := telebot.NewBot(telebot.Settings{
Token: os.Getenv("TELEGRAM_TOKEN"),
Poller: &telebot.LongPoller{Timeout: 10 * time.Second},
})
if err != nil {
log.Fatal().Err(err).Str("module", "bot").Send()
}
chat, err := bot.ChatByID(utils.GetEnv("TELEGRAM_CHANNEL", "-1001451023900"))
if err != nil {
log.Fatal().Err(err).Str("module", "bot").Send()
}
err = app.Init(bot, chat, consumer)
if err != nil {
log.Fatal().Err(err).Send()
}
}