""" ░██████╗░██████╗░██╗░░░░░███╗░░░███╗███████╗██████╗░██████╗░ ██╔════╝██╔═══██╗██║░░░░░████╗░████║██╔════╝██╔══██╗██╔══██╗ ╚█████╗░██║██╗██║██║░░░░░██╔████╔██║█████╗░░██████╔╝██████╔╝ ░╚═══██╗╚██████╔╝██║░░░░░██║╚██╔╝██║██╔══╝░░██╔══██╗██╔══██╗ ██████╔╝░╚═██╔═╝░███████╗██║░╚═╝░██║███████╗██║░░██║██║░░██║ ╚═════╝░░░░╚═╝░░░╚══════╝╚═╝░░░░░╚═╝╚══════╝╚═╝░░╚═╝╚═╝░░╚═╝ """ # meta developer: @sqlmerr_m # meta icon: https://github.com/sqlmerr/hikka_mods/blob/main/assets/icons/FastChangeTgStatus.png?raw=true from hikkatl.tl.types import MessageEntityCustomEmoji import logging from .. import loader, utils logger = logging.getLogger(__name__) # сам класс модуля @loader.tds class FCTS(loader.Module): """Change your status fast. Only for premium users | Изменяйте ваш статус быстро. Только для премиум пользователей""" # нужные переменные strings = { "name": "FastChangeTgStatus", "no_args": "You didn't enter any arguments!", "status_changed": "Your status successfully changed to {}!", "status_is_none": "This status does not exist!", "list": "⭐️ List of your statuses:", "emoji_added": "Emoji added to status list successfully", "indexerror": "⚠️ You have entered too few arguments!", } strings_ru = { "no_args": "Вы не ввели аргументы!", "status_changed": "Ваш статус успешно изменен на {}!", "status_is_none": "Такого статуса не существует!", "list": "⭐️ Список ваших статусов:", "emoji_added": "Эмодзи успешно добавлен в список статусов", "indexerror": "⚠️ Вы ввели слишком мало аргументов!", } async def client_ready(self): if not self._client.hikka_me.premium: raise loader.LoadError( "This module is for Telegram Premium only!" ) # Немного взял кода из модуля TgStatus от @hikarimods self.default = { "sleep": "5875318886433295705", "game": "5877201954714684742", "heart": "5875452644599795072", "do not disturb": "5877477244938489129", "plane": "5877464772353460958", "home": "5877506824378257176", } @loader.command( ru_doc="[имя статуса] - поставить этот статус | .statuslist для просмотра ваших установленных статусов" ) async def statuschange(self, m): "[status name] - set this status | .statuslist to view your downloaded statuses" args = utils.get_args_raw(m) if not args: return await utils.answer(m, self.strings("no_args")) default = self.default s = self.get("s", default) status = s.get(args) if status is None: return await utils.answer(m, self.strings("status_is_none")) await self._client.set_status(int(status)) await utils.answer(m, self.strings("status_changed").format(args)) @loader.command(ru_doc="Посмотреть список всех статусов") async def statuslist(self, m): "See list of all your statuses" s = self.get("s", self.default) statuses = f"{self.strings('list')}\n" for j in s: emoji = f"▫️" statuses += f"• {emoji} {j}\n" await utils.answer(m, statuses) @loader.command(ru_doc="[эмодзи] [короткое имя] Добавить кастомный статус") async def statusadd(self, m): "[emoji] [short name] Add a custom status" s = self.get("s", self.default) args = utils.get_args_raw(m).split() if not args: return await utils.answer(m, self.strings("no_args")) try: # emoji = m.text.split()[1] name = args[1] except IndexError: return await utils.answer(m, self.strings("indexerror")) for emoji in m.entities: if isinstance(emoji, MessageEntityCustomEmoji): e = str(emoji.document_id) s[name] = e self.set("s", s) await utils.answer(m, self.strings("emoji_added")) @loader.command(ru_doc="Очистить все кастомные статусы") async def statusclear(self, m): "Clear all custom statuses" self.set("s", self.default) await utils.answer(m, "✔️")