From 8e6c775f739aceefa285eda082d35bda15868258 Mon Sep 17 00:00:00 2001 From: homayk228 <43516026+SouceCalve@users.noreply.github.com> Date: Wed, 5 Mar 2025 15:19:20 +0700 Subject: [PATCH] [NEW] nekospeak v0.1 alpha MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit nekospeak - модуль для преобразования вашей речи в речь неко. --- nekospeak.py | 91 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 nekospeak.py diff --git a/nekospeak.py b/nekospeak.py new file mode 100644 index 0000000..8d3e20d --- /dev/null +++ b/nekospeak.py @@ -0,0 +1,91 @@ +from hikkatl.types import Message +from .. import loader, utils +import random + +@loader.tds +class NekoSpeakModule(loader.Module): + """Модуль для стилизации речи под неко""" + strings = {"name": "NekoSpeak", "converted": "{text}"} + strings_ru = {"converted": "{text}"} + + def __init__(self): + self.active = False + self.pm_enabled = False + self.public_enabled = True + + def neko_speak(self, text): + # Замена "н" на "ня" в некоторых словах + words = text.split() + new_words = [] + for word in words: + if word.lower().startswith("н") and len(word) > 1: + word = "ня" + word[1:] + new_words.append(word) + text = " ".join(new_words) + + # Замена стандартных фраз + replacements = { + "нет": "нят", + "ничего": "нячего", + "но": "ня", + "что": "ня?", + "ура": "ня!", + "о нет": "о-ня!" + } + for key, value in replacements.items(): + text = text.replace(key, value) + + # Добавление "мяу" и концовок + if random.random() < 0.3: # 30% шанс добавить "мяу" + text += " мяу~" + elif random.random() < 0.2: # 20% шанс добавить "-ня" + text += "-ня" + + return text + + @loader.command(ru_doc="Стилизовать текст под неко") + async def neko(self, message: Message): + """Стилизовать текст под неко""" + text = utils.get_args_raw(message) + if not text: + return await utils.answer(message, "Ня? Введи текст!") + + converted_text = self.neko_speak(text) + await utils.answer(message, self.strings("converted").format(text=converted_text)) + + @loader.command(ru_doc="Включить автоматическое преобразование речи в неко-стиль") + async def nekospeak(self, message: Message): + """Включить автоматическое преобразование речи в неко-стиль""" + self.active = True + await utils.answer(message, "Ня~ Теперь все твои сообщения будут преобразовываться!") + + @loader.command(ru_doc="Отключить автоматическое преобразование речи в неко-стиль") + async def nekospeakstop(self, message: Message): + """Отключить автоматическое преобразование речи в неко-стиль""" + self.active = False + await utils.answer(message, "Ня... Теперь сообщения не будут изменяться.") + + @loader.command(ru_doc="Переключить преобразование сообщений в ЛС") + async def nekospeakpm(self, message: Message): + """Переключить преобразование сообщений в ЛС""" + self.pm_enabled = not self.pm_enabled + status = "включено" if self.pm_enabled else "выключено" + await utils.answer(message, f"Ня! Преобразование в ЛС теперь {status}.") + + @loader.command(ru_doc="Переключить преобразование сообщений в публичных чатах") + async def nekospeakpublic(self, message: Message): + """Переключить преобразование сообщений в публичных чатах""" + self.public_enabled = not self.public_enabled + status = "включено" if self.public_enabled else "выключено" + await utils.answer(message, f"Ня! Преобразование в публичных чатах теперь {status}.") + + async def watcher(self, message: Message): + if not self.active: + return + if message.out: + if message.is_private and not self.pm_enabled: + return + if not message.is_private and not self.public_enabled: + return + new_text = self.neko_speak(message.text) + await message.edit(new_text)