Files
anon3anon/cmd/anon3anon/main.go
T

55 lines
1.3 KiB
Go

package main
import (
"context"
"os"
"os/signal"
"github.com/nightnoryu/anon3anon/pkg/infrastructure/jsonlog"
"github.com/nightnoryu/anon3anon/pkg/infrastructure/telegram/handler"
"github.com/nightnoryu/anon3anon/pkg/infrastructure/telegram/middleware"
"github.com/go-telegram/bot"
)
const appID = "anon3anon"
func main() {
logger := initLogger()
conf, err := parseEnv()
if err != nil {
logger.FatalError(err)
}
options := initBotOptions(conf, logger)
b, err := bot.New(conf.TelegramBotToken, options...)
if err != nil {
logger.FatalError(err)
}
ctx, cancel := signal.NotifyContext(context.Background(), os.Interrupt)
defer cancel()
b.Start(ctx)
}
func initLogger() jsonlog.Logger {
logger := jsonlog.NewLogger(&jsonlog.Config{
AppName: appID,
Level: jsonlog.InfoLevel,
})
return logger
}
func initBotOptions(conf *config, logger jsonlog.Logger) []bot.Option {
startCommandHandler := handler.NewStartCommandHandler(logger)
anonymousMessagesHandler := handler.NewAnonymousMessagesHandler(logger, conf.OwnerChatID)
return []bot.Option{
bot.WithMiddlewares(middleware.NewLoggingMiddleware(logger)),
bot.WithMessageTextHandler("/start", bot.MatchTypeExact, startCommandHandler),
bot.WithDefaultHandler(anonymousMessagesHandler),
}
}