46 lines
1.3 KiB
Go
46 lines
1.3 KiB
Go
|
// Fantasy World Zookeeper Bot
|
||
|
// Copyright (c) 2018 Vladimir "fat0troll" Hodakov
|
||
|
|
||
|
package router
|
||
|
|
||
|
import (
|
||
|
"github.com/rs/zerolog"
|
||
|
"gitlab.com/toby3d/telegram"
|
||
|
"lab.wtfteam.pro/fat0troll/fw_zookeeper/context"
|
||
|
"regexp"
|
||
|
)
|
||
|
|
||
|
var (
|
||
|
c *context.Context
|
||
|
log zerolog.Logger
|
||
|
|
||
|
// Requests is a pointer to initialized Router object
|
||
|
Requests *Router
|
||
|
)
|
||
|
|
||
|
// Router is a struct which handles router functions
|
||
|
type Router struct {
|
||
|
privateCommands map[string]func(update *telegram.Update)
|
||
|
groupCommands map[string]func(update *telegram.Update)
|
||
|
privateRegulars map[*regexp.Regexp]func(update *telegram.Update)
|
||
|
groupRegulars map[*regexp.Regexp]func(update *telegram.Update)
|
||
|
inlineQueries map[*regexp.Regexp]func(update *telegram.Update)
|
||
|
}
|
||
|
|
||
|
// New initializes package
|
||
|
func New(cc *context.Context) {
|
||
|
c = cc
|
||
|
log = c.Logger.With().Str("domain", "router").Int("version", 1).Logger()
|
||
|
r := &Router{}
|
||
|
|
||
|
r.privateCommands = make(map[string]func(update *telegram.Update))
|
||
|
r.groupCommands = make(map[string]func(update *telegram.Update))
|
||
|
r.privateRegulars = make(map[*regexp.Regexp]func(update *telegram.Update))
|
||
|
r.groupRegulars = make(map[*regexp.Regexp]func(update *telegram.Update))
|
||
|
r.inlineQueries = make(map[*regexp.Regexp]func(update *telegram.Update))
|
||
|
|
||
|
log.Info().Msg("Initialized requests router")
|
||
|
|
||
|
Requests = r
|
||
|
}
|