aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--telegram/client.go40
-rw-r--r--telegram/connect.go36
-rw-r--r--xmpp/handlers.go2
3 files changed, 44 insertions, 34 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
+ }
+}
diff --git a/xmpp/handlers.go b/xmpp/handlers.go
index c7acdce..4a6c999 100644
--- a/xmpp/handlers.go
+++ b/xmpp/handlers.go
@@ -8,7 +8,7 @@ import (
"gosrc.io/xmpp/stanza"
)
-var sessions map[string]telegram.TelegramClient
+var sessions map[string]telegram.Client
func logPacketType(p stanza.Packet) {
log.Warn("Ignoring packet: %T\n", p)