mirror of https://github.com/coddrago/Heroku
1.2.4
- Show current options in module config - Add new validators: `loader.validators.Union`, `loader.validators.NoneType`pull/1/head
parent
3725d6ed25
commit
ac8e7371e9
|
@ -29,7 +29,7 @@ class HikkaConfigMod(loader.Module):
|
|||
strings = {
|
||||
"name": "HikkaConfig",
|
||||
"configure": "🎚 <b>Here you can configure your modules' configs</b>",
|
||||
"configuring_mod": "🎚 <b>Choose config option for mod</b> <code>{}</code>",
|
||||
"configuring_mod": "🎚 <b>Choose config option for mod</b> <code>{}</code>\n\n<b>Current options:</b>\n\n{}",
|
||||
"configuring_option": "🎚 <b>Configuring option </b><code>{}</code><b> of mod </b><code>{}</code>\n<i>ℹ️ {}</i>\n\n<b>Default: </b><code>{}</code>\n\n<b>Current: </b><code>{}</code>\n\n{}",
|
||||
"option_saved": "🎚 <b>Option </b><code>{}</code><b> of mod </b><code>{}</code><b> saved!</b>\n<b>Current: </b><code>{}</code>",
|
||||
"option_reset": "♻️ <b>Option </b><code>{}</code><b> of mod </b><code>{}</code><b> has been reset to default</b>\n<b>Current: </b><code>{}</code>",
|
||||
|
@ -38,7 +38,7 @@ class HikkaConfigMod(loader.Module):
|
|||
"no_option": "🚫 <b>Configuration option doesn't exist</b>",
|
||||
"validation_error": "🚫 <b>You entered incorrect config value. \nError: {}</b>",
|
||||
"try_again": "🔁 Try again",
|
||||
"typehint": "🕵️ <b>Must be a {}</b>",
|
||||
"typehint": "🕵️ <b>Must be the {}</b>",
|
||||
"set": "set",
|
||||
"set_default_btn": "♻️ Reset default",
|
||||
"enter_value_btn": "✍️ Enter value",
|
||||
|
@ -53,7 +53,7 @@ class HikkaConfigMod(loader.Module):
|
|||
|
||||
strings_ru = {
|
||||
"configure": "🎚 <b>Здесь можно управлять настройками модулей</b>",
|
||||
"configuring_mod": "🎚 <b>Выбери параметр для модуля</b> <code>{}</code>",
|
||||
"configuring_mod": "🎚 <b>Выбери параметр для модуля</b> <code>{}</code>\n\n<b>Текущие настройки:</b>\n\n{}",
|
||||
"configuring_option": "🎚 <b>Управление параметром </b><code>{}</code><b> модуля </b><code>{}</code>\n<i>ℹ️ {}</i>\n\n<b>Стандартное: </b><code>{}</code>\n\n<b>Текущее: </b><code>{}</code>\n\n{}",
|
||||
"option_saved": "🎚 <b>Параметр </b><code>{}</code><b> модуля </b><code>{}</code><b> сохранен!</b>\n<b>Текущее: </b><code>{}</code>",
|
||||
"option_reset": "♻️ <b>Параметр </b><code>{}</code><b> модуля </b><code>{}</code><b> сброшен до значения по умолчанию</b>\n<b>Текущее: </b><code>{}</code>",
|
||||
|
@ -500,7 +500,15 @@ class HikkaConfigMod(loader.Module):
|
|||
]
|
||||
|
||||
await call.edit(
|
||||
self.strings("configuring_mod").format(utils.escape_html(mod)),
|
||||
self.strings("configuring_mod").format(
|
||||
utils.escape_html(mod),
|
||||
"\n".join(
|
||||
[
|
||||
f"▫️ <code>{utils.escape_html(key)}</code>: <code>{self.prep_value(value)}</code>"
|
||||
for key, value in self.lookup(mod).config.items()
|
||||
]
|
||||
),
|
||||
),
|
||||
reply_markup=list(utils.chunks(btns, 2))
|
||||
+ [
|
||||
[
|
||||
|
|
|
@ -67,7 +67,10 @@ class HikkaInfoMod(loader.Module):
|
|||
"custom_button",
|
||||
["🌘 Support chat", "https://t.me/hikka_talks"],
|
||||
lambda: self.strings("_cfg_cst_btn"),
|
||||
validator=loader.validators.Series(fixed_len=2),
|
||||
validator=loader.validators.Union(
|
||||
loader.validators.Series(fixed_len=2),
|
||||
loader.validators.NoneType(),
|
||||
),
|
||||
),
|
||||
loader.ConfigValue(
|
||||
"disable_banner",
|
||||
|
|
|
@ -451,3 +451,50 @@ def TelegramID() -> Validator:
|
|||
"Telegram ID",
|
||||
_internal_id="TelegramID",
|
||||
)
|
||||
|
||||
|
||||
def _Union(value: Any, /, *, validators: list):
|
||||
for validator in validators:
|
||||
try:
|
||||
return validator.validate(value)
|
||||
except ValidationError:
|
||||
pass
|
||||
|
||||
raise ValidationError(f"Passed value ({value}) is not valid")
|
||||
|
||||
|
||||
def Union(*validators) -> Validator:
|
||||
doc = {
|
||||
"en": "one of the following:\n",
|
||||
"ru": "одним из следующего:\n",
|
||||
}
|
||||
|
||||
case = lambda x: x[0].upper() + x[1:]
|
||||
|
||||
for validator in validators:
|
||||
doc["en"] += f"- {case(validator.doc['en'])}\n"
|
||||
doc["ru"] += f"- {case(validator.doc['ru'])}\n"
|
||||
|
||||
doc["en"] = doc["en"].strip()
|
||||
doc["ru"] = doc["ru"].strip()
|
||||
|
||||
return Validator(
|
||||
functools.partial(_Union, validators=validators),
|
||||
doc,
|
||||
_internal_id="Union",
|
||||
)
|
||||
|
||||
|
||||
def _NoneType(value: Any, /) -> None:
|
||||
if value not in {None, False, ""}:
|
||||
raise ValidationError(f"Passed value ({value}) is not None")
|
||||
|
||||
return None
|
||||
|
||||
|
||||
def NoneType() -> Validator:
|
||||
return Validator(
|
||||
_NoneType,
|
||||
"`None`",
|
||||
_internal_id="NoneType",
|
||||
)
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
"""Represents current userbot version"""
|
||||
__version__ = (1, 2, 3)
|
||||
__version__ = (1, 2, 4)
|
||||
|
|
Loading…
Reference in New Issue