コード例 #1
0
ファイル: MainPage.xaml.cs プロジェクト: 0xfab-ri/Matrix
        public MainPage()
        {
            InitializeComponent();

            Items    = new System.Collections.ObjectModel.ObservableCollection <string>();
            _handler = new MyClientResultHandler(this);

            Td.Client.Execute(new TdApi.SetLogVerbosityLevel(0));
            Td.Client.Execute(new TdApi.SetLogStream(new TdApi.LogStreamFile(Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "log"), 1 << 27)));

            System.Threading.Tasks.Task.Run(() =>
            {
                try
                {
                    _client        = Td.Client.Create(_handler);
                    var parameters = new TdApi.TdlibParameters();
                    parameters.DatabaseDirectory  = Windows.Storage.ApplicationData.Current.LocalFolder.Path;
                    parameters.UseSecretChats     = true;
                    parameters.UseMessageDatabase = true;
                    parameters.ApiId              = 94575;
                    parameters.ApiHash            = "a3406de8d171bb422bb6ddf3bbd800e2";
                    parameters.SystemLanguageCode = "en";
                    parameters.DeviceModel        = "Desktop";
                    parameters.SystemVersion      = "Unknown";
                    parameters.ApplicationVersion = "1.0.0";
                    _client.Send(new TdApi.SetTdlibParameters(parameters), null);
                    _client.Send(new TdApi.CheckDatabaseEncryptionKey(), null);
                    _client.Run();
                }
                catch (Exception ex)
                {
                    Print(ex.ToString());
                }
            });
        }
コード例 #2
0
        private static void OnAuthorizationStateUpdated(TdApi.AuthorizationState authorizationState)
        {
            if (authorizationState != null)
            {
                _authorizationState = authorizationState;
            }
            if (_authorizationState is TdApi.AuthorizationStateWaitTdlibParameters)
            {
                TdApi.TdlibParameters parameters = new TdApi.TdlibParameters();
                parameters.DatabaseDirectory  = "tdlib";
                parameters.UseMessageDatabase = true;
                parameters.UseSecretChats     = true;
                parameters.ApiId                  = 94575;
                parameters.ApiHash                = "a3406de8d171bb422bb6ddf3bbd800e2";
                parameters.SystemLanguageCode     = "en";
                parameters.DeviceModel            = "Desktop";
                parameters.ApplicationVersion     = "1.0";
                parameters.EnableStorageOptimizer = true;

                _client.Send(new TdApi.SetTdlibParameters(parameters), new AuthorizationRequestHandler());
            }
            else if (_authorizationState is TdApi.AuthorizationStateWaitEncryptionKey)
            {
                _client.Send(new TdApi.CheckDatabaseEncryptionKey(), new AuthorizationRequestHandler());
            }
            else if (_authorizationState is TdApi.AuthorizationStateWaitPhoneNumber)
            {
                string phoneNumber = ReadLine("Please enter phone number: ");
                _client.Send(new TdApi.SetAuthenticationPhoneNumber(phoneNumber, null), new AuthorizationRequestHandler());
            }
            else if (_authorizationState is TdApi.AuthorizationStateWaitOtherDeviceConfirmation state)
            {
                Console.WriteLine("Please confirm this login link on another device: " + state.Link);
            }
            else if (_authorizationState is TdApi.AuthorizationStateWaitCode)
            {
                string code = ReadLine("Please enter authentication code: ");
                _client.Send(new TdApi.CheckAuthenticationCode(code), new AuthorizationRequestHandler());
            }
            else if (_authorizationState is TdApi.AuthorizationStateWaitRegistration)
            {
                string firstName = ReadLine("Please enter your first name: ");
                string lastName  = ReadLine("Please enter your last name: ");
                _client.Send(new TdApi.RegisterUser(firstName, lastName), new AuthorizationRequestHandler());
            }
            else if (_authorizationState is TdApi.AuthorizationStateWaitPassword)
            {
                string password = ReadLine("Please enter password: "******"Logging out");
            }
            else if (_authorizationState is TdApi.AuthorizationStateClosing)
            {
                _haveAuthorization = false;
                Print("Closing");
            }
            else if (_authorizationState is TdApi.AuthorizationStateClosed)
            {
                Print("Closed");
                _client.Dispose(); // _client is closed and native resources can be disposed now
                if (!_quiting)
                {
                    _client = CreateTdClient(); // recreate _client after previous has closed
                }
            }
            else
            {
                Print("Unsupported authorization state:" + _newLine + _authorizationState);
            }
        }
