|
|
@ -27,6 +27,7 @@ type BotAPI struct { |
|
|
|
|
|
|
|
|
|
|
|
Self User `json:"-"` |
|
|
|
Self User `json:"-"` |
|
|
|
Client *http.Client `json:"-"` |
|
|
|
Client *http.Client `json:"-"` |
|
|
|
|
|
|
|
shutdownChannel chan interface{} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// NewBotAPI creates a new BotAPI instance.
|
|
|
|
// NewBotAPI creates a new BotAPI instance.
|
|
|
@ -45,6 +46,7 @@ func NewBotAPIWithClient(token string, client *http.Client) (*BotAPI, error) { |
|
|
|
Token: token, |
|
|
|
Token: token, |
|
|
|
Client: client, |
|
|
|
Client: client, |
|
|
|
Buffer: 100, |
|
|
|
Buffer: 100, |
|
|
|
|
|
|
|
shutdownChannel: make(chan interface{}), |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
self, err := bot.GetMe() |
|
|
|
self, err := bot.GetMe() |
|
|
@ -483,6 +485,12 @@ func (bot *BotAPI) GetUpdatesChan(config UpdateConfig) (UpdatesChannel, error) { |
|
|
|
|
|
|
|
|
|
|
|
go func() { |
|
|
|
go func() { |
|
|
|
for { |
|
|
|
for { |
|
|
|
|
|
|
|
select { |
|
|
|
|
|
|
|
case <-bot.shutdownChannel: |
|
|
|
|
|
|
|
return |
|
|
|
|
|
|
|
default: |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
updates, err := bot.GetUpdates(config) |
|
|
|
updates, err := bot.GetUpdates(config) |
|
|
|
if err != nil { |
|
|
|
if err != nil { |
|
|
|
log.Println(err) |
|
|
|
log.Println(err) |
|
|
@ -501,6 +509,14 @@ func (bot *BotAPI) GetUpdatesChan(config UpdateConfig) (UpdatesChannel, error) { |
|
|
|
return ch, nil |
|
|
|
return ch, nil |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// StopReceivingUpdates stops the go routine which receives updates
|
|
|
|
|
|
|
|
func (bot *BotAPI) StopReceivingUpdates() { |
|
|
|
|
|
|
|
if bot.Debug { |
|
|
|
|
|
|
|
log.Println("Stopping the update receiver routine...") |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
close(bot.shutdownChannel) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// ListenForWebhook registers a http handler for a webhook.
|
|
|
|
// ListenForWebhook registers a http handler for a webhook.
|
|
|
|
func (bot *BotAPI) ListenForWebhook(pattern string) UpdatesChannel { |
|
|
|
func (bot *BotAPI) ListenForWebhook(pattern string) UpdatesChannel { |
|
|
|
ch := make(chan Update, bot.Buffer) |
|
|
|
ch := make(chan Update, bot.Buffer) |
|
|
|