aboutsummaryrefslogtreecommitdiff
path: root/telegram
diff options
context:
space:
mode:
authorbodqhrohro <bodqhrohro@gmail.com>2019-11-05 03:25:15 +0300
committerbodqhrohro <bodqhrohro@gmail.com>2019-11-05 03:25:15 +0300
commit55797b98a0673a792b6d0f54a4e9577799f4a9a5 (patch)
tree002619d502a4520c7ae9c9aec7f453dd53055eb1 /telegram
parent0f047c38168949b246223dc1b1154a6969753d2e (diff)
telegram package refactoring
Diffstat (limited to 'telegram')
-rw-r--r--telegram/client.go40
-rw-r--r--telegram/connect.go36
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: &parameters,
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
+ }
+}