"""
░██████╗░██████╗░██╗░░░░░███╗░░░███╗███████╗██████╗░██████╗░
██╔════╝██╔═══██╗██║░░░░░████╗░████║██╔════╝██╔══██╗██╔══██╗
╚█████╗░██║██╗██║██║░░░░░██╔████╔██║█████╗░░██████╔╝██████╔╝
░╚═══██╗╚██████╔╝██║░░░░░██║╚██╔╝██║██╔══╝░░██╔══██╗██╔══██╗
██████╔╝░╚═██╔═╝░███████╗██║░╚═╝░██║███████╗██║░░██║██║░░██║
╚═════╝░░░░╚═╝░░░╚══════╝╚═╝░░░░░╚═╝╚══════╝╚═╝░░╚═╝╚═╝░░╚═╝
"""
# 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, "✔️")