telegram package refactoring
This commit is contained in:
parent
0f047c3816
commit
55797b98a0
|
@ -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
|
||||
}
|
||||
}
|
||||
|
|
36
telegram/connect.go
Normal file
36
telegram/connect.go
Normal file
|
@ -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
|
||||
}
|
||||
}
|
|
@ -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)
|
||||
|
|
Loading…
Reference in a new issue