diff --git a/TLSharp.Core/Network/MtProtoSender.cs b/TLSharp.Core/Network/MtProtoSender.cs index d298b84..581b4db 100644 --- a/TLSharp.Core/Network/MtProtoSender.cs +++ b/TLSharp.Core/Network/MtProtoSender.cs @@ -267,6 +267,12 @@ namespace TLSharp.Core.Network Debug.WriteLine($"Should wait {seconds} sec."); Thread.Sleep(1000*seconds); } + else if (errorMessage.StartsWith("PHONE_MIGRATE_")) + { + var resultString = Regex.Match(errorMessage, @"\d+").Value; + var dcIdx = int.Parse(resultString); + throw new InvalidOperationException($"Your phone number registered to {dcIdx} dc. Please update settings. See https://github.com/sochix/TLSharp#i-get-an-error-migrate_x for details."); + } else { throw new InvalidOperationException(errorMessage); @@ -332,7 +338,7 @@ namespace TLSharp.Core.Network throw new InvalidOperationException("invalid container"); } - throw new NotImplementedException(); + throw new NotImplementedException("This should never happens"); /* logger.debug("bad_msg_notification: msgid {0}, seq {1}, errorcode {2}", requestId, requestSequence, errorCode); @@ -397,7 +403,7 @@ namespace TLSharp.Core.Network messageReader.BaseStream.Position -= 12; - throw new NotImplementedException(); + throw new NotImplementedException("Handle future server salts function isn't implemented."); /* if (!runningRequests.ContainsKey(requestId)) { diff --git a/TLSharp.Core/TelegramClient.cs b/TLSharp.Core/TelegramClient.cs index 131ff12..859494b 100644 --- a/TLSharp.Core/TelegramClient.cs +++ b/TLSharp.Core/TelegramClient.cs @@ -14,12 +14,18 @@ namespace TLSharp.Core private MtProtoSender _sender; private AuthKey _key; private readonly TcpTransport _transport; - private string _apiHash = "_your_hash"; - private int _apiId = 0; + private string _apiHash = "a2514f96431a228e4b9ee473f6c51945"; + private int _apiId = 19474; private Session _session; public TelegramClient(ISessionStore store, string sessionUserId) { + if (_apiId == 0) + throw new InvalidOperationException("Your API_ID is invalid. Do a configuration first https://github.com/sochix/TLSharp#quick-configuration"); + + if (string.IsNullOrEmpty(_apiHash)) + throw new InvalidOperationException("Your API_ID is invalid. Do a configuration first https://github.com/sochix/TLSharp#quick-configuration"); + _transport = new TcpTransport(); _session = Session.TryLoadOrCreateNew(store, sessionUserId); } diff --git a/TLSharp.Tests/NotificatioClientTests.cs b/TLSharp.Tests/NotificatioClientTests.cs index bdc08fa..800ba47 100644 --- a/TLSharp.Tests/NotificatioClientTests.cs +++ b/TLSharp.Tests/NotificatioClientTests.cs @@ -21,15 +21,30 @@ namespace TLSharp.Tests { // Setup your phone numbers in app.config NumberToAuthenticate = ConfigurationManager.AppSettings["numberToAuthenticate"]; + if (string.IsNullOrEmpty(NumberToAuthenticate)) + throw new InvalidOperationException("NumberToAuthenticate is null"); + RegisteredNumber = ConfigurationManager.AppSettings["registeredNumber"]; + if (string.IsNullOrEmpty(RegisteredNumber)) + throw new InvalidOperationException("RegisteredNumber is null"); + UnregisteredNumber = ConfigurationManager.AppSettings["unregisteredNumber"]; - } + if (string.IsNullOrEmpty(UnregisteredNumber)) + throw new InvalidOperationException("UnregisteredNumber is null"); + + if (NumberToAuthenticate == UnregisteredNumber) + throw new InvalidOperationException("NumberToAuthenticate eqauls UnregisteredNumber but shouldn't!"); + + if (RegisteredNumber == UnregisteredNumber) + throw new InvalidOperationException("RegisteredNumber eqauls UnregisteredNumber but shouldn't!"); + } [TestMethod] public async Task AuthUser() { var store = new FileSessionStore(); var client = new TelegramClient(store, "session"); + await client.Connect(); var hash = await client.SendCodeRequest(NumberToAuthenticate); @@ -70,6 +85,7 @@ namespace TLSharp.Tests var store = new FileSessionStore(); var client = new Core.TelegramClient(store, "session"); + await client.Connect(); Assert.IsTrue(client.IsUserAuthorized());