| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | from . import get_help |
| |
|
| | __doc__ = get_help("help_autoban") |
| |
|
| | from telethon import events |
| |
|
| | from pyUltroid.dB.base import KeyManager |
| |
|
| | from . import LOGS, asst, ultroid_bot, ultroid_cmd |
| |
|
| | Keym = KeyManager("DND_CHATS", cast=list) |
| |
|
| |
|
| | def join_func(e): |
| | return e.user_joined and Keym.contains(e.chat_id) |
| |
|
| |
|
| | async def dnd_func(event): |
| | for user in event.users: |
| | try: |
| | await (await event.client.kick_participant(event.chat_id, user)).delete() |
| | except Exception as ex: |
| | LOGS.error("Error in DND:") |
| | LOGS.exception(ex) |
| | await event.delete() |
| |
|
| |
|
| | @ultroid_cmd( |
| | pattern="autokick (on|off)$", |
| | admins_only=True, |
| | manager=True, |
| | require="ban_users", |
| | fullsudo=True, |
| | ) |
| | async def _(event): |
| | match = event.pattern_match.group(1) |
| | if match == "on": |
| | if Keym.contains(event.chat_id): |
| | return await event.eor("`Chat already in do not disturb mode.`", time=3) |
| | Keym.add(event.chat_id) |
| | event.client.add_handler(dnd_func, events.ChatAction(func=join_func)) |
| | await event.eor("`Do not disturb mode activated for this chat.`", time=3) |
| | elif match == "off": |
| | if not Keym.contains(event.chat_id): |
| | return await event.eor("`Chat is not in do not disturb mode.`", time=3) |
| | Keym.remove(event.chat_id) |
| | await event.eor("`Do not disturb mode deactivated for this chat.`", time=3) |
| |
|
| |
|
| | if Keym.get(): |
| | ultroid_bot.add_handler(dnd_func, events.ChatAction(func=join_func)) |
| | asst.add_handler(dnd_func, events.ChatAction(func=join_func)) |
| |
|