mirror of https://github.com/coddrago/Heroku
Return best match if no full-match occurred in `.help`
parent
d74aaa99fd
commit
1b846a6e1b
|
@ -284,14 +284,10 @@
|
||||||
"hikka.modules.web2file.fetch_error": "🦊 <b>Ошибка загрузки</b>",
|
"hikka.modules.web2file.fetch_error": "🦊 <b>Ошибка загрузки</b>",
|
||||||
"hikka.modules.web2file.loading": "🦊 <b>Загрузка...</b>",
|
"hikka.modules.web2file.loading": "🦊 <b>Загрузка...</b>",
|
||||||
"hikka.modules.web2file._cls_doc": "Скачивает содержимое ссылки и отправляет в виде файла",
|
"hikka.modules.web2file._cls_doc": "Скачивает содержимое ссылки и отправляет в виде файла",
|
||||||
"hikka.modules.cloud.no_file": "<b>А что отправлять то?... 🗿</b>",
|
"hikka.modules.cloud.cannot_check_file": "🚫 <b>Не могу прочитать файл...</b>",
|
||||||
"hikka.modules.cloud.cannot_check_file": "<b>Не могу прочитать файл...</b>",
|
"hikka.modules.cloud.cannot_join": "🚫 <b>Может я забанен в чате Хикари?</b>",
|
||||||
"hikka.modules.cloud.cannot_join": "<b>Может я забанен в чате Хикари?</b>",
|
"hikka.modules.cloud.args": "🚫 <b>Нет аргументов</b>",
|
||||||
"hikka.modules.cloud.sent": "<b>Модуль отправлен для проверки</b>",
|
"hikka.modules.cloud.mod404": "🚫 <b>Модуль {} не найден</b>",
|
||||||
"hikka.modules.cloud.tag": "<b>🦊 Запрос на добавление в базу данных</b>",
|
|
||||||
"hikka.modules.cloud.upload_error": "🦊 <b>Ошибка загрузки</b>",
|
|
||||||
"hikka.modules.cloud.args": "🦊 <b>Нет аргументов</b>",
|
|
||||||
"hikka.modules.cloud.mod404": "🦊 <b>Модуль {} не найден</b>",
|
|
||||||
"hikka.modules.cloud.hikka_only": "\n🌘 <b>Эсклюзивно для <u>Hikka</u></b>\n",
|
"hikka.modules.cloud.hikka_only": "\n🌘 <b>Эсклюзивно для <u>Hikka</u></b>\n",
|
||||||
"hikka.modules.cloud._cmd_doc_addmod": "<файл> - Отправить модуль в @hikka_talks для добавления в базу",
|
"hikka.modules.cloud._cmd_doc_addmod": "<файл> - Отправить модуль в @hikka_talks для добавления в базу",
|
||||||
"hikka.modules.cloud._cmd_doc_cloud": "<command \\ mod_name> - Поиск модуля в @hikarimods_database",
|
"hikka.modules.cloud._cmd_doc_cloud": "<command \\ mod_name> - Поиск модуля в @hikarimods_database",
|
||||||
|
|
|
@ -12,6 +12,7 @@ import inspect
|
||||||
from .. import loader, utils, main, security
|
from .. import loader, utils, main, security
|
||||||
from telethon.tl.functions.channels import JoinChannelRequest
|
from telethon.tl.functions.channels import JoinChannelRequest
|
||||||
import logging
|
import logging
|
||||||
|
import difflib
|
||||||
|
|
||||||
from telethon.tl.types import Message
|
from telethon.tl.types import Message
|
||||||
|
|
||||||
|
@ -50,7 +51,7 @@ class HelpMod(loader.Module):
|
||||||
lambda: "Hikka-only module bullet",
|
lambda: "Hikka-only module bullet",
|
||||||
"plain_emoji",
|
"plain_emoji",
|
||||||
"▫️",
|
"▫️",
|
||||||
lambda: "Plain module bullet"
|
lambda: "Plain module bullet",
|
||||||
)
|
)
|
||||||
|
|
||||||
async def helphidecmd(self, message: Message):
|
async def helphidecmd(self, message: Message):
|
||||||
|
@ -109,21 +110,43 @@ class HelpMod(loader.Module):
|
||||||
if mod.strings("name", message).lower() == args.lower():
|
if mod.strings("name", message).lower() == args.lower():
|
||||||
module = mod
|
module = mod
|
||||||
|
|
||||||
if module is None:
|
if not module:
|
||||||
args = args.lower()
|
args = args.lower()
|
||||||
args = args[1:] if args.startswith(prefix) else args
|
args = args[1:] if args.startswith(prefix) else args
|
||||||
if args in self.allmodules.commands:
|
if args in self.allmodules.commands:
|
||||||
module = self.allmodules.commands[args].__self__
|
module = self.allmodules.commands[args].__self__
|
||||||
else:
|
|
||||||
await utils.answer(message, self.strings("bad_module", message).format(args))
|
if not module:
|
||||||
return
|
module_name = next(
|
||||||
|
reversed(
|
||||||
|
sorted(
|
||||||
|
[
|
||||||
|
module.strings["name"]
|
||||||
|
for module in self.allmodules.modules
|
||||||
|
],
|
||||||
|
key=lambda x: difflib.SequenceMatcher(
|
||||||
|
None,
|
||||||
|
args.lower(),
|
||||||
|
x,
|
||||||
|
).ratio(),
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
module = next(
|
||||||
|
module
|
||||||
|
for module in self.allmodules.modules
|
||||||
|
if module.strings["name"] == module_name
|
||||||
|
)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
name = module.strings("name")
|
name = module.strings("name")
|
||||||
except KeyError:
|
except KeyError:
|
||||||
name = getattr(module, "name", "ERROR")
|
name = getattr(module, "name", "ERROR")
|
||||||
|
|
||||||
reply = self.strings("single_mod_header", message).format(utils.escape_html(name))
|
reply = self.strings("single_mod_header", message).format(
|
||||||
|
utils.escape_html(name)
|
||||||
|
)
|
||||||
if module.__doc__:
|
if module.__doc__:
|
||||||
reply += (
|
reply += (
|
||||||
"<i>\nℹ️ " + utils.escape_html(inspect.getdoc(module)) + "\n</i>"
|
"<i>\nℹ️ " + utils.escape_html(inspect.getdoc(module)) + "\n</i>"
|
||||||
|
@ -181,7 +204,9 @@ class HelpMod(loader.Module):
|
||||||
hidden = list(filter(lambda module: module in mods, self.get("hide", [])))
|
hidden = list(filter(lambda module: module in mods, self.get("hide", [])))
|
||||||
self.set("hide", hidden)
|
self.set("hide", hidden)
|
||||||
|
|
||||||
reply = self.strings("all_header", message).format(count, len(hidden) if not force else 0)
|
reply = self.strings("all_header", message).format(
|
||||||
|
count, len(hidden) if not force else 0
|
||||||
|
)
|
||||||
shown_warn = False
|
shown_warn = False
|
||||||
|
|
||||||
plain_ = []
|
plain_ = []
|
||||||
|
@ -219,11 +244,11 @@ class HelpMod(loader.Module):
|
||||||
core = mod.__origin__ == "<core>"
|
core = mod.__origin__ == "<core>"
|
||||||
|
|
||||||
if core:
|
if core:
|
||||||
emoji = self.config['core_emoji']
|
emoji = self.config["core_emoji"]
|
||||||
elif inline:
|
elif inline:
|
||||||
emoji = self.config['hikka_emoji']
|
emoji = self.config["hikka_emoji"]
|
||||||
else:
|
else:
|
||||||
emoji = self.config['plain_emoji']
|
emoji = self.config["plain_emoji"]
|
||||||
|
|
||||||
tmp += self.strings("mod_tmpl", message).format(emoji, name)
|
tmp += self.strings("mod_tmpl", message).format(emoji, name)
|
||||||
|
|
||||||
|
@ -245,7 +270,10 @@ class HelpMod(loader.Module):
|
||||||
icommands = [
|
icommands = [
|
||||||
name
|
name
|
||||||
for name, func in mod.inline_handlers.items()
|
for name, func in mod.inline_handlers.items()
|
||||||
if await self.inline.check_inline_security(func=func, user=message.sender_id) or force
|
if await self.inline.check_inline_security(
|
||||||
|
func=func, user=message.sender_id
|
||||||
|
)
|
||||||
|
or force
|
||||||
]
|
]
|
||||||
|
|
||||||
for cmd in icommands:
|
for cmd in icommands:
|
||||||
|
@ -271,7 +299,10 @@ class HelpMod(loader.Module):
|
||||||
core_.sort(key=lambda x: x.split()[1])
|
core_.sort(key=lambda x: x.split()[1])
|
||||||
inline_.sort(key=lambda x: x.split()[1])
|
inline_.sort(key=lambda x: x.split()[1])
|
||||||
|
|
||||||
await utils.answer(message, f"{reply}\n{''.join(core_)}{''.join(plain_)}{''.join(inline_)}")
|
await utils.answer(
|
||||||
|
message,
|
||||||
|
f"{reply}\n{''.join(core_)}{''.join(plain_)}{''.join(inline_)}",
|
||||||
|
)
|
||||||
|
|
||||||
async def supportcmd(self, message):
|
async def supportcmd(self, message):
|
||||||
"""Joins the support Hikka chat"""
|
"""Joins the support Hikka chat"""
|
||||||
|
|
Loading…
Reference in New Issue