public static void GetIdles(Update update, string[] args) { //check user ids and such List <long> ids = new List <long>(); foreach (var arg in args.Skip(1).FirstOrDefault()?.Split(' ') ?? new[] { "" }) { if (int.TryParse(arg, out int id)) { ids.Add(id); } } //now check for mentions foreach (var ent in update.Message.Entities.Where(x => x.Type == MessageEntityType.TextMention)) { ids.Add(ent.User.Id); } //check for reply if (update.Message.ReplyToMessage != null) { ids.Add(update.Message.ReplyToMessage.From.Id); } var reply = ""; var language = GetLanguage(update.Message.Chat.Id); //now get the idle kills using (var db = new WWContext()) { foreach (var id in ids) { var idles = db.GetIdleKills24Hours(id).FirstOrDefault() ?? 0; var groupidles = db.GetGroupIdleKills24Hours(id, update.Message.Chat.Id).FirstOrDefault() ?? 0; //get the user ChatMember user = null; try { user = Bot.Api.GetChatMemberAsync(update.Message.Chat.Id, id).Result; } catch { // ignored } var str = $"{id} ({user?.User.FirstName})"; reply += GetLocaleString("IdleCount", language, str, idles); reply += " " + GetLocaleString("GroupIdleCount", language, groupidles) + "\n"; } } Send(reply, update.Message.Chat.Id); }
public static void MyIdles(Update update, string[] args) { bool isgroup = new[] { ChatType.Group, ChatType.Supergroup }.Contains(update.Message.Chat.Type); var idles = 0; var groupidles = 0; using (var db = new WWContext()) { idles = db.GetIdleKills24Hours(update.Message.From.Id).FirstOrDefault() ?? 0; if (isgroup) { groupidles = db.GetGroupIdleKills24Hours(update.Message.From.Id, update.Message.Chat.Id).FirstOrDefault() ?? 0; } } var str = $"{update.Message.From.Id} ({update.Message.From.FirstName})"; var language = GetLanguage(update.Message.Chat.Id); var reply = GetLocaleString("IdleCount", language, str, idles); if (isgroup) { reply += " " + GetLocaleString("GroupIdleCount", language, groupidles); } try { var result = Bot.Api.SendTextMessageAsync(update.Message.From.Id, reply).Result; if (update.Message.Chat.Type != ChatType.Private) { Send(GetLocaleString("SentPrivate", GetLanguage(update.Message.From.Id)), update.Message.Chat.Id); } } catch { RequestPM(update.Message.Chat.Id); } }