コード例 #3
0
        private static void OnAuthorizationStateUpdated(TdApi.AuthorizationState authorizationState)
        {
            if (authorizationState != null)
            {
                _authorizationState = authorizationState;
            }
            if (_authorizationState is TdApi.AuthorizationStateWaitTdlibParameters)
            {
                TdApi.TdlibParameters parameters = new TdApi.TdlibParameters();
                parameters.DatabaseDirectory  = "tdlib";
                parameters.UseMessageDatabase = true;
                parameters.UseSecretChats     = true;
                parameters.ApiId                  = 94575;
                parameters.ApiHash                = "a3406de8d171bb422bb6ddf3bbd800e2";
                parameters.SystemLanguageCode     = "en";
                parameters.DeviceModel            = "Desktop";
                parameters.SystemVersion          = "Unknown";
                parameters.ApplicationVersion     = "1.0";
                parameters.EnableStorageOptimizer = true;

                _client.Send(new TdApi.SetTdlibParameters(parameters), new AuthorizationRequestHandler());
            }
            else if (_authorizationState is TdApi.AuthorizationStateWaitEncryptionKey)
            {
                _client.Send(new TdApi.CheckDatabaseEncryptionKey(), new AuthorizationRequestHandler());
            }
            else if (_authorizationState is TdApi.AuthorizationStateWaitPhoneNumber)
            {
                string phoneNumber = ReadLine("Please enter phone number: ");
                _client.Send(new TdApi.SetAuthenticationPhoneNumber(phoneNumber, false, false), new AuthorizationRequestHandler());
            }
            else if (_authorizationState is TdApi.AuthorizationStateWaitCode)
            {
                string code = ReadLine("Please enter authentication code: ");
                _client.Send(new TdApi.CheckAuthenticationCode(code, "", ""), new AuthorizationRequestHandler());
            }
            else if (_authorizationState is TdApi.AuthorizationStateWaitPassword)
            {
                string password = ReadLine("Please enter password: "******"Logging out");
            }
            else if (_authorizationState is TdApi.AuthorizationStateClosing)
            {
                _haveAuthorization = false;
                Print("Closing");
            }
            else if (_authorizationState is TdApi.AuthorizationStateClosed)
            {
                Print("Closed");
                if (!_quiting)
                {
                    _client = CreateTdClient(); // recreate _client after previous has closed
                }
            }
            else
            {
                Print("Unsupported authorization state:" + _newLine + _authorizationState);
            }
        }
コード例 #4
0
        public void OnAuthorizationStateUpdated(TdApi.AuthorizationState authorizationState)
        {
            if (authorizationState != null)
            {
                _authorizationState = authorizationState;
            }
            if (_authorizationState is TdApi.AuthorizationStateWaitTdlibParameters)
            {
                TdApi.TdlibParameters parameters = new TdApi.TdlibParameters();
                parameters.DatabaseDirectory  = _databaseDirectory;
                parameters.UseMessageDatabase = _useMessageDatabase;
                parameters.UseSecretChats     = _useSecretChats;
                parameters.ApiId                  = _apiId;
                parameters.ApiHash                = _apiHash;
                parameters.SystemLanguageCode     = _systemLanguageCode;
                parameters.DeviceModel            = _deviceModel;
                parameters.SystemVersion          = _systemVersion;
                parameters.ApplicationVersion     = _applicationVersion;
                parameters.EnableStorageOptimizer = _enableStorageOptimizer;

                _client.Send(new TdApi.SetTdlibParameters(parameters), new AuthorizationRequestHandler());

                OnAuthorizationStateUpdatedEvent(EnumAuthorization.TdlibParameters);
            }
            else if (_authorizationState is TdApi.AuthorizationStateWaitEncryptionKey)
            {
                _client.Send(new TdApi.CheckDatabaseEncryptionKey(), new AuthorizationRequestHandler());
                OnAuthorizationStateUpdatedEvent(EnumAuthorization.EncryptionKey);
            }
            else if (_authorizationState is TdApi.AuthorizationStateWaitPhoneNumber)
            {
                OnAuthorizationStateUpdatedEvent(EnumAuthorization.WaitPhoneNumber);
            }
            else if (_authorizationState is TdApi.AuthorizationStateWaitCode)
            {
                OnAuthorizationStateUpdatedEvent(EnumAuthorization.WaitCode);
            }
            else if (_authorizationState is TdApi.AuthorizationStateWaitPassword)
            {
                OnAuthorizationStateUpdatedEvent(EnumAuthorization.WaitPassword);
            }
            else if (_authorizationState is TdApi.AuthorizationStateReady)
            {
                _haveAuthorization = true;
                _gotAuthorization.Set();
                OnAuthorizationStateUpdatedEvent(EnumAuthorization.Ready);
            }
            else if (_authorizationState is TdApi.AuthorizationStateLoggingOut)
            {
                _haveAuthorization = false;
                Print("Logging out");
                OnAuthorizationStateUpdatedEvent(EnumAuthorization.LoggingOut);
            }
            else if (_authorizationState is TdApi.AuthorizationStateClosing)
            {
                _haveAuthorization = false;
                Print("Closing");
                OnAuthorizationStateUpdatedEvent(EnumAuthorization.Closing);
            }
            else if (_authorizationState is TdApi.AuthorizationStateClosed)
            {
                Print("Closed");
                if (!_quiting)
                {
                    _client = CreateTdClient(); // recreate _client after previous has closed
                }
                OnAuthorizationStateUpdatedEvent(EnumAuthorization.Closed);
            }
            else
            {
                Print("Unsupported authorization state:" + _newLine + _authorizationState);
                OnAuthorizationStateUpdatedEvent(EnumAuthorization.None);
            }
            OnAuthorizationStateUpdatedEvent(EnumAuthorization.None);
        }