public static XenforceGroupConfiguration getGroupConfiguration(TGChat chat) { SQLQueryInstance QueryInst; MySqlDataReader cur; var ok = SQL.Query(string.Format("SELECT * FROM xenf_groupconfigs WHERE `group`={0}", chat.id), out QueryInst); if (!ok) { Console.WriteLine("[!] Error reading chat information for {0} -- {1}", chat.id, SQL.getLastError()); Console.WriteLine(Environment.StackTrace); return(null); } else { cur = QueryInst.reader; if (cur.HasRows) { cur.Read(); XenforceGroupConfiguration b = new XenforceGroupConfiguration() { group = (long)cur["group"], kicktime = (int)cur["kicktime"], message = (string)cur["message"], autoban = (int)cur["autoban"], muteuntilverified = (int)cur["muteuntilverified"], announcekicks = (int)cur["announcekicks"], activationmode = ((int)cur["activationmode"]) }; QueryInst.Finish(); return(b); } else { QueryInst.Finish(); InitializeGroupConfiguration(chat); return(new XenforceGroupConfiguration()); } } }
public static void Start() { long last_update = 0; XenforceCommandInterpreter.LoadCommands(); backgroundTasks = new Thread(new ThreadStart(backgroundTasksThread)); backgroundTasks.Start(); lazyBackgroundTaskTime = Helpers.getUnixTime(); while (true) { if (lazyBackgroundTaskTime < Helpers.getUnixTime() - 3) { // backgroundTasksThread(); lazyBackgroundTaskTime = Helpers.getUnixTime(); } var b = Telegram.getUpdates(last_update + 1, 30); if (b == null) { Console.WriteLine("NULL Update Array:", Telegram.lastError); Thread.Sleep(250); continue; } Console.WriteLine("Grabbed {0} updates.", b.Length); for (int i = 0; i < b.Length; i++) { var CurrentUpdate = b[i]; if (CurrentUpdate.update_id > last_update) { last_update = CurrentUpdate.update_id; } if (CurrentUpdate.edited_message != null) { CurrentUpdate.message = CurrentUpdate.edited_message; } if (CurrentUpdate.message != null) { var message = CurrentUpdate.message; if (message.from.is_bot) { continue; // don't need to process these } CurrentGroupConfig = getGroupConfiguration(message.chat); if (message.photo != null) { try { XENFCoreSharp.Bot.Filters.XESFilter.doURLMediaFilter(message, message.from); } catch (Exception E) { var file = Helpers.writeStack(E.ToString()); //message.replySendMessage("Hello -- Something terrible went wrong with XenfBot, please report this, and reference XES_STK_" + file); Console.WriteLine(E.ToString()); } } if (message.text != null) { try { XENFCoreSharp.Bot.Filters.XESFilter.doURLFilter(message, message.from); } catch (Exception E) { var file = Helpers.writeStack(E.ToString()); // message.replySendMessage("Hello -- Something terrible went wrong with XenfBot, please report this, and reference XES_STK_" + file); Console.WriteLine(E.ToString()); } var varg_1 = message.text.Split((char)0x20); if (varg_1.Length > 0) { if (varg_1[0] == "/xen") { if (varg_1.Length > 1) { var VARGUMENTS = new string[varg_1.Length - 2]; for (int ix = 2; ix < varg_1.Length; ix++) { VARGUMENTS[ix - 2] = varg_1[ix]; // Move only string argument into argument table. } var success = XenforceCommandInterpreter.ExecuteCommand(varg_1[1], message, VARGUMENTS); if (!success) { message.replySendMessage(XenforceCommandInterpreter.TRESULT); } continue; } var successx = XenforceCommandInterpreter.ExecuteCommand("help", message, new string[0]); if (!successx) { //message.replySendMessage(XenforceCommandInterpreter.TRESULT); } continue; } } } if (message.new_chat_members != null && message.new_chat_members.Length > 0) { for (int bq = 0; bq < message.new_chat_members.Length; bq++) { XenforceUserFilter.doFilterUser(message, message.new_chat_members[bq]); } } } } } }