Files
limoka/cryptexctl/modules-mirror/zovmodule.py
2025-08-10 01:17:09 +00:00

96 lines
4.9 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

__version__ = (2, 1, 0)
#
# 88
# ,d ,d 88
# 88 88 88
# ,adPPYba, 8b,dPPYba, 8b d8 8b,dPPYba, MM88MMM ,adPPYba, 8b, ,d8 ,adPPYba, MM88MMM 88
# a8" "" 88P' "Y8 `8b d8' 88P' "8a 88 a8P_____88 `Y8, ,8P' a8" "" 88 88
# 8b 88 `8b d8' 88 d8 88 8PP""""""" )888( 8b 88 88
# "8a, ,aa 88 `8b,d8' 88b, ,a8" 88, "8b, ,aa ,d8" "8b, "8a, ,aa 88, 88
# `"Ybbd8"' 88 Y88' 88`YbbdP"' "Y888 `"Ybbd8"' 8P' `Y8 `"Ybbd8"' "Y888 88
# d8' 88
# d8' 88
# © Copyright 2024
# https://t.me/cryptexctl
#
# 🔒 Licensed under the GNU AGPLv3
# 🌐 https://www.gnu.org/licenses/agpl-3.0.html
# leeter.py
# meta developer: @systemxplore
# scope: hikka_only
# scope: hikka_min 1.6.3
from .. import loader, utils
class LeeterMod(loader.Module):
"""Тут либо гойда либо зов\nлибо ZOVишь либо leetируешь"""
strings = {
"name": "zover",
"enabled": "✅ Leeter включен.",
"disabled": "❌ Leeter выключен.",
"mode_leet": "⚙️ Режим установлен: Leet",
"mode_replace": "⚙️ Режим установлен: ZOV"
} # Исправлено: убрана лишняя закрывающая скобка
def __init__(self):
self.config = loader.ModuleConfig(
"MODE", "leet", # Возможные значения: "leet" или "replace"
lambda: "Режим обработки сообщений: 'leet' для leet-стиля или 'replace' для zov."
)
self.active = False
async def client_ready(self, client, db):
self.client = client
@loader.command()
async def leeter(self, message):
"""Включить/выключить обработку сообщений."""
self.active = not self.active
status = self.strings["enabled"] if self.active else self.strings["disabled"]
await utils.answer(message, status)
@loader.command()
async def zovmode(self, message):
"""Переключить режим: leet или zov."""
new_mode = "leet" if self.config["MODE"] == "replace" else "replace"
self.config["MODE"] = new_mode
mode_message = self.strings["mode_leet"] if new_mode == "leet" else self.strings["mode_replace"]
await utils.answer(message, mode_message)
async def watcher(self, message):
"""Обрабатывает все ваши сообщения."""
if not self.active or not message.out:
return
text = message.raw_text
if self.config["MODE"] == "leet":
# Преобразование в leet-стиль
text = self.to_leet(text)
elif self.config["MODE"] == "replace":
# Замена z-Z, v-V, o-O
text = self.replace_chars(text)
# Редактируем сообщение с преобразованным текстом
await message.edit(text)
def to_leet(self, text):
"""Преобразует текст в leet-стиль."""
leet_map = {
'а': '4', 'б': '6', 'в': '8', 'г': 'r', 'д': 'D', 'е': '3', 'ё': 'E',
'ж': '>|<', 'з': '3', 'и': 'u', 'й': 'u`', 'к': 'K', 'л': 'JI',
'м': 'M', 'н': 'H', 'о': '0', 'п': 'n', 'р': 'P', 'с': 'C',
'т': '7', 'у': 'Y', 'ф': 'F', 'х': 'X', 'ц': 'U,', 'ч': '4',
'ш': 'W', 'щ': 'W,', 'ъ': "'", 'ы': 'bl', 'ь': "'", 'э': '3',
'ю': '10', 'я': '9',
'a': '4', 'b': '8', 'c': '<', 'd': '[)', 'e': '3', 'f': '|=',
'g': '6', 'h': '#', 'i': '1', 'j': '_|', 'k': '|<', 'l': '1',
'm': '^^', 'n': '^/', 'o': '0', 'p': '|2', 'q': 'O_', 'r': '12',
's': '5', 't': '7', 'u': '|_|', 'v': '\\/', 'w': '\\/\\/', 'x': '%',
'y': '`/', 'z': '2'
}
return ''.join(leet_map.get(char.lower(), char) for char in text)
def replace_chars(self, text):
"""Заменяет z-Z, v-V, o-O в тексте."""
replace_map = {'з': 'Z', 'З': 'Z', 'в': 'V', 'В': 'V', 'о': 'O', 'О': 'O'}
return ''.join(replace_map.get(char, char) for char in text)