""" ░██████╗░██████╗░██╗░░░░░███╗░░░███╗███████╗██████╗░██████╗░ ██╔════╝██╔═══██╗██║░░░░░████╗░████║██╔════╝██╔══██╗██╔══██╗ ╚█████╗░██║██╗██║██║░░░░░██╔████╔██║█████╗░░██████╔╝██████╔╝ ░╚═══██╗╚██████╔╝██║░░░░░██║╚██╔╝██║██╔══╝░░██╔══██╗██╔══██╗ ██████╔╝░╚═██╔═╝░███████╗██║░╚═╝░██║███████╗██║░░██║██║░░██║ ╚═════╝░░░░╚═╝░░░╚══════╝╚═╝░░░░░╚═╝╚══════╝╚═╝░░╚═╝╚═╝░░╚═╝ """ # meta developer: @sqlmerr_m # meta icon: https://github.com/sqlmerr/hikka_mods/blob/main/assets/icons/silentmessages.png?raw=true # meta banner: https://github.com/sqlmerr/sqlmerr/blob/main/assets/hikka_mods/sqlmerrmodules_silentmessages.png?raw=true from .. import loader, utils from hikkatl.tl.patched import Message @loader.tds class SilentMessages(loader.Module): """With this module you won't miss important messages sent without sound!""" strings = { "name": "SilentMessages", "_cfg_chats": "Chats in which the module will monitor messages without sound", "_cfg_status": "Is the module working or not?", "_cfg_text": "The text that will be sent by your inline bot when a silent message is received", "enabled": "enabled", "disabled": "disabled", "toggle_message": "🔖 Module {}!", } strings_ru = { "_cfg_chats": "Чаты, в которых модуль будет следить за сообщениями без звука", "_cfg_status": "Работает ли модуль или нет", "_cfg_text": "Текст, который будет отправлен вашим инлайн ботом, когда будет получено сообщение без звука", "enabled": "включен", "disabled": "выключен", "toggle_message": "🔖 Модуль {}!", "_cls_doc": "С этим модулем вы не пропустите важные сообщения, отправленные без звука!", } def __init__(self): self.config = loader.ModuleConfig( loader.ConfigValue( "chats", [], lambda: self.strings("_cfg_chats"), validator=loader.validators.Series(loader.validators.TelegramID()), ), loader.ConfigValue( "status", False, lambda: self.strings("_cfg_status"), validator=loader.validators.Boolean(), ), loader.ConfigValue( "text", "New silent message in chat {chat}: {link}", lambda: self.strings("_cfg_text"), validator=loader.validators.String(), ), ) @loader.command(ru_doc="включить/выключить модуль") async def silentmessages(self, message: Message): """toggle module status""" self.config["status"] = not self.config["status"] await utils.answer( message, self.strings("toggle_message").format( self.strings("enabled") if self.config["status"] else self.strings("disabled") ), ) @loader.watcher() async def watcher(self, message: Message): if not self.config["status"]: return if ( (getattr(message, "chat", None) and message.chat.id in self.config["chats"]) or ( getattr(message, "sender", None) and message.sender.id in self.config["chats"] ) ) and message.silent is True: link = await utils.get_message_link(message) chat_id = utils.get_chat_id(message) await self.inline.bot.send_message( self.tg_id, self.config["text"].format(chat=chat_id, link=link) )