# █▀▀ ▄▀█   █▀▄▀█ █▀█ █▀▄ █▀ # █▀░ █▀█   █░▀░█ █▄█ █▄▀ ▄█ # https://t.me/famods # 🔒 Licensed under the GNU AGPLv3 # 🌐 https://www.gnu.org/licenses/agpl-3.0.html # --------------------------------------------------------------------------------- # Name: BanForAskMod # Description: Бан за просьбу дать модулей # meta developer: @FAmods # meta banner: https://github.com/FajoX1/FAmods/blob/main/assets/banners/banforaskmod.png?raw=true # --------------------------------------------------------------------------------- import re import asyncio import logging from telethon.tl.types import ChatBannedRights from .. import loader, utils logger = logging.getLogger(__name__) @loader.tds class BanForAskMod(loader.Module): """Бан за просьбу дать модулей""" strings = { "name": "BanForAskMod", "cannot_ban": " Не могу забанить пользователя", "opening_settings": "🔄 Открываю настройку...", } BANNED_RIGHTS = { "view_messages": False, "send_messages": False, "send_media": False, "send_stickers": False, "send_gifs": False, "send_games": False, "send_inline": False, "send_polls": False, "change_info": False, "invite_users": False, } def __init__(self): self.config = loader.ModuleConfig( loader.ConfigValue( "status", False, lambda: "Включить/Выключить бан", validator=loader.validators.Boolean() ), loader.ConfigValue( "chats", [], lambda: "Айди чатов где будет работать модуль. Пример: 42348439320", validator=loader.validators.Series(loader.validators.TelegramID()) ), loader.ConfigValue( "text", "👨‍⚖️ {user} забанен!\nПричина: Просьба дать модулей", lambda: "Текст бана пользователя", ), ) async def client_ready(self, client, db): self.db = db self._client = client @loader.command() async def bfmsettings(self, message): """Открыть настройку модуля""" m = await utils.answer(message, self.strings['opening_settings']) await self.invoke("config", "banforaskmod", message.peer_id) await message.delete() async def watcher(self, event): if not self.config['status']: return chat_id = utils.get_chat_id(event) if str(chat_id) not in map(str, [str(c).replace("-100", "") for c in self.config['chats']]): return pattern = r'(?:дай(?:те)?(?:\s+моду[лл][еь]?[йя]?| моду[лл][еь]?[йя]?)|моду[лл][еь]?[йя]?\s+дай(?:те)?)' match = re.search(pattern, event.raw_text.lower()) if not match: return try: await self._client.edit_permissions( chat_id, event.from_id, until_date=0, **self.BANNED_RIGHTS, ) await utils.answer(event, self.config['text'].format(user=f"{event.sender.first_name + (event.sender.last_name if event.sender.last_name else '')}")) except Exception as e: logger.error(e) await utils.answer(event, self.strings['cannot_ban'])