all repos — telegram-bot-api @ f5c6a478a0e3271a51649c64661ac90ed3d30bf1

Golang bindings for the Telegram Bot API

Allow specifying a custom buffer size for the updates channel
Syfaro syfaro@foxpaw.in
Fri, 27 Jan 2017 11:40:09 -0600
commit

f5c6a478a0e3271a51649c64661ac90ed3d30bf1

parent

f57724f783b167bf0352f706bbaf9d1642572361

2 files changed, 10 insertions(+), 7 deletions(-)

jump to
M bot.gobot.go

@@ -21,8 +21,10 @@ )

// BotAPI allows you to interact with the Telegram Bot API. type BotAPI struct { - Token string `json:"token"` - Debug bool `json:"debug"` + Token string `json:"token"` + Debug bool `json:"debug"` + Buffer int `json:"buffer"` + Self User `json:"-"` Client *http.Client `json:"-"` }

@@ -42,11 +44,12 @@ func NewBotAPIWithClient(token string, client *http.Client) (*BotAPI, error) {

bot := &BotAPI{ Token: token, Client: client, + Buffer: 100, } self, err := bot.GetMe() if err != nil { - return &BotAPI{}, err + return nil, err } bot.Self = self

@@ -461,7 +464,7 @@ }

// GetUpdatesChan starts and returns a channel for getting updates. func (bot *BotAPI) GetUpdatesChan(config UpdateConfig) (UpdatesChannel, error) { - ch := make(chan Update, 100) + ch := make(chan Update, bot.Buffer) go func() { for {

@@ -488,7 +491,7 @@ }

// ListenForWebhook registers a http handler for a webhook. func (bot *BotAPI) ListenForWebhook(pattern string) UpdatesChannel { - ch := make(chan Update, 100) + ch := make(chan Update, bot.Buffer) http.HandleFunc(pattern, func(w http.ResponseWriter, r *http.Request) { bytes, _ := ioutil.ReadAll(r.Body)
M configs.goconfigs.go

@@ -768,8 +768,8 @@ }

// WebhookConfig contains information about a SetWebhook request. type WebhookConfig struct { - URL *url.URL - Certificate interface{} + URL *url.URL + Certificate interface{} MaxConnections int }