private static async Task ForceCheckInviteLinksAsync(TelegramBotAbstract sender, MessageEventArgs e) { int?n = null; try { n = await InviteLinks.FillMissingLinksIntoDB_Async(sender, e); } catch (Exception e2) { await NotifyUtil.NotifyOwners(new ExceptionNumbered(e2), sender); } if (n == null) { return; } var text2 = new Language(new Dictionary <string, string> { { "en", "I have updated n=" + n + " links" }, { "it", "Ho aggiornato n=" + n + " link" } }); await SendMessage.SendMessageInPrivate(sender, e.Message.From.Id, e.Message.From.LanguageCode, e.Message.From.Username, text2, ParseMode.Default, e.Message.MessageId); }
private static async Task ForceCheckInviteLinksAsync(TelegramBotAbstract sender, MessageEventArgs e) { var n = await InviteLinks.FillMissingLinksIntoDB_Async(sender); var text2 = new Language(new Dictionary <string, string> { { "en", "I have updated n=" + n + " links" }, { "it", "Ho aggiornato n=" + n + " link" } }); await SendMessage.SendMessageInPrivate(sender, e, text2); }
private void RemoveInviteLinkItem(int Index) { if (InviteLinks.InvokeRequired) { SafeCallDelegateRemoveAt removeAt = new SafeCallDelegateRemoveAt(RemoveInviteLinkItem); InviteLinks.Invoke(removeAt, new object[] { Index }); } else { InviteLinks.Items.RemoveAt(Index); } }
private int AddInviteLinkItem(object Item) { if (Item == null || string.IsNullOrEmpty((string)Item)) { return(-1); } if (InviteLinks.InvokeRequired) { SafeCallDelegateInvite addItem = new SafeCallDelegateInvite(AddInviteLinkItem); return((int)InviteLinks.Invoke(addItem, new object[] { Item })); } else { return(InviteLinks.Items.Add(Item)); } }
public static void LoadGlobal() { using (var db = new Database()) { Channels.Clear(); FullChannels.Clear(); if (db.Channels.Any()) { var channelObjects = db.Channels.Include(ch => ch.GroupsChannelIsIn).ThenInclude(groupMembers => groupMembers.Group); foreach (var groupMember in channelObjects) { Channels.Add(groupMember.Name, groupMember.ChannelID); FullChannels.Add(groupMember); } } PostTargets.Clear(); foreach (var target in db.PostTargets) { PostTargets.Add(target.Name, target.ChannelId); } Roles.Clear(); if (db.Roles.Any()) { foreach (var role in db.Roles) { Roles.Add(role.Name, role.RoleID); } } ServerID = db.PersistentData .First(x => x.Name == "server_id") .Value; InfoRoleManagerMessageId = db.PersistentData .First(x => x.Name == "rolemanager_message_id") .Value; StarboardStars = db.PersistentData .First(entry => entry.Name == "starboard_stars") .Value; Level2Stars = db.PersistentData .First(entry => entry.Name == "level_2_stars") .Value; Level3Stars = db.PersistentData .First(entry => entry.Name == "level_3_stars") .Value; Level4Stars = db.PersistentData .First(entry => entry.Name == "level_4_stars") .Value; DecayDays = db.PersistentData .First(entry => entry.Name == "decay_days") .Value; IllegalUserNameRegex = new Regex(db.PersistentData .First(entry => entry.Name == "illegal_user_name_regex") .StringValue, RegexOptions.Singleline | RegexOptions.Compiled); XPGainDisabled = db.PersistentData .First(entry => entry.Name == "xp_disabled") .Value == 1; InviteLinks.Clear(); foreach (var link in db.InviteLinks) { InviteLinks.Add(link); } ModmailCategoryId = db.PersistentData .First(entry => entry.Name == "modmail_category_id") .Value; XPGainRangeMin = (int)db.PersistentData .First(entry => entry.Name == "xp_gain_range_min") .Value; XPGainRangeMax = (int)db.PersistentData .First(entry => entry.Name == "xp_gain_range_max") .Value; Emotes.Clear(); if (db.Emotes.Any()) { foreach (var post in db.Emotes) { Emotes.Add(post.Key, post); } } StarboardPosts.Clear(); if (db.StarboardMessages.Any()) { foreach (var post in db.StarboardMessages) { StarboardPosts.Add(post); } } ProfanityChecks.Clear(); if (db.ProfanityChecks.Any()) { foreach (var word in db.ProfanityChecks) { word.RegexObj = new Regex(word.Word, RegexOptions.Singleline | RegexOptions.Compiled); ProfanityChecks.Add(word); } } var ReadChannels = db.FAQCommandChannels .Include(faqComand => faqComand.Command) .Include(faqComand => faqComand.ChannelGroupReference) .Include(faqComand => faqComand.CommandChannelEntries) .OrderBy(command => command.Command.ID) .ToList(); FAQCommands.Clear(); FAQCommandChannels.Clear(); FAQCommandChannels = ReadChannels; FAQCommands = db.FAQCommands.ToList(); Commands = db.Commands .Include(co => co.GroupsCommandIsIn).ThenInclude(grp => grp.ChannelGroupReference).ThenInclude(ch => ch.Channels) .ToList(); } ReloadModmailThreads(); }
public static async Task CommandDispatcherMethod(TelegramBotAbstract sender, MessageEventArgs e) { var cmdLines = e.Message.Text.Split(' '); var cmd = cmdLines[0].Trim(); if (cmd.Contains("@")) { var cmd2 = cmd.Split("@"); var botUsername = await sender.GetBotUsernameAsync(); if (cmd2[1].ToLower() != botUsername.ToLower()) { return; } } switch (cmd) { case "/start": { await Start(sender, e); return; } case "/force_check_invite_links": { if (GlobalVariables.Creators.Contains(e.Message?.Chat?.Username?.ToLower())) { _ = ForceCheckInviteLinksAsync(sender, e); } else { await DefaultCommand(sender, e); } return; } case "/contact": { await ContactUs(sender, e); return; } case "/help": { await Help(sender, e); return; } case "/muteAll": { if (e.Message.Chat.Type != ChatType.Private) { await CommandNotSentInPrivateAsync(sender, e); return; } if (GlobalVariables.AllowedMuteAll.Contains(e.Message.From?.Username?.ToLower())) { _ = MuteAllAsync(sender, e, cmdLines, e.Message.From.LanguageCode, e.Message.From.Username); } else { await DefaultCommand(sender, e); } return; } case "/banAll": { if (e.Message.Chat.Type != ChatType.Private) { await CommandNotSentInPrivateAsync(sender, e); return; } if (GlobalVariables.AllowedBanAll.Contains(e.Message.From?.Username?.ToLower())) { _ = BanAllAsync(sender, e, cmdLines, e.Message.From.LanguageCode, e.Message.From.Username); } else { await DefaultCommand(sender, e); } return; } /* * case "/massiveSend": * { * if (e.Message.Chat.Type != ChatType.Private) * { * await CommandNotSentInPrivateAsync(sender, e); * return; * } * * try * { * if (GlobalVariables.AllowedBanAll.Contains(e.Message.From?.Username?.ToLower())) * _ = MassiveSendAsync(sender, e, cmdLines, e.Message.From.LanguageCode, e.Message.From.Username); * else * await DefaultCommand(sender, e); * } * catch * { * ; * } * * return; * } */ case "/ban": { _ = BanUserAsync(sender, e, cmdLines); return; } case "/banAllHistory": { // _ = BanUserAsync(sender, e, cmdLines); _ = BanUserHistoryAsync(sender, e); return; } case "/unbanAll": { if (e.Message.Chat.Type != ChatType.Private) { await CommandNotSentInPrivateAsync(sender, e); return; } if (GlobalVariables.AllowedBanAll.Contains(e.Message.From?.Username?.ToLower())) { _ = UnbanAllAsync(sender, e, cmdLines, e.Message.From.LanguageCode, e.Message.From.Username); } else { await DefaultCommand(sender, e); } return; } case "/test_spam": { if (e.Message == null) { return; } if (e.Message.ReplyToMessage == null) { return; } await TestSpamAsync(e.Message.ReplyToMessage, sender, e); return; } case "/groups": { await SendRecommendedGroupsAsync(sender, e); return; } case "/getGroups": { if ((GlobalVariables.Creators.Contains(e.Message.From.Username) || Owners.CheckIfOwner(e.Message.From.Id)) && e.Message.Chat.Type == ChatType.Private) { string username = null; if (!string.IsNullOrEmpty(e.Message.From.Username)) { username = e.Message.From.Username; } _ = GetAllGroups(e.Message.From.Id, username, sender, e.Message.From.LanguageCode); return; } await DefaultCommand(sender, e); return; } case "/allowmessage": { if ((Owners.CheckIfOwner(e.Message.From.Id)) && e.Message.Chat.Type == ChatType.Private) { if (e.Message.ReplyToMessage == null || string.IsNullOrEmpty(e.Message.ReplyToMessage.Text)) { var text = new Language(new Dictionary <string, string> { { "en", "You have to reply to a message containing the message" } }); 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; } AllowedMessages.AddMessage(e.Message.ReplyToMessage.Text); return; } await DefaultCommand(sender, e); return; } case "/unallowmessage": { if ((Owners.CheckIfOwner(e.Message.From.Id)) && e.Message.Chat.Type == ChatType.Private) { if (e.Message.ReplyToMessage == null || string.IsNullOrEmpty(e.Message.ReplyToMessage.Text)) { var text = new Language(new Dictionary <string, string> { { "en", "You have to reply to a message containing the message" } }); 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; } AllowedMessages.removeMessage(e.Message.ReplyToMessage.Text); return; } await DefaultCommand(sender, e); return; } case "/updateGroups": { if ((GlobalVariables.Creators.Contains(e.Message.From.Username) || Owners.CheckIfOwner(e.Message.From.Id)) && e.Message.Chat.Type == ChatType.Private) { //System.Data.DataTable groups = Groups.GetAllGroups(); //var jsonFile = JObject.Parse(groups.ToString()); if (Variabili.L == null) { Variabili.L = new ListaGruppo(); } Variabili.L.ImportaGruppiDaTabellaTelegramGruppiBot_PuntoBin(); var json = JsonBuilder.getJson(new CheckGruppo(CheckGruppo.E.RICERCA_SITO_V3), false); } await DefaultCommand(sender, e); return; } case "/testtime": { if (e.Message.Chat.Type == ChatType.Private) { await TestTime(sender, e); } return; } case "/time": { var lang = new Language(new Dictionary <string, string> { { "", DateTimeClass.NowAsStringAmericanFormat() } }); await SendMessage.SendMessageInPrivate(sender, e.Message.From.Id, usernameToSendTo : e.Message.From.Username, langCode : e.Message.From.LanguageCode, text : lang, parseMode : ParseMode.Default, messageIdToReplyTo : null); return; } case "/assoc_write": case "/assoc_send": { _ = await Assoc.Assoc_SendAsync(sender, e); return; } case "/assoc_publish": { if (Owners.CheckIfOwner(e.Message.From.Id)) { _ = await Assoc.Assoc_Publish(sender, e); } else { _ = await DefaultCommand(sender, e); } return; } case "/assoc_read": { _ = await Assoc.Assoc_Read(sender, e, false); return; } case "/assoc_read_all": { if (Owners.CheckIfOwner(e.Message.From.Id)) { _ = await Assoc.Assoc_ReadAll(sender, e); } else { _ = await DefaultCommand(sender, e); } return; } case "/assoc_delete": case "/assoc_remove": { _ = await Assoc.Assoc_Delete(sender, e); return; } case "/rooms": { await Rooms.RoomsMainAsync(sender, e); return; } case "/rules": { _ = await Rules(sender, e); return; } case "/qe": { _ = await QueryBot(true, e, sender); return; } case "/qs": { _ = await QueryBot(false, e, sender); return; } case "/update_links_from_json": { await InviteLinks.UpdateLinksFromJsonAsync(sender, e); return; } default: { await DefaultCommand(sender, e); return; } } }
private static async Task <bool> CreateInviteLinkAsync(TelegramBotAbstract sender, MessageEventArgs e) { return(await InviteLinks.CreateInviteLinkAsync(e.Message.Chat.Id, sender)); }
public static void LoadGlobal() { using (var db = new Database()) { Channels.Clear(); FullChannels.Clear(); if (db.Channels.Any()) { var channelObjects = db.Channels.Include(ch => ch.GroupsChannelIsIn).ThenInclude(groupMembers => groupMembers.Group).ToList(); foreach (var groupMember in channelObjects) { Channels.Add(groupMember.Name, groupMember.ChannelID); FullChannels.Add(groupMember); } } PostTargets.Clear(); foreach (var target in db.PostTargets.ToList()) { PostTargets.Add(target.Name, target.ChannelId); } Roles.Clear(); if (db.Roles.Any()) { foreach (var role in db.Roles.ToList()) { Roles.Add(role.Name, role.RoleID); } } ServerID = PersistentData.GetConfiguredInt("server_id", db); InfoRoleMessageIds = new List <ulong>(); InfoRoleMessageIds.Add(PersistentData.GetConfiguredInt("rolemanager_message_id", db)); InfoRoleMessageIds.Add(PersistentData.GetConfiguredInt("rolemanager_message_id_2", db)); AutoMuteMaxLevel = PersistentData.GetConfiguredInt("auto_mute_max_level", db); AutoMutePingCount = PersistentData.GetConfiguredInt("auto_mute_ping_count", db); StarboardStars = PersistentData.GetConfiguredInt("starboard_stars", db); Level2Stars = PersistentData.GetConfiguredInt("level_2_stars", db); Level3Stars = PersistentData.GetConfiguredInt("level_3_stars", db); ModModeRoleId = PersistentData.GetConfiguredInt("mod_mode_role_id", db); ModModeRoleColor = Convert.ToUInt32(PersistentData.GetConfiguredString("mod_mode_role_color", db), 16); Level4Stars = PersistentData.GetConfiguredInt("level_4_stars", db); DecayDays = PersistentData.GetConfiguredInt("decay_days", db); LegalUserNameRegex = new Regex(PersistentData.GetConfiguredString("legal_user_name_regex", db), RegexOptions.Singleline | RegexOptions.Compiled); XPGainDisabled = PersistentData.GetConfiguredInt("xp_disabled", db) == 1; ProfanityVoteThreshold = (int)PersistentData.GetConfiguredInt("profanity_votes_threshold", db); InviteLinks.Clear(); foreach (var link in db.InviteLinks.ToList()) { InviteLinks.Add(link); } ModmailCategoryId = PersistentData.GetConfiguredInt("modmail_category_id", db); XPGainRangeMin = (int)PersistentData.GetConfiguredInt("xp_gain_range_min", db); XPGainRangeMax = (int)PersistentData.GetConfiguredInt("xp_gain_range_max", db); FilteredUdWords.Clear(); FilteredUdWords.AddRange(db.FilteredUDWords); Emotes.Clear(); if (db.Emotes.Any()) { foreach (var post in db.Emotes.ToList()) { Emotes.Add(post.Key, post); } } TrackedEmotes.Clear(); if (db.Emotes.Any()) { foreach (var post in db.Emotes.AsQueryable().Where(e => !e.TrackingDisabled).ToList()) { TrackedEmotes.Add(post.Key, post); } } FeatureFlags.Clear(); if (db.FeatureFlags.Any()) { foreach (var featureFlag in db.FeatureFlags.AsQueryable().ToList()) { FeatureFlags.Add(featureFlag.FeatureName, featureFlag); } } StarboardPosts.Clear(); if (db.StarboardMessages.Any()) { foreach (var post in db.StarboardMessages.ToList()) { StarboardPosts.Add(post); } } Categories.Clear(); if (db.Categories.Any()) { foreach (var category in db.Categories.ToList()) { Categories.Add(category); } } ProfanityChecks.Clear(); if (db.ProfanityChecks.Any()) { foreach (var word in db.ProfanityChecks.ToList()) { word.RegexObj = new Regex(word.Word, RegexOptions.Singleline | RegexOptions.Compiled); ProfanityChecks.Add(word); } } var ReadChannels = db.FAQCommandChannels .Include(faqComand => faqComand.Command) .Include(faqComand => faqComand.ChannelGroupReference) .Include(faqComand => faqComand.CommandChannelEntries) .OrderBy(command => command.Command.ID) .ToList(); FAQCommands.Clear(); FAQCommandChannels.Clear(); FAQCommandChannels = ReadChannels; FAQCommands = db.FAQCommands.ToList(); Commands = db.Commands .Include(co => co.GroupsCommandIsIn).ThenInclude(grp => grp.ChannelGroupReference).ThenInclude(ch => ch.Channels) .ToList(); } ReloadModmailThreads(); }