public static void setActivationMessage(TGMessage data, string[] arguments) { if (arguments.Length < 2) { data.replySendMessage("Failed to set activation message. It may optionally include the object %NAME, and must be two words long."); return; } var str = ""; for (int i = 0; i < arguments.Length; i++) { str += arguments[i] + " "; // Combine wordsssss } var success = XenforceRoot.writeGroupConfiguration(data.chat, "activationmessage", str); if (!success) { data.replySendMessage("Sorry, something went wrong when setting this option. I'd recommend contacting my creator, @xayrga -- I'm sure he can help you."); return; } var msg = data.replySendMessage("OK. Successfully set the activation message. I will now print an example, these messages will be cleaned up in 45 seconds -- so please get a good look at them before you walk away."); XenforceRoot.AddCleanupMessage(data.chat.id, msg.message_id, 45); str = str.Replace("%NAME", "@xenfbot"); msg = data.replySendMessage(str); }
public static void doFilterUser(TGMessage msg, TGUser user) { if (!user.is_bot) { try { bool b = false; b = Filters.XESFilter.autorem(msg, user); if (b == true) { return; } b = Filters.XESFilter.namefilter(msg, user); if (b == true) { return; } b = Filters.XESFilter.captcha(msg, user); if (b == true) { return; } } catch (Exception E) { Console.WriteLine("F*****g seriously?\n{0}", E.ToString()); } } }
public static async Task <bool> Execute(TGMessage message, TGUser ncm, GroupConfigurationObject gco, string langcode) { if (gco.useBotScreen != true) // Skipping because disabled. { return(true); } var query = "SELECT * FROM xenf_autokick WHERE `group`={0} AND `user`={1}"; var fQry = string.Format(query, message.chat.id, ncm.id); var w = await SQL.QueryAsync(fQry); if (w.Count > 0) { return(true); } var UserScore = 500; if (ncm.username != null) { UserScore -= 50; } return(true); }
public static void setWelcomeMessage(TGMessage data, string[] arguments) { if (arguments.Length < 2) { data.replySendMessage("Failed to set welcome message. The message must include the object %ACTURL in it. It may optionally include the object %NAME, or %DURATION (Amount of time they have to verify) -- oh, and it needs to be at least two words."); return; } var str = ""; for (int i = 0; i < arguments.Length; i++) { str += arguments[i] + " "; // Combine wordsssss } if (!str.Contains("%ACTURL")) { data.replySendMessage(string.Format("Failed to set welcome message. The message must include the object %ACTURL in it. It may optionally include the object %NAME.")); return; } var success = XenforceRoot.writeGroupConfiguration(data.chat, "message", str); if (!success) { data.replySendMessage("Sorry, something went wrong when setting this option. I'd recommend contacting my creator, @xayrga -- I'm sure he can help you."); return; } var msg = data.replySendMessage("OK. Successfully set the welcome message. I will now print an example, these messages will be cleaned up in 45 seconds -- so please get a good look at them before you walk away."); XenforceRoot.AddCleanupMessage(data.chat.id, msg.message_id, 45); str = str.Replace("%ACTURL", "http://xayr.ga/xenf2/iamabotandidontneedtoverify"); str = str.Replace("%DURATION", "30"); str = str.Replace("%NAME", "@xenfbot"); msg = data.replySendMessage(str); XenforceRoot.AddCleanupMessage(data.chat.id, msg.message_id, 45); }
public static void setValuebool(TGMessage data, string[] arguments) { if (arguments.Length > 1) { var before = arguments[1]; var after = before == "true"; if (before == "true" || before == "false") { var success = XenforceRoot.writeGroupConfiguration(data.chat, arguments[0], after); if (!success) { data.replySendMessage(string.Format("That didn't work. The configuration item {0} might not exist or is already this value.", arguments[0])); } else { data.replySendMessage(string.Format("Success, set {0} to {1}", arguments[0], before)); } } else { data.replySendMessage(string.Format("Sorry, I couldn't understand the value '{0}', you need to use a boolean (true/false).", before)); } } else { data.replySendMessage("The usage of this command is: setint <valname> <value>"); } }
public static bool ExecuteCommand(string command, TGMessage metadata, string[] arguments) { Action <TGMessage, string[]> currentCommand; var Success = AllCommands.TryGetValue(command, out currentCommand); if (currentCommand == null || Success == false) { TRESULT = "No such command."; BRESULT = false; return(false); } try { if (metadata.isSenderAdmin()) { currentCommand.Invoke(metadata, arguments); } } catch (Exception E) { var file = Helpers.writeStack(E.ToString()); BRESULT = false; TRESULT = "Something terrible happened while running this. If you need support with this, please reference this XEN_STACK_" + file; return(false); } return(true); }
public static void doURLMediaFilter(TGMessage msg, TGUser usr) { var chat = msg.chat; // grab chat. var enabled = XenforceRoot.getGroupConfigurationValue(chat, "kickurlunactivated", false); // Check configuration value. if (!enabled) // return if not enabled. { return; } var qsc = "SELECT * FROM xen_activations WHERE activated=0 AND `group`={0} AND `forwho`={1}"; // var rqry = string.Format(qsc, chat.id, usr.id); SQLQueryInstance QueryInst; var queryok = SQL.Query(rqry, out QueryInst); bool onerow = false; if (QueryInst != null && QueryInst.reader.HasRows) // They've already been kicked before. If we return at least one row, then its valid to assume they havent activated { // There can only be one activation index per user per group. onerow = true; } if (QueryInst != null) { QueryInst.Finish(); } if (!onerow) { return; // There was no activation } var wtf = msg.replySendMessage(usr.first_name + " was removed from the chat for sending URL/Media before activating!"); XenforceRoot.AddCleanupMessage(msg.chat.id, wtf.message_id, 30); Telegram.kickChatMember(msg.chat, msg.from, 30); msg.delete(); var statement = string.Format("INSERT INTO xenf_autokick (`group`,`user`,`when`,`why`) VALUES ({0},{1},{2},'{3}')", msg.chat.id, msg.from.id, Helpers.getUnixTime(), "URLMedia_Picture" ); int ra = 0; SQL.NonQuery(statement, out ra); if (ra < 1) { Console.WriteLine("Creating autorem incident failed failed. No SQL rows affected."); var cmsg = msg.replySendMessage("AutoremAddIncident() FAILED:\n\n Info:\n\n" + SQL.getLastError()); XenforceRoot.AddCleanupMessage(chat.id, cmsg.message_id, 120); } }
public static void getValueBool(TGMessage data, string[] arguments) { if (arguments.Length > 0) { //data.replySendMessage("Xen Enforce Bot V3.1.4.5 (Serg--- Circle?)\n\nDocumentation on commands is available at http://www.xayr.ga/xenforce/"); // throw new Exception("fuuuuck"); var ok = XenforceRoot.getGroupConfigurationValue(data.chat, arguments[0], false); var repl = "The current value of {0} is {1}"; data.replySendMessage(string.Format(repl, arguments[0], ok)); } else { data.replySendMessage("The usage of this command is: getbool <valname>"); } }
public static void getValueInt(TGMessage data, string[] arguments) { if (arguments.Length > 0) { var ok = XenforceRoot.getGroupConfigurationValue(data.chat, arguments[0], -999912); if (ok == -999912) { data.replySendMessage(string.Format("The configuration attribute {0} doesn't exist.", arguments[0])); } var repl = "The current value of {0} is {1}"; data.replySendMessage(string.Format(repl, arguments[0], ok)); } else { data.replySendMessage("The usage of this command is: getint <valname>"); } }
public static bool captcha(TGMessage msg, TGUser usr) { var UserID = usr.id; var GroupID = msg.chat.id; var ActivationID = Helpers.Base64Encode(UserID.ToString() + GroupID.ToString()); var q = usr.username; var user_name_full = usr.first_name + " " + usr.last_name; var ko = 0; var ok = SQL.NonQuery(string.Format("DELETE FROM xen_activations WHERE activation_id='{0}'", ActivationID), out ko); // Remove the current activation ID. if (q != null) { user_name_full = "@" + q; // okay okay fine jeez. } var muteUntilVerified = XenforceRoot.getGroupConfigurationValue(msg.chat, "muteuntilverified", false); var kicktime = XenforceRoot.getGroupConfigurationValue(msg.chat, "kicktime", 30); var instance_time = Helpers.getUnixTime(); var FullMessageOld = string.Format( "Welcome, %NAME. \n" + "Please complete a quick captcha within %DURATION minutes to verify you're not a bot: \n\n" + "%ACTURL" ); var FullMessage = XenforceRoot.getGroupConfigurationValue(msg.chat, "message", FullMessageOld); if (FullMessage == null || FullMessage.Length < 10) { FullMessage = FullMessageOld; } FullMessage = FullMessage.Replace("%ACTURL", "http://www.xayr.ga/xenf2/?actid=" + ActivationID); FullMessage = FullMessage.Replace("%DURATION", kicktime.ToString()); FullMessage = FullMessage.Replace("%NAME", user_name_full); if (muteUntilVerified == true) { Telegram.restrictChatMember(msg.chat, usr, 0, false, false, false, false); // Restrict until they verify. FullMessage += "\n\nYou will not be able to send any messages until you've verified."; } var message = msg.replySendMessage(FullMessage); // INSERT INTO xen_activations (activation_id,group,forwho,whencreated,actmessage,username) VALUES ('{0}',{1},{2},{3},{4},'{5}'); if (message == null || GroupID == null || instance_time == null || user_name_full == null || ActivationID == null) { try { Console.WriteLine("MESSAGE IS NULL OR SOMETHING"); Console.WriteLine("PROBLEM: {0} {1}", message, user_name_full); } catch { } } else { var statement = string.Format("INSERT INTO xen_activations (`activation_id`,`group`,`forwho`,`whencreated`,`actmessage`,`username`) VALUES ('{0}',{1},{2},{3},{4},'{5}')", SQL.escape(ActivationID), GroupID, UserID, instance_time, message.message_id, SQL.escape(user_name_full) ); int ra = 0; SQL.NonQuery(statement, out ra); if (ra < 1) { Console.WriteLine("Creating activation ID failed. No SQL rows affected."); var cmsg = msg.replySendMessage("CreateActivationID() FAILED:\n\n Info:\n\n" + SQL.getLastError()); if (cmsg != null) { XenforceRoot.AddCleanupMessage(message.chat.id, cmsg.message_id, 120); } } return(false); } return(false); }
public static async Task <bool> Execute(TGMessage message, TGUser ncm, GroupConfigurationObject gco, string langcode) { var query = "SELECT * FROM xenf_activations WHERE `group`={0} AND `forwho`={1}"; return(false); }
public async virtual Task Execute(TGMessage message, string[] args, GroupConfigurationObject gco, string langcode) { }
public override async Task Execute(TGMessage message, string[] args, GroupConfigurationObject gco, string langcode) { Console.WriteLine(args.Length); if (args.Length == 0) { var msgs = Localization.getStringLocalized(langcode, "basic/commands/config/availableCommands") + "\n\n"; for (int i = 0; i < configureCommands.Length; i++) { msgs += "[" + configureCommands[i] + "] " + Localization.getStringLocalized(langcode, "basic/commands/config/" + configureCommands[i]) + "\n\n"; } await message.replySendMessage(msgs); return; } var val = args[0]; switch (val) { case "kickTime": { int num = 0; var w = Int32.TryParse(args[1], out num); if (w != true) { var mems = await message.replySendMessage("I couldn't understand the value " + args[1] + ", it should be a number."); return; } var q = await gco.setNumber(args[0], num); if (q != true) { var mems = await message.replySendMessage(Localization.getStringLocalized(langcode, "basic/config/somethingWrong")); return; } break; } case "useNameFilter": case "useBotScreen": case "kickMediaBeforeCaptcha": case "muteUntilVerified": case "announceKicks": { bool resv = args[1] == "true"; if (resv == true) { var q = await gco.setNumber(args[0], 1); if (q != true) { var mems = await message.replySendMessage(Localization.getStringLocalized(langcode, "basic/config/somethingWrong")); return; } } else { var q = await gco.setNumber(args[0], 0); if (q != true) { var mems = await message.replySendMessage(Localization.getStringLocalized(langcode, "basic/config/somethingWrong")); return; } } break; } case "message": case "activationmessage": break; } var fmt = Localization.getStringLocalized(langcode, "basic/config/success"); var vl1 = string.Format(fmt, args[0], args[1]); await message.replySendMessage(vl1); }
public virtual async void Execute(TGMessage message, GroupConfigurationObject gco, string langcode) { }
public static bool autorem(TGMessage msg, TGUser usr) { var chat = msg.chat; var enable = XenforceRoot.getGroupConfigurationValue(chat, "autoban", true); if (!enable) { return(false); } // Not enabled. var qsc = "SELECT * FROM xenf_autokick WHERE `group`={0} AND `user`={1}"; var rqry = string.Format(qsc, chat.id, usr.id); MySql.Data.MySqlClient.MySqlDataReader datar; SQLQueryInstance QueryInst; var queryok = SQL.Query(rqry, out QueryInst); if (QueryInst != null && QueryInst.reader.HasRows) // They've already been kicked before. { QueryInst.Finish(); return(false); } if (QueryInst != null) { QueryInst.Finish(); } var UserID = usr.id; var GroupID = msg.chat.id; var user_name_full = usr.first_name + " " + usr.last_name; var userscore = 500; for (int i = 0; i < user_name_full.Length; i++) { var wtf = user_name_full[i]; if (wtf > 0xAF) { userscore += 5; } else if (wtf < 0x80) { userscore -= 3; } } var picons = Telegram.getNumProfilePhotos(usr); userscore -= picons * 45; if (picons == 0) { userscore += 30; } if (userscore > 488) { Telegram.kickChatMember(chat, usr, 120); if (XenforceRoot.getGroupConfigurationValue(chat, "announcekicks", 1) > 0) { msg.delete(); var msgr = msg.replySendMessage(user_name_full + " was automatically removed from the chat -- I think they're a bot."); XenforceRoot.AddCleanupMessage(chat.id, msgr.message_id, 30); var statement = string.Format("INSERT INTO xenf_autokick (`group`,`user`,`when`,`why`) VALUES ({0},{1},{2},'{3}')", GroupID, UserID, Helpers.getUnixTime(), "Bot Score too high" ); int ra = 0; SQL.NonQuery(statement, out ra); if (ra < 1) { Console.WriteLine("Creating autorem incident failed failed. No SQL rows affected."); var cmsg = msg.replySendMessage("AutoremAddIncident() FAILED:\n\n Info:\n\n" + SQL.getLastError()); XenforceRoot.AddCleanupMessage(chat.id, cmsg.message_id, 120); } } return(true); } return(false); }
public static bool namefilter(TGMessage msg, TGUser usr) { var chat = msg.chat; var enable = XenforceRoot.getGroupConfigurationValue(chat, "autobannames", true); if (!enable) { return(false); } // Not enabled. var qsc = "SELECT * FROM xenf_autokick WHERE `group`={0} AND `user`={1}"; var rqry = string.Format(qsc, chat.id, usr.id); MySql.Data.MySqlClient.MySqlDataReader datar; SQLQueryInstance QueryInst; var queryok = SQL.Query(rqry, out QueryInst); if (QueryInst != null && QueryInst.reader.HasRows) // They've already been kicked before. { QueryInst.Finish(); return(false); } if (QueryInst != null) { QueryInst.Finish();; } var UserID = usr.id; var GroupID = msg.chat.id; var user_name_full = usr.first_name + " " + usr.last_name; var userscore = 0; for (int i = 0; i < ShitNames.Length; i++) { var q = user_name_full.Contains(ShitNames[i]); if (q) { userscore++; } } if (userscore > 0) { Telegram.kickChatMember(chat, usr, 120); if (XenforceRoot.getGroupConfigurationValue(chat, "announcekicks", 1) > 0) { msg.delete(); var msgr = msg.replySendMessage(user_name_full + " removed -- name matches common bot."); XenforceRoot.AddCleanupMessage(chat.id, msgr.message_id, 30); var statement = string.Format("INSERT INTO xenf_autokick (`group`,`user`,`when`,`why`) VALUES ({0},{1},{2},'{3}')", GroupID, UserID, Helpers.getUnixTime(), "Name is in blacklist" ); int ra = 0; SQL.NonQuery(statement, out ra); if (ra < 1) { Console.WriteLine("Creating autorem incident failed failed. No SQL rows affected."); var cmsg = msg.replySendMessage("AutoremAddIncident() FAILED:\n\n Info:\n\n" + SQL.getLastError()); XenforceRoot.AddCleanupMessage(chat.id, cmsg.message_id, 120); } } return(true); } return(false); }
public static void sendHelp(TGMessage data, string[] arguments) { data.replySendMessage("Xen Enforce Bot V3.1.4.5 (Serg--- Circle?)\n\nDocumentation on commands is available at https://www.github.com/XAYRGA/XENFCoreSharp/"); }