From 534f86df348ea0359bccf06a13b87cb848b22aa7 Mon Sep 17 00:00:00 2001 From: Ruslan-Isaev Date: Wed, 8 Jan 2025 04:08:32 +0300 Subject: [PATCH] Add files via upload --- Amnesty.py | 79 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 Amnesty.py diff --git a/Amnesty.py b/Amnesty.py new file mode 100644 index 0000000..58308f9 --- /dev/null +++ b/Amnesty.py @@ -0,0 +1,79 @@ +version = (1, 0, 0) + +# meta developer: @RUIS_VlP + +from telethon import functions, TelegramClient +from telethon.tl.types import Message, ChannelParticipantsKicked, ChatBannedRights +import time +from .. import loader, utils +import typing +from telethon.errors import ChatAdminRequiredError, UserAdminInvalidError + +def seq_rights(sequence: str, inv: bool = False) -> typing.Union[dict, None]: + if not sequence: + return None + + result = {} + + for right in sequence: + if right == '0': + result['view_messages'] = not inv + elif right == '1': + result['send_messages'] = not inv + elif right == '2': + result['send_media'] = not inv + elif right == '3': + result['send_stickers'] = not inv + elif right == '4': + result['send_gifs'] = not inv + elif right == '5': + result['send_games'] = not inv + elif right == '6': + result['send_inline'] = not inv + elif right == '7': + result['embed_link_previews'] = not inv + elif right == '8': + result['send_polls'] = not inv + elif right == '9': + result['change_info'] = not inv + elif right == 'a': + result['invite_users'] = not inv + elif right == 'b': + result['pin_messages'] = not inv + else: + raise ValueError(f'Unknown right: {right}') + + return result + +@loader.tds +class AmnestyMod(loader.Module): + """Модуль для разбана всех пользователей в чате""" + + strings = { + "name": "Amnesty", + } + + @loader.command() + async def amnestycmd(self, message): + """ - разблокирует всех""" + try: + chat_id = message.chat.id + except: + await utils.answer(message, "🚫 Команда доступна только в супергруппах и каналах!") + return + chat = await message.client.get_participants(chat_id, filter=ChannelParticipantsKicked) + ids = [user.id for user in chat] + i = 0 + for id in ids: + try: + await self.client.edit_permissions(chat_id, id, None, **seq_rights('0'),) + except ChatAdminRequiredError: + return await utils.answer(message, "🚫 Недостаточно прав! ") + except UserAdminInvalidError: + return await utils.answer(message, "🚫 Недостаточно прав! ") + except Exception as e: + return await utils.answer(message, "🚫 Ошибка! \n\n{e}") + await utils.answer(message, f"♻️ Разбанено пользователей: {i + 1}/{int(len(ids))}") + i += 1 + time.sleep(1) + await utils.answer(message, f"✅ Успешно! {int(len(ids))} пользователей разблокировано!") \ No newline at end of file