| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- from wbb import app
- from wbb.utils.filter_groups import antiflood_group
- from wbb.utils.errors import capture_err
- from wbb.utils.dbfunctions import (
- is_antiflood_on,
- antiflood_on,
- antiflood_off
- )
- from wbb.modules.admin import list_admins, member_permissions
- from pyrogram import filters
- tdb = []
- @app.on_message(group=antiflood_group)
- async def antiflood_check(_, message):
- global tdb
- if not is_antiflood_on:
- return
- chat_id = message.chat.id
- user_id = message.from_user.id
- admins = await list_admins(chat_id)
- # ignore admins
- if user_id in admins:
- return
- for chat in tdb:
- if chat['chat_id'] == chat_id:
- for user in chat['user_ids']:
- if user == user_id:
- chat['user_ids'][user]['messages'] == \
- ((chat['user_ids'][user]['messages'] + 1)) \
- if chat['user_ids'][user]['messages'] else 1
- if chat['user_ids'][user]['messages'] > 7:
- await message.chat.restrict_member(
- user_id,
- permissions=ChatPermissions()
- )
- await message.reply_text(f"Yeah i don't like spam, Muted!")
- return
- if not tdb:
- tdb.append(
- {
- "chat_id": chat_id,
- "user_ids": [
- {
- user_id: {
- "messages": 1
- }
- }
- ]
- }
- )
- return
- @app.on_message(filters.command("flood"))
- @capture_err
- async def captcha_state(_, message):
- usage = "**Usage:**\n/flood [ON|OFF]"
- if len(message.command) != 2:
- await message.reply_text(usage)
- return
- user_id = message.from_user.id
- chat_id = message.chat.id
- permissions = await member_permissions(chat_id, user_id)
- if "can_restrict_members" not in permissions:
- await message.reply_text("You don't have enough permissions.")
- return
- state = message.text.split(None, 1)[1].strip()
- state = state.lower()
- if state == "on":
- await antiflood_on(chat_id)
- await message.reply_text("Muting members on 7 consecutive messages.")
- elif state == "off":
- await antiflood_off(chat_id)
- await message.reply_text("Disabled Antiflood")
- else:
- await message.reply_text(usage)
|