private static async Task <SuccessWithException> BanUserAsync( TelegramBotAbstract sender, MessageEventArgs e, string[] stringInfo) { var r = await Groups.CheckIfAdminAsync(e.Message.From.Id, e.Message.From.Username, e.Message.Chat.Id, sender); if (!r.IsSuccess()) { return(r); } if (e.Message.ReplyToMessage == null) { var userIdFound = await Info.GetTargetUserIdAsync(stringInfo[1], sender); if (userIdFound == null) { var e2 = new Exception("Can't find userid (1)"); await NotifyUtil.NotifyOwners(new ExceptionNumbered(e2), sender); return(new SuccessWithException(false, e2)); } var targetId = userIdFound.GetID(); if (targetId == null) { var e2 = new Exception("Can't find userid (2)"); await NotifyUtil.NotifyOwners(new ExceptionNumbered(e2), sender); return(new SuccessWithException(false, e2)); } return(await RestrictUser.BanUserFromGroup(sender, e, targetId.Value, e.Message.Chat.Id, null)); } var targetInt = e.Message.ReplyToMessage.From.Id; return(await RestrictUser.BanUserFromGroup(sender, e, targetInt, e.Message.Chat.Id, stringInfo)); }
private static async Task <bool> BanUserAsync(TelegramBotAbstract sender, MessageEventArgs e, string[] stringInfo) { var r = await Groups.CheckIfAdminAsync(e.Message.From.Id, e.Message.Chat.Id, sender); if (!r) { return(false); } if (e.Message.ReplyToMessage == null) { var targetInt = await Info.GetTargetUserIdAsync(stringInfo[1], sender); return(targetInt != null && await RestrictUser.BanUserFromGroup(sender, e, targetInt.Value, e.Message.Chat.Id, null)); } else { var targetInt = e.Message.ReplyToMessage.From.Id; return(await RestrictUser.BanUserFromGroup(sender, e, targetInt, e.Message.Chat.Id, stringInfo)); } }
private static async Task <object> BanUserHistoryAsync(TelegramBotAbstract sender, MessageEventArgs e) { var r = Owners.CheckIfOwner(e.Message.From.Id); if (!r) { return(r); } var query = "SELECT DISTINCT T1.target FROM " + "(SELECT * FROM Banned WHERE banned_true_unbanned_false = 83 ORDER BY when_banned DESC) AS T1, " + "(SELECT * FROM Banned WHERE banned_true_unbanned_false != 83 ORDER BY when_banned DESC) AS T2 " + "WHERE (T1.target = T2.target AND T1.when_banned >= T2.when_banned AND T1.target IN (SELECT target FROM(SELECT target FROM Banned WHERE banned_true_unbanned_false != 83 ORDER BY when_banned DESC))) OR (T1.target NOT IN (SELECT target FROM (SELECT target FROM Banned WHERE banned_true_unbanned_false != 83 ORDER BY when_banned DESC)))"; var x = SqLite.ExecuteSelect(query); if (x == null || x.Rows == null || x.Rows.Count == 0) { var text3 = new Language(new Dictionary <string, string> { { "en", "There are no users to ban!" } }); await sender.SendTextMessageAsync(e.Message.From.Id, text3, ChatType.Private, e.Message.From.LanguageCode, ParseMode.Html, null, e.Message.From.Username, e.Message.MessageId); return(false); } var groups = SqLite.ExecuteSelect("Select id From Groups"); /* * if(e.Message.Text.Length !=10) * { * Language text2 = new Language(new Dictionary<string, string>() { * {"en", "Group not found (1)!"} * }); * await sender.SendTextMessageAsync(e.Message.From.Id, text2, ChatType.Private, e.Message.From.LanguageCode, ParseMode.Html, null, e.Message.From.Username, e.Message.MessageId, false); * return false; * } */ var counter = 0; var channel = Regex.Match(e.Message.Text, @"\d+").Value; if (groups.Select("id = " + "'" + channel + "'").Length != 1) { var text2 = new Language(new Dictionary <string, string> { { "en", "Group not found! (2)" } }); await sender.SendTextMessageAsync(e.Message.From.Id, text2, ChatType.Private, e.Message.From.LanguageCode, ParseMode.Html, null, e.Message.From.Username, e.Message.MessageId); return(false); } foreach (DataRow element in x.Rows) { var userToBeBanned = Convert.ToInt64(element.ItemArray[0]); await RestrictUser.BanUserFromGroup(sender, e, userToBeBanned, Convert.ToInt64(channel), null); counter++; } var text = new Language(new Dictionary <string, string> { { "en", "Banned " + counter + " in group: " + groups.Select(channel) } }); await sender.SendTextMessageAsync(e.Message.From.Id, text, ChatType.Private, e.Message.From.LanguageCode, ParseMode.Html, null, e.Message.From.Username, e.Message.MessageId); return(true); }
private static async Task MainMethod2(object sender, MessageEventArgs e) { TelegramBotClient telegramBotClientBot = null; TelegramBotAbstract telegramBotClient = null; try { if (sender is TelegramBotClient tmp) { telegramBotClientBot = tmp; } if (telegramBotClientBot == null) { return; } telegramBotClient = TelegramBotAbstract.GetFromRam(telegramBotClientBot); var toExit = await ModerationCheck.CheckIfToExitAndUpdateGroupList(telegramBotClient, e); if (toExit.Item1 == ToExit.EXIT) { var itemToPrint = MemberListToString(toExit.Item2); var itemToPrint2 = ListIntToString(toExit.Item3); var itemToPrint3 = StringToStringToBePrinted(toExit.Item4); var itemToPrintFull = itemToPrint + "\n" + e?.Message?.Chat?.Title; itemToPrintFull += "\n----\n" + itemToPrint2 + "\n----\nS:" + itemToPrint3; itemToPrintFull += "\n----\n" + e?.Message?.Chat?.Id; itemToPrintFull += "\n@@@@@@"; throw new ToExitException(itemToPrintFull); } var NotAuthorizedBotHasBeenAddedBool = await ModerationCheck.CheckIfNotAuthorizedBotHasBeenAdded(e, telegramBotClient); if (NotAuthorizedBotHasBeenAddedBool != null && NotAuthorizedBotHasBeenAddedBool.Count > 0) { foreach (var bot in NotAuthorizedBotHasBeenAddedBool) { await RestrictUser.BanUserFromGroup(telegramBotClient, e, bot, e.Message.Chat.Id, null); } } //todo: send messagge "Bots not allowed here!" if (banMessageDetected(e)) { CommandDispatcher.banMessageActions(telegramBotClient, e); return; } var toExitBecauseUsernameAndNameCheck = await ModerationCheck.CheckUsernameAndName(e, telegramBotClient); if (toExitBecauseUsernameAndNameCheck) { return; } var checkSpam = ModerationCheck.CheckSpam(e); if (checkSpam != SpamType.ALL_GOOD && checkSpam != SpamType.SPAM_PERMITTED) { await ModerationCheck.AntiSpamMeasure(telegramBotClient, e, checkSpam); return; } if (checkSpam == SpamType.SPAM_PERMITTED) { await ModerationCheck.PermittedSpamMeasure(telegramBotClient, e, checkSpam); return; } if (e.Message.Text != null && e.Message.Text.StartsWith("/")) { await CommandDispatcher.CommandDispatcherMethod(telegramBotClient, e); } else { await TextConversation.DetectMessage(telegramBotClient, e); } } catch (Exception exception) { Console.WriteLine(exception.Message); await NotifyUtil.NotifyOwners(exception, telegramBotClient); } }