# This file is part of SenkoGuardianModules # Copyright (c) 2025 Senko # This software is released under the MIT License. # https://opensource.org/licenses/MIT # meta developer: @SenkoGuardianModules from hikkatl.types import Message from .. import loader, utils import random @loader.tds class NekoEditorMod(loader.Module): """Neko-редактор сообщений | Владелецы: @SstAngelStar × @ilovesenko """ strings = { "name": "NekoEditor", } def __init__(self): self.config = loader.ModuleConfig( loader.ConfigValue( "enabled", False, "Автоматическое редактирование", validator=loader.validators.Boolean() ) ) async def nekoedcmd(self, message: Message): """Управление Neko-режимом | .nekoed [on/off]""" args = utils.get_args_raw(message) me = await message.client.get_me() is_premium = getattr(me, 'premium', False) if not args: status = "включён" if self.config["enabled"] else "выключен" return await utils.answer(message, f"🐱 NekoEditor: {status}") if args.lower() in ["on", "вкл", "1"]: self.config["enabled"] = True if is_premium: await utils.answer(message, '☺️ Режим включён! Nya~') else: await utils.answer(message, "🐾 Режим включён! Nya~") elif args.lower() in ["off", "выкл", "0"]: self.config["enabled"] = False if is_premium: await utils.answer(message, '👌 Режим выключен... >_<') else: await utils.answer(message, "🌀 Режим выключен... >_<", parse_mode=None) self.db.set("NekoEditor", "enabled", self.config["enabled"]) async def watcher(self, message: Message): if ( not self.config["enabled"] or not getattr(message, "out", False) or getattr(message, "fwd_from", None) or getattr(message, "forward", None) or not message.text or "nekoed" in message.raw_text.lower() ): return neko_words = ["Nya~", "UwU", "OwO", ">_<", "^^", "(≧▽≦)"] modified_text = message.text neko_word = random.choice(neko_words) if random.random() < 0.5: modified_text = f"{neko_word} {modified_text}" else: modified_text = f"{modified_text} {neko_word}" replacements = { "р": "w", "л": "w", "но": "ня", "на": "ня" } for old, new in replacements.items(): modified_text = modified_text.replace(old, new) try: if message.text != modified_text: await message.edit(modified_text) except Exception: pass