Exemplo n.º 1
0
def new_member(bot, update):
    if check_ban_state(update.message.chat_id, BanMessageType.ADDGROUP):
        update.message.delete()
    for members in update.message.new_chat_members:
        if user_is_ban(members.id):
            kick_user(bot=bot, update=update, user_list=[members.id])
    return
Exemplo n.º 2
0
    def filter(self, message):

        if not check_ban_state(message.chat_id, BanMessageType.FLOOD):
            return False
        chat_data: dict = get_chat_data(chat_id=message.chat_id)
        time = chat_data.get(ChatData.FLOOD_TIME)
        num = chat_data.get(ChatData.FLOOD_NUM)
        if not time or not num:
            return
        now_time = datetime.now().timestamp()
        user_data = get_user_data(message.from_user.id)
        msg_data = user_data.get(UserData.MSG_DATA, [])
        if len(msg_data) < num:
            msg_data.append(now_time)
            user_data["msg_data"] = msg_data
            return False
        liimt_time = now_time - time
        if msg_data[-1] < liimt_time:
            msg_data = [now_time]
            user_data["msg_data"] = msg_data
            return False
        msg_data = filter(lambda x: x > liimt_time, msg_data)
        if len(list(msg_data)) < num:
            user_data["msg_data"] = list(msg_data)
            return False
        return True
Exemplo n.º 3
0
 def filter(self, message):
     if not message.text:
         return False
     if not check_ban_state(message.chat_id, BanMessageType.EMOJI):
         return False
     if emoji_count(message.text):
         return True
     return False
Exemplo n.º 4
0
 def filter(self, message):
     if not message.document:
         return False
     if not check_ban_state(message.chat_id, BanMessageType.GIF):
         return False
     if message['document']['file_name'][-7:] == "gif.mp4":
         return True
     return False
Exemplo n.º 5
0
 def filter(self, message):
     if not message.text:
         return False
     if not check_ban_state(message.chat_id, BanMessageType.BANWORD):
         return False
     chat_data: dict = get_chat_data(chat_id=message.chat_id)
     re = chat_data.get(ChatData.BANWORD_RE)
     if not re:
         return False
     return re.search(message.text)
Exemplo n.º 6
0
 def filter(self, message):
     if not check_ban_state(message.chat_id, BanMessageType.LANG):
         return False
     chat_data: dict = get_chat_data(chat_id=message.chat_id)
     ban_list = chat_data.get(ChatData.LANG, [])
     if not len(ban_list):
         return False
     try:
         ret = detect(message.text) in ban_list
     except Exception:
         return False
     return ret
Exemplo n.º 7
0
 def filter(self, message):
     if not check_ban_state(message.chat_id, BanMessageType.MAXMSG):
         return False
     chat_data: dict = get_chat_data(chat_id=message.chat_id)
     if not chat_data.get(ChatData.MAXFLOOD):
         return False
     user_data = get_user_data(message.from_user.id)
     if not user_data.get(UserData.MAXMSG_DATA):
         user_data[UserData.MAXMSG_DATA] = {}
     msg_data = user_data[UserData.MAXMSG_DATA].get(message.date.day, [])
     if len(msg_data) >= chat_data.get(ChatData.MAXFLOOD):
         return True
     msg_data.append(1)
     user_data[UserData.MAXMSG_DATA][message.date.day] = msg_data
     return False
Exemplo n.º 8
0
 def filter(self, message):
     if not check_ban_state(message.chat_id, BanMessageType.TG_LINK):
         return False
     urls = message.parse_entities(types=MessageEntity.URL)
     if len(urls):
         for url in urls.values():
             send_url = urlparse(url)
             if not send_url.scheme:
                 send_url = urlparse("//" + url)
             if send_url.netloc in TELEGRAM_DOMAIN:
                 return True
     urls = message.parse_entities(types=MessageEntity.TEXT_LINK)
     if len(urls):
         for url in urls.keys():
             send_url = urlparse(url.url)
             if not send_url.scheme:
                 send_url = urlparse("//" + url.url)
             if send_url.netloc in TELEGRAM_DOMAIN:
                 return True
     return False
Exemplo n.º 9
0
 def filter(self, message):
     if not check_ban_state(message.chat_id, BanMessageType.NUMBERS):
         return False
     if not message.text:
         return False
     return NUM_RE.search(message.text)