bugfixes
This commit is contained in:
parent
93eda081db
commit
a3e39142d6
|
@ -315,6 +315,12 @@ namespace telegram {
|
|||
public OpenSecretCommand() : base("os", "", "opens a secret chat. queries chat list.", "<query>", -1) { }
|
||||
|
||||
public override void Handler(List<string> inputParams) {
|
||||
if (inputParams.Count == 0) {
|
||||
lock (@lock)
|
||||
messageQueue.Add($"{Ansi.Red}[tgcli] No matching chat found.");
|
||||
return;
|
||||
}
|
||||
|
||||
var query = inputParams.Aggregate((current, param) => current + " " + param).Trim();
|
||||
var userId = SearchUserInChats(query);
|
||||
if (userId == 0 || query.Length == 0) {
|
||||
|
@ -580,7 +586,9 @@ namespace telegram {
|
|||
var secretChats = GetSecretChats();
|
||||
lock (@lock) {
|
||||
messageQueue.Add($"{Ansi.Yellow}[tgcli] Listing {secretChats.Count} secret chats:");
|
||||
secretChats.ForEach(chat => { messageQueue.Add($"{Ansi.Bold}{Ansi.Red}[sec] {chat.Title} -> {chat.Id}"); });
|
||||
secretChats.ForEach(chat => {
|
||||
messageQueue.Add($"{Ansi.Bold}{Ansi.Red}[sec] {chat.Title} -> {chat.Id} ({GetSecretChat(((TdApi.ChatType.ChatTypeSecret) chat.Type).SecretChatId).State.DataType})");
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -103,10 +103,33 @@ namespace telegram {
|
|||
}
|
||||
|
||||
public static List<Chat> GetUnreadChats(bool all = false) {
|
||||
var response = client.ExecuteAsync(new GetChats {OffsetOrder = long.MaxValue, Limit = int.MaxValue}).Result;
|
||||
return all
|
||||
? response.ChatIds.Select(GetChat).Where(c => c.UnreadCount > 0 || c.IsMarkedAsUnread).ToList()
|
||||
: response.ChatIds.Select(GetChat).Where(c => (c.UnreadCount > 0 || c.IsMarkedAsUnread) && c.NotificationSettings.MuteFor == 0).ToList();
|
||||
var output = new List<Chat>();
|
||||
var offset = 0L;
|
||||
while (true) {
|
||||
if (offset == 0) {
|
||||
var response = client.ExecuteAsync(new GetChats {OffsetOrder = long.MaxValue, Limit = int.MaxValue}).Result;
|
||||
offset = GetChat(response.ChatIds.Last()).Order;
|
||||
output.AddRange(all
|
||||
? response.ChatIds.Select(GetChat).Where(c => c.UnreadCount > 0 || c.IsMarkedAsUnread).ToList()
|
||||
: response.ChatIds.Select(GetChat)
|
||||
.Where(c => (c.UnreadCount > 0 || c.IsMarkedAsUnread) && c.NotificationSettings.MuteFor == 0)
|
||||
.ToList());
|
||||
}
|
||||
else {
|
||||
var response = client.ExecuteAsync(new GetChats {OffsetOrder = offset, Limit = int.MaxValue}).Result;
|
||||
if (response.ChatIds.Length == 0)
|
||||
break;
|
||||
|
||||
offset = GetChat(response.ChatIds.Last()).Order;
|
||||
output.AddRange(all
|
||||
? response.ChatIds.Select(GetChat).Where(c => c.UnreadCount > 0 || c.IsMarkedAsUnread).ToList()
|
||||
: response.ChatIds.Select(GetChat)
|
||||
.Where(c => (c.UnreadCount > 0 || c.IsMarkedAsUnread) && c.NotificationSettings.MuteFor == 0)
|
||||
.ToList());
|
||||
}
|
||||
}
|
||||
|
||||
return output;
|
||||
}
|
||||
|
||||
public static List<Chat> GetChats() {
|
||||
|
|
Loading…
Reference in a new issue