__version__ = (1, 0, 0) # █▄▀ ▄▀█ █▀▄▀█ █▀▀ █▄▀ █ █ █▀█ █▀█ # █ █ █▀█ █ ▀ █ ██▄ █ █ ▀▄▄▀ █▀▄ █▄█ ▄ # © Copyright 2025 # ✈ https://t.me/kamekuro # 🔒 Licensed under CC-BY-NC-ND 4.0 unless otherwise specified. # 🌐 https://creativecommons.org/licenses/by-nc-nd/4.0 # + attribution # + non-commercial # + no-derivatives # You CANNOT edit, distribute or redistribute this file without direct permission from the author. # meta banner: https://raw.githubusercontent.com/kamekuro/hikka-mods/main/banners/caliases.png # meta pic: https://raw.githubusercontent.com/kamekuro/hikka-mods/main/icons/caliases.png # meta developer: @kamekuro_hmods # scope: hikka_only # scope: hikka_min 1.6.3 import logging from telethon import types from .. import loader, utils logger = logging.getLogger(__name__) @loader.tds class CustomAliasesMod(loader.Module): """Module for custom aliases""" strings = { "name": "CAliases", "c404": " Command {} not found!", "a404": " Custom alias {} not found!", "no_args": " You must specify two args: alias name and command", "added": ( " Custom alias {alias} for command " "{prefix}{cmd} successfully added!\nUse it like: {prefix}{alias}{args}" ), "argsopt": " [args (optional)]", "deleted": " Custom alias {} successfully deleted", "list": "🔗 Custom aliases ({len}):\n", "no_aliases": " You have no custom aliases!" } strings_ru = { "c404": " Команда {} не найдена!", "a404": " Кастомный алиас {} не найден!", "no_args": " Вы должны указать как минимум два аргумента: имя алиаса и команду", "added": ( " Успешно добавил алиас с названием {alias} " "для команды {prefix}{cmd}\nИспользуй его так: {prefix}{alias}{args}" ), "argsopt": " [аргументы (необязательно)]", "deleted": " Кастомный алиас {} успешно удалён", "list": "🔗 Кастомные алиасы (всего {len}):\n", "no_aliases": " У вас нет кастомных алиасов!" } @loader.command( ru_doc="👉 Получить список всех алиасов", alias="calist" ) async def caliasescmd(self, message: types.Message): """👉 Get all aliases""" aliases = self.get("aliases", {}) if not aliases: return await utils.answer(message, self.strings['no_aliases']) out = self.strings['list'].format(len=len(aliases.keys())) for alias in aliases.keys(): cmd = aliases[alias]['command'] if aliases[alias]['args']: cmd += f" {aliases[alias]['args']}" out += f" ▪️ {alias} " \ f"👈 {cmd}\n" await utils.answer(message, out) @loader.command( ru_doc="<имя> 👉 Удалить алиас" ) async def rmcaliascmd(self, message: types.Message): """ 👉 Remove alias""" args = utils.get_args(message) aliases = self.get("aliases", {}) if args[0] not in aliases: return await utils.answer(message, self.strings['a404']) del aliases[args[0]] self.set("aliases", aliases) await utils.answer(message, self.strings['deleted'].format(args[0])) @loader.command( ru_doc="<имя> <команда> [аргументы] 👉 Добавить новый алиас (может содержать ключевое слово {args})" ) async def caliascmd(self, message: types.Message): """ [args] 👉 Add new alias (may contain {args} keyword)""" rargs = " ".join(utils.get_args_raw(message).split(' ')[2:]) args = utils.get_args(message) if len(args) < 2: return await utils.answer(message, self.strings['no_args']) name = args[0] cmd = args[1] cmdargs = rargs if cmd not in self.allmodules.commands.keys(): return await utils.answer(message, self.strings['c404'].format(cmd)) aliases = self.get("aliases", {}) aliases[str(args[0])] = {"command": cmd, "args": cmdargs} self.set("aliases", aliases) await utils.answer(message, self.strings['added'].format( alias=name, prefix=self.get_prefix(), cmd=cmd+' '+cmdargs if cmdargs else cmd, args=self.strings["argsopt"] if "{args}" in cmdargs else "" )) @loader.tag( only_messages=True, no_media=True, no_inline=True, out=True ) async def watcher(self, message): aliases = self.get("aliases", {}) command = message.raw_text.lower().split()[0] if (command[0] == self.get_prefix()) and (command[1:] in aliases.keys()): text = message.raw_text.lower() args = utils.get_args_raw(message) ass = aliases[command[1:]] await self.allmodules.commands[ass['command']]( await utils.answer( message, (self.get_prefix() + ass['command'] + '@me ' + ass['args']).format(args=args) ) )