Files
15-puzzle/internal/tgbot/tgbot.go
T
Ilia Denisov 31957206b8 initial
2025-09-03 18:43:28 +03:00

46 lines
704 B
Go

package tgbot
import (
"context"
"fmt"
"log/slog"
"github.com/go-telegram/bot"
"github.com/go-telegram/bot/models"
)
type tgBot struct {
ctx context.Context
b *bot.Bot
log *slog.Logger
}
func NewTgBot(ctx context.Context, token string) (*tgBot, error) {
var err error
tgBot := &tgBot{
ctx: ctx,
log: slog.Default(),
}
tgBot.b, err = bot.New(
token,
bot.WithDefaultHandler(tgBot.updateHandler),
)
if err != nil {
return tgBot, err
}
return tgBot, nil
}
func (b *tgBot) Start() {
go b.b.Start(b.ctx)
}
func (b *tgBot) updateHandler(ctx context.Context, _ *bot.Bot, update *models.Update) {
if update != nil {
b.log.Info(fmt.Sprintf("update:\n%#v\n", *update))
}
}