private static async Task BanAllUnbanAllMethod1Async(RestrictAction restrictAction, string finalTarget, MessageEventArgs e, TelegramBotAbstract sender, string lang, string username, DateTime?until) { if (string.IsNullOrEmpty(finalTarget)) { var lang2 = new Language(new Dictionary <string, string> { { "en", "We can't find the target." }, { "it", "Non riusciamo a trovare il bersaglio" } }); await sender.SendTextMessageAsync(e.Message.From.Id, lang2, ChatType.Private, lang, ParseMode.Default, username : username, replyMarkupObject : new ReplyMarkupObject(ReplyMarkupEnum.REMOVE)); return; } var done = await RestrictUser.BanAllAsync(sender, e, finalTarget, restrictAction, until); var text2 = done.Item1.GetLanguage(restrictAction, finalTarget, done.Item3); await SendMessage.SendMessageInPrivate(sender, e.Message.From.Id, e.Message.From.LanguageCode, e.Message.From.Username, text2, ParseMode.Default, e.Message.MessageId); await SendReportOfSuccessAndFailures(sender, e, done); }
public async Task <IActionResult> Restrict(RestrictUser user) { if (!ModelState.IsValid) { return(View(user)); } ApplicationUser foundUser = await _userManager.FindByEmailAsync(user.Email); if (foundUser != null) { bool ifAnAdmin = await _userManager.IsInRoleAsync(foundUser, "Admin"); if (!ifAnAdmin) { _userRepo.restrict(foundUser.Id, true); ViewBag.restrict = "done"; } else { ViewBag.restrict = "admin"; } } else { ViewBag.restrict = "not found"; } return(View(user)); }
private static async Task UnbanAllAsync(TelegramBotAbstract sender, MessageEventArgs e, string target) { var done = await RestrictUser.BanAllAsync(sender, e, target, false); var text2 = new Language(new Dictionary <string, string> { { "en", "Target unbanned from " + done.Count + " groups" }, { "it", "Target sbannato da " + done.Count + " gruppi" } }); await SendMessage.SendMessageInPrivate(sender, e, text2); }
private static async Task SendUsernameWarning(TelegramBotAbstract telegramBotClient, bool username, bool name, string lang, string usernameOfUser, long chatId, int userId, int?messageId, ChatType messageChatType, string firstName, string lastName) { var s1I = "Imposta un username e un nome più lungo dalle impostazioni di telegram\n"; if (username && !name) { s1I = "Imposta un username dalle impostazioni di telegram\n"; } else if (!username && name) { s1I = "Imposta un nome più lungo " + "dalle impostazioni di telegram\n"; } var s1E = "Set an username and a longer first name from telegram settings"; if (username && !name) { s1E = "Set an username from telegram settings"; } else if (!username && name) { s1E = "Set a longer first name from telegram settings"; } var s2 = new Language(new Dictionary <string, string> { { "it", s1I }, { "en", s1E } }); await SendMessage.SendMessageInPrivateOrAGroup(telegramBotClient, s2, lang, usernameOfUser, userId, firstName, lastName, chatId, messageChatType); await RestrictUser.Mute(60 * 5, telegramBotClient, chatId, userId); if (messageId != null) { await telegramBotClient.DeleteMessageAsync(chatId, messageId.Value, messageChatType); } }
public ActionResult userRistrictedView() { Database1Entities1 db = new Database1Entities1(); UserCrudServices service = new UserCrudServices(); string username = (string)(Session["username"]); User user = service.findByString(username); RestrictUser rUser = new RestrictUser(); rUser.allusers = service.findAllUsers(); rUser.edit = user.option_edit; rUser.delete = user.option_delete; return(View(rUser)); }
private static async Task BanAllAsync(TelegramBotAbstract sender, MessageEventArgs e, IReadOnlyList <string> target, string lang, string username) { if (e.Message.ReplyToMessage == null) { if (target.Count < 2) { var lang2 = new Language(new Dictionary <string, string> { { "en", "We can't find the target." }, { "it", "Non riusciamo a trovare il bersaglio" } }); await sender.SendTextMessageAsync(e.Message.From.Id, lang2, ChatType.Private, lang, ParseMode.Default, username : username, replyMarkupObject : new ReplyMarkupObject(ReplyMarkupEnum.REMOVE)); } else { var done = await RestrictUser.BanAllAsync(sender, e, target[1], true); var text2 = new Language(new Dictionary <string, string> { { "en", "Target banned from " + done.Count + " groups" }, { "it", "Target bannato da " + done.Count + " gruppi" } }); await SendMessage.SendMessageInPrivate(sender, e, text2); } } else { var done = await RestrictUser.BanAllAsync(sender, e, e.Message.ReplyToMessage.From.Id.ToString(), true); var text3 = new Language(new Dictionary <string, string> { { "en", "Target banned from " + done.Count + " groups" }, { "it", "Target bannato da " + done.Count + " gruppi" } }); await SendMessage.SendMessageInPrivate(sender, e, text3); } }
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); }
public static async Task AntiSpamMeasure(TelegramBotAbstract telegramBotClient, MessageEventArgs e, SpamType checkSpam) { if (checkSpam == SpamType.ALL_GOOD) { return; } await RestrictUser.Mute(60 * 5, telegramBotClient, e.Message.Chat.Id, e.Message.From.Id); var language = e.Message.From.LanguageCode.ToLower(); switch (checkSpam) { case SpamType.SPAM_LINK: { var text2 = new Language(new Dictionary <string, string> { { "en", "You sent a message with spam, and you were muted for 5 minutes" }, { "it", "Hai inviato un messaggio con spam, e quindi il bot ti ha mutato per 5 minuti" } }); await SendMessage.SendMessageInPrivate(telegramBotClient, e, text2); break; } case SpamType.NOT_ALLOWED_WORDS: { var text2 = new Language(new Dictionary <string, string> { { "en", "You sent a message with banned words, and you were muted for 5 minutes" }, { "it", "Hai inviato un messaggio con parole bandite, e quindi il bot ti ha mutato per 5 minuti" } }); await SendMessage.SendMessageInPrivate(telegramBotClient, e, text2); break; } case SpamType.FOREIGN: { var text2 = new Language(new Dictionary <string, string> { { "en", "You sent a message with banned characters, and you were muted for 5 minutes" }, { "it", "Hai inviato un messaggio con caratteri banditi, e quindi il bot ti ha mutato per 5 minuti" } }); await SendMessage.SendMessageInPrivate(telegramBotClient, e, text2); break; } // ReSharper disable once UnreachableSwitchCaseDueToIntegerAnalysis case SpamType.ALL_GOOD: return; default: throw new ArgumentOutOfRangeException(nameof(checkSpam), checkSpam, null); } await telegramBotClient.DeleteMessageAsync(e.Message.Chat.Id, e.Message.MessageId, e.Message.Chat.Type); }
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); } }
private static async Task SendUsernameWarning(TelegramBotAbstract telegramBotClient, bool username, bool name, string lang, string usernameOfUser, long chatId, int userId, int?messageId, ChatType messageChatType, string firstName, string lastName, User[] newChatMembers) { var s1I = "Imposta un username e un nome più lungo dalle impostazioni di telegram per poter scrivere in questo gruppo\n"; if (username && !name) { s1I = "Imposta un username dalle impostazioni di telegram per poter scrivere in questo gruppo\n"; } else if (!username && name) { s1I = "Imposta un nome più lungo " + "dalle impostazioni di telegram\n"; } var s1E = "Set an username and a longer first name from telegram settings to write in this group\n"; if (username && !name) { s1E = "Set an username from telegram settings to write in this group\n"; } else if (!username && name) { s1E = "Set a longer first name from telegram settings to write in this group\n"; } var s2 = new Language(new Dictionary <string, string> { { "it", s1I }, { "en", s1E } }); var r1 = await SendMessage.SendMessageInPrivateOrAGroup(telegramBotClient, s2, lang, usernameOfUser, userId, firstName, lastName, chatId, messageChatType); const int MINUTES_WAIT = 2; if (r1.GetChatType() != ChatType.Private) { var r2 = r1.GetMessage(); if (r2 != null) { if (r2 is TLMessage r3) { lock (GlobalVariables.MessagesToDelete) { var timeUntilDelete = TimeSpan.FromMinutes(MINUTES_WAIT); var TimeToDelete = DateTime.Now + timeUntilDelete; var toDelete = new MessageToDelete(r3, chatId, TimeToDelete, telegramBotClient.GetId(), r1.GetChatType(), null); GlobalVariables.MessagesToDelete.Add(toDelete); FileSerialization.WriteToBinaryFile(Paths.Bin.MessagesToDelete, GlobalVariables.MessagesToDelete); } } else if (r2 is Message r4) { lock (GlobalVariables.MessagesToDelete) { var timeUntilDelete = TimeSpan.FromMinutes(MINUTES_WAIT); var TimeToDelete = DateTime.Now + timeUntilDelete; var toDelete = new MessageToDelete(r4, chatId, TimeToDelete, telegramBotClient.GetId(), r1.GetChatType(), null); GlobalVariables.MessagesToDelete.Add(toDelete); FileSerialization.WriteToBinaryFile(Paths.Bin.MessagesToDelete, GlobalVariables.MessagesToDelete); } } else { var e4 = "Attempted to add a message to be deleted in queue\n" + r2?.GetType() + " " + r2; var e3 = new Exception(e4); await NotifyUtil.NotifyOwners(e3, telegramBotClient); } } } if (newChatMembers == null || newChatMembers.Length == 0) { await RestrictUser.Mute(60 * 5, telegramBotClient, chatId, userId, messageChatType); } if (messageId != null) { await telegramBotClient.DeleteMessageAsync(chatId, messageId.Value, messageChatType, null); } }