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);
            }
        }
Пример #2
0
        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);
        }
Пример #3
0
        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);
        }