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();
|
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)
|
private void OnUserAuthenticated(TLUser TLUser)
|
||||||
{
|
{
|
||||||
_session.TLUser = TLUser;
|
_session.TLUser = TLUser;
|
||||||
|
|
|
||||||
|
|
@ -75,5 +75,11 @@ namespace TLSharp.Tests
|
||||||
{
|
{
|
||||||
await base.FloodExceptionShouldNotCauseCannotReadPackageLengthError();
|
await base.FloodExceptionShouldNotCauseCannotReadPackageLengthError();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public override async Task SendMessageByUserNameTest()
|
||||||
|
{
|
||||||
|
await base.SendMessageByUserNameTest();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -73,5 +73,11 @@ namespace TLSharp.Tests
|
||||||
{
|
{
|
||||||
await base.FloodExceptionShouldNotCauseCannotReadPackageLengthError();
|
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);
|
var result = await client.IsPhoneRegisteredAsync(NumberToAuthenticate);
|
||||||
Assert.IsTrue(result);
|
Assert.IsTrue(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual async Task FloodExceptionShouldNotCauseCannotReadPackageLengthError()
|
public virtual async Task FloodExceptionShouldNotCauseCannotReadPackageLengthError()
|
||||||
{
|
{
|
||||||
for (int i = 0; i < 50; i++)
|
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