mirror of
https://github.com/sochix/TLSharp.git
synced 2025-12-06 08:02:00 +01:00
Search user by username with send message test. (#356)
* Search user by username with send message test.
This commit is contained in:
parent
0428753b2b
commit
47d1c10c9d
|
|
@ -337,6 +337,23 @@ namespace TLSharp.Core
|
|||
await _sender.SendPingAsync();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Serch user or chat. API: contacts.search#11f812d8 q:string limit:int = contacts.Found;
|
||||
/// </summary>
|
||||
/// <param name="q">User or chat name</param>
|
||||
/// <param name="limit">Max result count</param>
|
||||
/// <returns></returns>
|
||||
public async Task<TLFound> SearchUserAsync(string q, int limit = 10)
|
||||
{
|
||||
var r = new TeleSharp.TL.Contacts.TLRequestSearch
|
||||
{
|
||||
q = q,
|
||||
limit = limit
|
||||
};
|
||||
|
||||
return await SendRequestAsync<TLFound>(r);
|
||||
}
|
||||
|
||||
private void OnUserAuthenticated(TLUser TLUser)
|
||||
{
|
||||
_session.TLUser = TLUser;
|
||||
|
|
|
|||
|
|
@ -75,5 +75,11 @@ namespace TLSharp.Tests
|
|||
{
|
||||
await base.FloodExceptionShouldNotCauseCannotReadPackageLengthError();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public override async Task SendMessageByUserNameTest()
|
||||
{
|
||||
await base.SendMessageByUserNameTest();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -73,5 +73,11 @@ namespace TLSharp.Tests
|
|||
{
|
||||
await base.FloodExceptionShouldNotCauseCannotReadPackageLengthError();
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public override async Task SendMessageByUserNameTest()
|
||||
{
|
||||
await base.SendMessageByUserNameTest();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -323,6 +323,7 @@ namespace TLSharp.Tests
|
|||
var result = await client.IsPhoneRegisteredAsync(NumberToAuthenticate);
|
||||
Assert.IsTrue(result);
|
||||
}
|
||||
|
||||
public virtual async Task FloodExceptionShouldNotCauseCannotReadPackageLengthError()
|
||||
{
|
||||
for (int i = 0; i < 50; i++)
|
||||
|
|
@ -338,5 +339,42 @@ namespace TLSharp.Tests
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
public virtual async Task SendMessageByUserNameTest()
|
||||
{
|
||||
UserNameToSendMessage = ConfigurationManager.AppSettings[nameof(UserNameToSendMessage)];
|
||||
if (string.IsNullOrWhiteSpace(UserNameToSendMessage))
|
||||
throw new Exception($"Please fill the '{nameof(UserNameToSendMessage)}' setting in app.config file first");
|
||||
|
||||
var client = NewClient();
|
||||
|
||||
await client.ConnectAsync();
|
||||
|
||||
var result = await client.SearchUserAsync(UserNameToSendMessage);
|
||||
|
||||
var user = result.users.lists
|
||||
.Where(x => x.GetType() == typeof(TLUser))
|
||||
.OfType<TLUser>()
|
||||
.FirstOrDefault(x => x.username == UserNameToSendMessage.TrimStart('@'));
|
||||
|
||||
if (user == null)
|
||||
{
|
||||
var contacts = await client.GetContactsAsync();
|
||||
|
||||
user = contacts.users.lists
|
||||
.Where(x => x.GetType() == typeof(TLUser))
|
||||
.OfType<TLUser>()
|
||||
.FirstOrDefault(x => x.username == UserNameToSendMessage.TrimStart('@'));
|
||||
}
|
||||
|
||||
if (user == null)
|
||||
{
|
||||
throw new System.Exception("Username was not found: " + UserNameToSendMessage);
|
||||
}
|
||||
|
||||
await client.SendTypingAsync(new TLInputPeerUser() { user_id = user.id });
|
||||
Thread.Sleep(3000);
|
||||
await client.SendMessageAsync(new TLInputPeerUser() { user_id = user.id }, "TEST");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue