Esempio n. 1
0
def spamchecker(user_id):
    ban = None
    if spamwatch:
        ban = spamwatch.get_ban(user_id)
    return bool(ban)
Esempio n. 2
0
 async def anti_spambot(event):
     if not event.user_joined and not event.user_added:
         return
     chat = event.chat_id
     user = await event.get_user()
     catadmin = await is_admin(bot, chat, bot.uid)
     if not catadmin:
         return
     catbanned = None
     adder = None
     ignore = None
     if event.user_added:
         try:
             adder = event.action_message.sender_id
         except AttributeError:
             return
     async for admin in event.client.iter_participants(
             event.chat_id, filter=ChannelParticipantsAdmins):
         if admin.id == adder:
             ignore = True
             break
     if ignore:
         return
     if is_gbanned(user.id):
         catgban = get_gbanuser(user.id)
         if catgban.reason:
             hmm = await event.reply(
                 f"[{user.first_name}](tg://user?id={user.id}) was gbanned by you for the reason `{catgban.reason}`"
             )
         else:
             hmm = await event.reply(
                 f"[{user.first_name}](tg://user?id={user.id}) was gbanned by you"
             )
         try:
             await bot.edit_permissions(chat, user.id, view_messages=False)
             catbanned = True
         except Exception as e:
             LOGS.info(e)
     if spamwatch and not catbanned:
         ban = spamwatch.get_ban(user.id)
         if ban:
             hmm = await event.reply(
                 f"[{user.first_name}](tg://user?id={user.id}) was banned by spamwatch for the reason `{ban.reason}`"
             )
             try:
                 await bot.edit_permissions(chat,
                                            user.id,
                                            view_messages=False)
                 catbanned = True
             except Exception as e:
                 LOGS.info(e)
     if not catbanned:
         try:
             casurl = "https://api.cas.chat/check?user_id={}".format(
                 user.id)
             data = get(casurl).json()
         except Exception as e:
             LOGS.info(e)
             data = None
         if data and data["ok"]:
             reason = (
                 f"[Banned by Combot Anti Spam](https://cas.chat/query?u={user.id})"
             )
             hmm = await event.reply(
                 f"[{user.first_name}](tg://user?id={user.id}) was banned by Combat anti-spam service(CAS) for the reason check {reason}"
             )
             try:
                 await bot.edit_permissions(chat,
                                            user.id,
                                            view_messages=False)
                 catbanned = True
             except Exception as e:
                 LOGS.info(e)
     if BOTLOG and catbanned:
         await event.client.send_message(
             BOTLOG_CHATID,
             "#ANTISPAMBOT\n"
             f"**User :** [{user.first_name}](tg://user?id={user.id})\n"
             f"**Chat :** {event.chat.title} (`{event.chat_id}`)\n"
             f"**Reason :** {hmm.text}",
         )