init code
This commit is contained in:
51
internal/services/tele/tele_service.go
Normal file
51
internal/services/tele/tele_service.go
Normal file
@@ -0,0 +1,51 @@
|
||||
package tele
|
||||
|
||||
import (
|
||||
"github.com/rs/zerolog/log"
|
||||
"gopkg.in/telebot.v3"
|
||||
"me.thuanle/bbot/internal/configs/key"
|
||||
"os"
|
||||
"sync"
|
||||
"time"
|
||||
)
|
||||
|
||||
type Service struct {
|
||||
b *telebot.Bot
|
||||
}
|
||||
|
||||
var (
|
||||
ts *Service
|
||||
once sync.Once
|
||||
)
|
||||
|
||||
func Ins() *Service {
|
||||
if ts != nil {
|
||||
return ts
|
||||
}
|
||||
once.Do(func() {
|
||||
pref := telebot.Settings{
|
||||
Token: os.Getenv(key.TelegramToken),
|
||||
Poller: &telebot.LongPoller{Timeout: 10 * time.Second},
|
||||
}
|
||||
|
||||
b, err := telebot.NewBot(pref)
|
||||
if err != nil {
|
||||
log.Fatal().Err(err).Msg("Failed to create bot")
|
||||
}
|
||||
|
||||
err = setupCommands(b)
|
||||
if err != nil {
|
||||
log.Fatal().Err(err).Msg("Failed to setup commands")
|
||||
}
|
||||
|
||||
ts = &Service{
|
||||
b: b,
|
||||
}
|
||||
})
|
||||
return ts
|
||||
}
|
||||
|
||||
func (t *Service) Start() {
|
||||
log.Info().Msg("Starting telegram service")
|
||||
t.b.Start()
|
||||
}
|
||||
Reference in New Issue
Block a user