Catch timeout setting
This commit is contained in:
parent
3918686f21
commit
10aae376f7
|
@ -14,6 +14,7 @@
|
|||
:application_version: '2.0'
|
||||
:use_chat_info_database: false
|
||||
:use_secret_chats: true
|
||||
:catch_timeout: 60
|
||||
|
||||
:xmpp:
|
||||
:loglevel: :warn
|
||||
|
|
|
@ -54,6 +54,7 @@ type TelegramTdlibClientConfig struct {
|
|||
ApplicationVersion string `yaml:":application_version"`
|
||||
UseChatInfoDatabase bool `yaml:":use_chat_info_database"`
|
||||
UseSecretChats bool `yaml:":use_secret_chats"`
|
||||
CatchTimeout int64 `yaml:":catch_timeout"`
|
||||
}
|
||||
|
||||
// ReadConfig reads the specified config file, validates it and returns a struct
|
||||
|
|
|
@ -5,6 +5,7 @@ import (
|
|||
"path/filepath"
|
||||
"strconv"
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
"dev.narayana.im/narayana/telegabber/config"
|
||||
"dev.narayana.im/narayana/telegabber/persistence"
|
||||
|
@ -39,12 +40,12 @@ func stringToLogConstant(c string) int32 {
|
|||
|
||||
// Client stores the metadata for lazily invoked TDlib instance
|
||||
type Client struct {
|
||||
client *client.Client
|
||||
authorizer *clientAuthorizer
|
||||
parameters *client.TdlibParameters
|
||||
logVerbosity client.Option
|
||||
me *client.User
|
||||
listener *client.Listener
|
||||
client *client.Client
|
||||
authorizer *clientAuthorizer
|
||||
parameters *client.TdlibParameters
|
||||
options []client.Option
|
||||
me *client.User
|
||||
listener *client.Listener
|
||||
|
||||
xmpp *xmpp.Component
|
||||
jid string
|
||||
|
@ -61,9 +62,17 @@ type clientLocks struct {
|
|||
|
||||
// NewClient instantiates a Telegram App
|
||||
func NewClient(conf config.TelegramConfig, jid string, component *xmpp.Component, session *persistence.Session) (*Client, error) {
|
||||
logVerbosity := client.WithLogVerbosity(&client.SetLogVerbosityLevelRequest{
|
||||
var options []client.Option
|
||||
|
||||
options = append(options, client.WithLogVerbosity(&client.SetLogVerbosityLevelRequest{
|
||||
NewVerbosityLevel: stringToLogConstant(conf.Loglevel),
|
||||
})
|
||||
}))
|
||||
|
||||
if conf.Tdlib.Client.CatchTimeout != 0 {
|
||||
options = append(options, client.WithCatchTimeout(
|
||||
time.Duration(conf.Tdlib.Client.CatchTimeout)*time.Second,
|
||||
))
|
||||
}
|
||||
|
||||
apiID, err := strconv.Atoi(conf.Tdlib.Client.APIID)
|
||||
if err != nil {
|
||||
|
@ -103,7 +112,7 @@ func NewClient(conf config.TelegramConfig, jid string, component *xmpp.Component
|
|||
chats: map[int64]*client.Chat{},
|
||||
users: map[int32]*client.User{},
|
||||
},
|
||||
logVerbosity: logVerbosity,
|
||||
locks: clientLocks{},
|
||||
options: options,
|
||||
locks: clientLocks{},
|
||||
}, nil
|
||||
}
|
||||
|
|
|
@ -110,7 +110,7 @@ func (c *Client) Connect() error {
|
|||
|
||||
c.authorizer.TdlibParameters <- c.parameters
|
||||
|
||||
tdlibClient, err := client.NewClient(c.authorizer, c.logVerbosity)
|
||||
tdlibClient, err := client.NewClient(c.authorizer, c.options...)
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "Couldn't initialize a Telegram client instance")
|
||||
}
|
||||
|
@ -145,7 +145,7 @@ func (c *Client) Disconnect() {
|
|||
|
||||
_, err := c.client.Close()
|
||||
if err != nil {
|
||||
log.Fatalf("Couldn't close the Telegram instance: %#v", c)
|
||||
log.Errorf("Couldn't close the Telegram instance: %v; %#v", err, c)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue