diff options
author | bodqhrohro <bodqhrohro@gmail.com> | 2019-11-05 03:25:15 +0300 |
---|---|---|
committer | bodqhrohro <bodqhrohro@gmail.com> | 2019-11-05 03:25:15 +0300 |
commit | 55797b98a0673a792b6d0f54a4e9577799f4a9a5 (patch) | |
tree | 002619d502a4520c7ae9c9aec7f453dd53055eb1 /telegram | |
parent | 0f047c38168949b246223dc1b1154a6969753d2e (diff) |
telegram package refactoring
Diffstat (limited to 'telegram')
-rw-r--r-- | telegram/client.go | 40 | ||||
-rw-r--r-- | telegram/connect.go | 36 |
2 files changed, 43 insertions, 33 deletions
diff --git a/telegram/client.go b/telegram/client.go index 3d361b6..688912b 100644 --- a/telegram/client.go +++ b/telegram/client.go @@ -30,7 +30,8 @@ func stringToLogConstant(c string) int32 { return level } -type TelegramClient struct { +// Client stores the metadata for lazily invoked TDlib instance +type Client struct { client *client.Client jid string parameters *client.TdlibParameters @@ -39,14 +40,14 @@ type TelegramClient struct { } // NewClient instantiates a Telegram App -func NewClient(conf config.TelegramConfig, jid string) (TelegramClient, error) { +func NewClient(conf config.TelegramConfig, jid string) (Client, error) { logVerbosity := client.WithLogVerbosity(&client.SetLogVerbosityLevelRequest{ NewVerbosityLevel: stringToLogConstant(conf.Loglevel), }) - apiId, err := strconv.Atoi(conf.Tdlib.Client.APIID) + apiID, err := strconv.Atoi(conf.Tdlib.Client.APIID) if err != nil { - return TelegramClient{}, errors.Wrap(err, "Wrong api_id") + return Client{}, errors.Wrap(err, "Wrong api_id") } parameters := client.TdlibParameters{ @@ -60,7 +61,7 @@ func NewClient(conf config.TelegramConfig, jid string) (TelegramClient, error) { UseMessageDatabase: true, UseSecretChats: conf.Tdlib.Client.UseSecretChats, - ApiId: int32(apiId), + ApiId: int32(apiID), ApiHash: conf.Tdlib.Client.APIHash, SystemLanguageCode: "en", @@ -72,7 +73,7 @@ func NewClient(conf config.TelegramConfig, jid string) (TelegramClient, error) { IgnoreFileNames: false, } - return TelegramClient{ + return Client{ parameters: ¶meters, jid: jid, logVerbosity: logVerbosity, @@ -89,30 +90,3 @@ func updateHandler(tdlibClient *client.Client) { } } } - -func (c *TelegramClient) Connect() error { - if c.online { - return nil - } - - authorizer := client.ClientAuthorizer() - authorizer.TdlibParameters <- c.parameters - - tdlibClient, err := client.NewClient(authorizer, c.logVerbosity) - if err != nil { - return errors.Wrap(err, "Coudn't initialize a Telegram client instance") - } - - c.client = tdlibClient - c.online = true - - go updateHandler(c.client) - - return nil -} - -func (c *TelegramClient) Disconnect() { - if !c.online { - return - } -} diff --git a/telegram/connect.go b/telegram/connect.go new file mode 100644 index 0000000..72cd417 --- /dev/null +++ b/telegram/connect.go @@ -0,0 +1,36 @@ +package telegram + +import ( + "github.com/pkg/errors" + + "github.com/zelenin/go-tdlib/client" +) + +// Connect starts TDlib connection +func (c *Client) Connect() error { + if c.online { + return nil + } + + authorizer := client.ClientAuthorizer() + authorizer.TdlibParameters <- c.parameters + + tdlibClient, err := client.NewClient(authorizer, c.logVerbosity) + if err != nil { + return errors.Wrap(err, "Coudn't initialize a Telegram client instance") + } + + c.client = tdlibClient + c.online = true + + go updateHandler(c.client) + + return nil +} + +// Disconnect drops TDlib connection +func (c *Client) Disconnect() { + if !c.online { + return + } +} |