✨ Implement routine manager and interface
This commit is contained in:
parent
f48595c0f4
commit
a69b46f714
37
telegram/manager.go
Normal file
37
telegram/manager.go
Normal file
@ -0,0 +1,37 @@
|
||||
package telegram
|
||||
|
||||
import (
|
||||
tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api"
|
||||
"log"
|
||||
)
|
||||
|
||||
type RoutineManager struct {
|
||||
Routine []Routine
|
||||
Bot *tgbotapi.BotAPI
|
||||
}
|
||||
|
||||
func (rm RoutineManager) StartUpdates() {
|
||||
u := tgbotapi.NewUpdate(0)
|
||||
u.Timeout = 60
|
||||
updates, _ := rm.Bot.GetUpdatesChan(u)
|
||||
|
||||
for update := range updates {
|
||||
|
||||
for _, routine := range rm.Routine {
|
||||
err := routine.Update(&update)
|
||||
|
||||
if err != nil {
|
||||
log.Printf("ERROR - Routine error")
|
||||
log.Println(err)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func (rm *RoutineManager) RegisterRoutine(routine Routine) {
|
||||
if rm.Routine == nil {
|
||||
rm.Routine = make([]Routine, 0)
|
||||
}
|
||||
|
||||
rm.Routine = append(rm.Routine, routine)
|
||||
}
|
7
telegram/routine.go
Normal file
7
telegram/routine.go
Normal file
@ -0,0 +1,7 @@
|
||||
package telegram
|
||||
|
||||
import tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api"
|
||||
|
||||
type Routine interface {
|
||||
Update(update *tgbotapi.Update) error
|
||||
}
|
Loading…
Reference in New Issue
Block a user