# ░██████╗░██████╗░██╗░░░░░███╗░░░███╗███████╗██████╗░██████╗░
# ██╔════╝██╔═══██╗██║░░░░░████╗░████║██╔════╝██╔══██╗██╔══██╗
# ╚█████╗░██║██╗██║██║░░░░░██╔████╔██║█████╗░░██████╔╝██████╔╝
# ░╚═══██╗╚██████╔╝██║░░░░░██║╚██╔╝██║██╔══╝░░██╔══██╗██╔══██╗
# ██████╔╝░╚═██╔═╝░███████╗██║░╚═╝░██║███████╗██║░░██║██║░░██║
# ╚═════╝░░░░╚═╝░░░╚══════╝╚═╝░░░░░╚═╝╚══════╝╚═╝░░╚═╝╚═╝░░╚═╝
# ---------------------------------------------------------------------------------------------
# Name: AutoFormatter
# Description: Automatically formats the text of your messages | Автоматически форматирует текст ваших сообщений | Check The Config | Загляните в конфиг
# Author: sqlmerr
# Commands:
# .textformat
# ---------------------------------------------------------------------------------------------
# meta icon: https://github.com/sqlmerr/hikka_mods/blob/main/assets/icons/autoformatter.png?raw=true
# meta banner: https://github.com/sqlmerr/sqlmerr/blob/main/assets/hikka_mods/sqlmerrmodules_autoformatter.png?raw=true
# meta developer: @sqlmerr_m
# only hikka
from hikkatl.tl.patched import Message
import logging
from .. import loader, utils
logger = logging.getLogger(__name__)
@loader.tds
class AutoFormatter(loader.Module):
"""Automatically formats the text of your messages | Check The Config"""
strings = {
"name": "AutoFormatter",
"status": "Module enabled or disabled",
"format": "Text format. Where {} is the original message text",
"type": "Formatting Type",
"exceptions": "This is exceptions, this text is not formated",
"disabled": "Module is now disabled",
"enabled": "Module is now enabled",
}
strings_ru = {
"status": "Включен или выключен модуль",
"format": "Формат текста. Где {} это исходный текст сообщения",
"type": "Тип форматирования",
"exceptions": "Это исключения, этот текст не будет форматироваться",
"disabled": "Модуль сейчас выключен",
"enabled": "Модуль сейчас включен",
}
def __init__(self):
self.config = loader.ModuleConfig(
loader.ConfigValue(
"status",
False,
lambda: self.strings("status"),
validator=loader.validators.Boolean(),
),
loader.ConfigValue(
"format",
"{}",
lambda: self.strings("format"),
validator=loader.validators.String(),
),
loader.ConfigValue(
"exceptions",
[],
lambda: self.strings("exceptions"),
validator=loader.validators.Series(loader.validators.String()),
),
)
@loader.watcher(
only_messages=True,
no_commands=True,
no_stickers=True,
no_docs=True,
no_audios=True,
no_videos=True,
no_photos=True,
no_forwards=True,
)
async def watcher(self, message):
if not self.config["status"]:
return
exc = self.config["exceptions"]
if message.from_id == self._tg_id:
f = self.config["format"]
text = message.text
if exc != [None]:
for e in exc:
if str(e).strip() == text.strip():
return
else:
if f in text:
return
await utils.answer(message, f"{f.format(text)}")
@loader.command(ru_doc="Включить/выключить модуль")
async def textformat(self, message: Message):
"""Turn on/off The Module"""
self.config["status"] = not self.config["status"]
enable = self.strings("enabled")
disable = self.strings("disabled")
status = (
f"⚠️ {enable}"
if self.config["status"]
else f"⚠️ {disable}"
)
await utils.answer(message, "{}".format(status))