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() go func() { for { state, ok := <-authorizer.State if !ok { return } ok = authorizationStateHandler(state) if !ok { return } } }() 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 } c.client.Stop() c.online = false } func authorizationStateHandler(state client.AuthorizationState) bool { switch state.AuthorizationStateType() { // TODO } return true }