mirror of https://github.com/coddrago/Heroku
Merge branch 'coddrago:master' into master
commit
0eb90d2fa3
|
@ -259,7 +259,7 @@ I also recommend resetting all built-in module configurations to their default v
|
||||||
alias_removed: "<emoji document_id=5197474765387864959>👍</emoji> <b>Alias</b> <code>{}</code> <b>removed</b>."
|
alias_removed: "<emoji document_id=5197474765387864959>👍</emoji> <b>Alias</b> <code>{}</code> <b>removed</b>."
|
||||||
no_alias: "<emoji document_id=5210952531676504517>🚫</emoji> <b>Alias</b> <code>{}</code> <b>does not exist</b>"
|
no_alias: "<emoji document_id=5210952531676504517>🚫</emoji> <b>Alias</b> <code>{}</code> <b>does not exist</b>"
|
||||||
db_cleared: "<emoji document_id=5197474765387864959>👍</emoji> <b>Database cleared</b>"
|
db_cleared: "<emoji document_id=5197474765387864959>👍</emoji> <b>Database cleared</b>"
|
||||||
hikka: "{} <b>{}.{}.{}</b> <i>{}</i>\n\n<b><emoji document_id=5377437404078546699>💜</emoji> <b>Hikka-TL:</b> <i>{}</i>\n\n<emoji document_id=5454182070156794055>⌨️</emoji> <b>Developer: t.me/hikariatama</b>\n<emoji document_id=5454145670308974586>🔥</emoji> <b>Forked By t.me/codrago</b>"
|
hikka: "{} <b>{}.{}.{}</b> <i>{}</i>\n\n<b><emoji document_id=5377437404078546699>💜</emoji> <b>Telethon:</b> <i>1.37.0</i>\n\n<emoji document_id=5454182070156794055>⌨️</emoji> <b>Developer: t.me/hikariatama</b>\n<emoji document_id=5454145670308974586>🔥</emoji> <b>Forked By t.me/codrago</b>"
|
||||||
confirm_cleardb: "⚠️ <b>Are you sure, that you want to clear database?</b>"
|
confirm_cleardb: "⚠️ <b>Are you sure, that you want to clear database?</b>"
|
||||||
cleardb_confirm: "🗑 Clear database"
|
cleardb_confirm: "🗑 Clear database"
|
||||||
cancel: "🚫 Cancel"
|
cancel: "🚫 Cancel"
|
||||||
|
@ -321,7 +321,7 @@ inline_stuff:
|
||||||
bot_username_invalid: "<emoji document_id=5210952531676504517>🚫</emoji> <b>Specified bot username is invalid. It must end with</b> <code>bot</code> <b>and contain at least 4 symbols</b>"
|
bot_username_invalid: "<emoji document_id=5210952531676504517>🚫</emoji> <b>Specified bot username is invalid. It must end with</b> <code>bot</code> <b>and contain at least 4 symbols</b>"
|
||||||
bot_username_occupied: "<emoji document_id=5210952531676504517>🚫</emoji> <b>This username is already occupied</b>"
|
bot_username_occupied: "<emoji document_id=5210952531676504517>🚫</emoji> <b>This username is already occupied</b>"
|
||||||
bot_updated: "<emoji document_id=6318792204118656433>🎉</emoji> <b>Config successfully saved. Restart userbot to apply changes</b>"
|
bot_updated: "<emoji document_id=6318792204118656433>🎉</emoji> <b>Config successfully saved. Restart userbot to apply changes</b>"
|
||||||
this_is_hikka: "🌘 <b>Hi! This is Hikka — powerful modular Telegram userbot. You can install it to your account!</b>\n\n<b>🌍 <a href=\"https://github.com/coddrago/Hikka\">GitHub</a></b>\n<b>👥 <a href=\"https://t.me/whoblogs_chat\">Support chat</a></b>"
|
this_is_hikka: "🌘 <b>Hi! This is Hikka — powerful modular Telegram userbot. You can install it to your account!</b>\n\n<b>🌍 <a href=\"https://github.com/coddrago/Hikka\">GitHub</a></b>\n<b>👥 <a href=\"https://t.me/heroku_talks\">Support chat</a></b>"
|
||||||
_cmd_doc_ch_hikka_bot: "<username> - Change your Hikka inline bot username"
|
_cmd_doc_ch_hikka_bot: "<username> - Change your Hikka inline bot username"
|
||||||
_cls_doc: "Provides support for inline stuff"
|
_cls_doc: "Provides support for inline stuff"
|
||||||
|
|
||||||
|
@ -653,3 +653,4 @@ $inline:
|
||||||
command: "🌘 Command «{}»"
|
command: "🌘 Command «{}»"
|
||||||
button403: "You are not allowed to press this button!"
|
button403: "You are not allowed to press this button!"
|
||||||
keep_id: "⚠️ Do not remove ID! {}"
|
keep_id: "⚠️ Do not remove ID! {}"
|
||||||
|
|
||||||
|
|
|
@ -247,7 +247,7 @@ settings:
|
||||||
alias_removed: "<emoji document_id=5197474765387864959>👍</emoji> <b>Алиас</b> <code>{}</code> <b>удален</b>."
|
alias_removed: "<emoji document_id=5197474765387864959>👍</emoji> <b>Алиас</b> <code>{}</code> <b>удален</b>."
|
||||||
no_alias: "<emoji document_id=5210952531676504517>🚫</emoji> <b>Алиас</b> <code>{}</code> <b>не существует</b>"
|
no_alias: "<emoji document_id=5210952531676504517>🚫</emoji> <b>Алиас</b> <code>{}</code> <b>не существует</b>"
|
||||||
db_cleared: "<emoji document_id=5197474765387864959>👍</emoji> <b>База очищена</b>"
|
db_cleared: "<emoji document_id=5197474765387864959>👍</emoji> <b>База очищена</b>"
|
||||||
hikka: "{} <b>{}.{}.{}</b> <i>{}</i>\n\n<b><emoji document_id=5377437404078546699>💜</emoji> <b>Hikka-TL:</b> <i>{}</i>\n\n<emoji document_id=5454182070156794055>⌨️</emoji> <b>Developer: t.me/hikariatama</b>\n<emoji document_id=5454145670308974586>🔥</emoji>
|
hikka: "{} <b>{}.{}.{}</b> <i>{}</i>\n\n<b><emoji document_id=5377437404078546699>💜</emoji> <b>Telethon:</b> <i>1.37.0</i>\n\n<emoji document_id=5454182070156794055>⌨️</emoji> <b>Developer: t.me/hikariatama</b>\n<emoji document_id=5454145670308974586>🔥</emoji>
|
||||||
Forked by <b>t.me/codrago</b>"
|
Forked by <b>t.me/codrago</b>"
|
||||||
_cls_doc: "Управление базовыми настройками юзербота"
|
_cls_doc: "Управление базовыми настройками юзербота"
|
||||||
confirm_cleardb: "⚠️ <b>Вы уверены, что хотите сбросить базу данных?</b>"
|
confirm_cleardb: "⚠️ <b>Вы уверены, что хотите сбросить базу данных?</b>"
|
||||||
|
@ -307,7 +307,7 @@ inline_stuff:
|
||||||
bot_username_invalid: "<emoji document_id=5210952531676504517>🚫</emoji> <b>Неправильный ник бота. Он должен заканчиваться на</b> <code>bot</code> <b>и быть не короче чем 5 символов</b>"
|
bot_username_invalid: "<emoji document_id=5210952531676504517>🚫</emoji> <b>Неправильный ник бота. Он должен заканчиваться на</b> <code>bot</code> <b>и быть не короче чем 5 символов</b>"
|
||||||
bot_username_occupied: "<emoji document_id=5210952531676504517>🚫</emoji> <b>Такой ник бота уже занят</b>"
|
bot_username_occupied: "<emoji document_id=5210952531676504517>🚫</emoji> <b>Такой ник бота уже занят</b>"
|
||||||
bot_updated: "<emoji document_id=6318792204118656433>🎉</emoji> <b>Настройки сохранены. Для их применения нужно перезагрузить юзербот</b>"
|
bot_updated: "<emoji document_id=6318792204118656433>🎉</emoji> <b>Настройки сохранены. Для их применения нужно перезагрузить юзербот</b>"
|
||||||
this_is_hikka: "🌘 <b>Привет! Это Hikka — мощный модульный Telegram юзербот. Вы можете установить его на свой аккаунт!</b>\n\n<b>🌍 <a href=\"https://github.com/coddrago/Hikka\">GitHub</a></b>\n<b>👥 <a href=\"https://t.me/whoblogs_chat\">Чат поддержки</a></b>"
|
this_is_hikka: "🌘 <b>Привет! Это Hikka — мощный модульный Telegram юзербот. Вы можете установить его на свой аккаунт!</b>\n\n<b>🌍 <a href=\"https://github.com/coddrago/Hikka\">GitHub</a></b>\n<b>👥 <a href=\"https://t.me/heroku_talks\">Чат поддержки</a></b>"
|
||||||
_cmd_doc_ch_hikka_bot: "<юзернейм> - Изменить юзернейм инлайн бота"
|
_cmd_doc_ch_hikka_bot: "<юзернейм> - Изменить юзернейм инлайн бота"
|
||||||
|
|
||||||
test:
|
test:
|
||||||
|
|
|
@ -247,7 +247,7 @@ settings:
|
||||||
alias_removed: "<emoji document_id=5197474765387864959>👍</emoji> <b>Аліас</b> <code>{}</code> <b>видалено</b>."
|
alias_removed: "<emoji document_id=5197474765387864959>👍</emoji> <b>Аліас</b> <code>{}</code> <b>видалено</b>."
|
||||||
no_alias: "<emoji document_id=5210952531676504517>🚫</emoji> <b>Аліаса</b> <code>{}</code> <b>не існує</b>"
|
no_alias: "<emoji document_id=5210952531676504517>🚫</emoji> <b>Аліаса</b> <code>{}</code> <b>не існує</b>"
|
||||||
db_cleared: "<emoji document_id=5197474765387864959>👍</emoji> <b>Базу очищена</b>"
|
db_cleared: "<emoji document_id=5197474765387864959>👍</emoji> <b>Базу очищена</b>"
|
||||||
hikka: "{} <b>{}.{}.{}</b> <i>{}</i>\n\n<b><emoji document_id=5377437404078546699>💜</emoji> <b>Hikka-TL:</b> <i>{}</i>\n\n<emoji document_id=5454182070156794055>⌨️</emoji> <b>Developer: t.me/hikariatama</b>\n<emoji document_id=5454145670308974586>🔥</emoji>
|
hikka: "{} <b>{}.{}.{}</b> <i>{}</i>\n\n<b><emoji document_id=5377437404078546699>💜</emoji> <b>Telethon:</b> <i>1.37.0</i>\n\n<emoji document_id=5454182070156794055>⌨️</emoji> <b>Developer: t.me/hikariatama</b>\n<emoji document_id=5454145670308974586>🔥</emoji>
|
||||||
Forked by <b>t.me/codrago</b>"
|
Forked by <b>t.me/codrago</b>"
|
||||||
_cls_doc: "Керування базовими налаштуваннями юзербота"
|
_cls_doc: "Керування базовими налаштуваннями юзербота"
|
||||||
confirm_cleardb: "⚠️ <b>Ви впевнені, що хочете зкинути базу даних?</b>"
|
confirm_cleardb: "⚠️ <b>Ви впевнені, що хочете зкинути базу даних?</b>"
|
||||||
|
@ -307,7 +307,7 @@ inline_stuff:
|
||||||
bot_username_invalid: "<emoji document_id=5210952531676504517>🚫</emoji> <b>Неправильний нік бота. Він має закінчитися на</b> <code>bot</code> <b>і бути не коротше ніж 5 символів</b>"
|
bot_username_invalid: "<emoji document_id=5210952531676504517>🚫</emoji> <b>Неправильний нік бота. Він має закінчитися на</b> <code>bot</code> <b>і бути не коротше ніж 5 символів</b>"
|
||||||
bot_username_occupied: "<emoji document_id=5210952531676504517>🚫</emoji> <b>Такий нік бота вже зайнятий</b>"
|
bot_username_occupied: "<emoji document_id=5210952531676504517>🚫</emoji> <b>Такий нік бота вже зайнятий</b>"
|
||||||
bot_updated: "<emoji document_id=6318792204118656433>🎉</emoji> <b>Налаштування збережені. Для їх застосування треба перезавантажити юзербота</b>"
|
bot_updated: "<emoji document_id=6318792204118656433>🎉</emoji> <b>Налаштування збережені. Для їх застосування треба перезавантажити юзербота</b>"
|
||||||
this_is_hikka: "🌘 <b>Привіт! Це Hikka — потужний модульний Telegram юзербот. Ви можете встановити його на свій акаунт!</b>\n\n<b>🌍 <a href=\"https://github.com/coddrago/Hikka\">GitHub</a></b>\n<b>👥 <a href=\"https://t.me/whoblogs_chat\">Чат підтримки</a></b>"
|
this_is_hikka: "🌘 <b>Привіт! Це Hikka — потужний модульний Telegram юзербот. Ви можете встановити його на свій акаунт!</b>\n\n<b>🌍 <a href=\"https://github.com/coddrago/Hikka\">GitHub</a></b>\n<b>👥 <a href=\"https://t.me/heroku_talks\">Чат підтримки</a></b>"
|
||||||
_cmd_doc_ch_hikka_bot: "<юзернейм> - Змінити юзернейм інлайн бота"
|
_cmd_doc_ch_hikka_bot: "<юзернейм> - Змінити юзернейм інлайн бота"
|
||||||
|
|
||||||
test:
|
test:
|
||||||
|
@ -623,4 +623,4 @@ $inline:
|
||||||
command_msg: "<b>🌘 Команда «{}»</b>\n\n<i>{}</i>"
|
command_msg: "<b>🌘 Команда «{}»</b>\n\n<i>{}</i>"
|
||||||
command: "🌘 Команда «{}»"
|
command: "🌘 Команда «{}»"
|
||||||
button403: "Ви не можете натиснути на цю кнопку!"
|
button403: "Ви не можете натиснути на цю кнопку!"
|
||||||
keep_id: "⚠️ Не видаляйте ID! {}"
|
keep_id: "⚠️ Не видаляйте ID! {}"
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
__version__ = (3, 3, 4)
|
__version__ = (3, 3, 5)
|
||||||
# meta developer: @Foxy437
|
# meta developer: @Foxy437
|
||||||
# change-log: 🎉🎉🎉🎉🎉🎉🎉🎉 ADDED INLINE!!!
|
# change-log: 🎉🎉🎉🎉🎉🎉🎉🎉 ADDED INLINE!!! ADDED UKRAINIAN!!!
|
||||||
# ©️ Fixyres, 2024
|
# ©️ Fixyres, 2024
|
||||||
# 🌐 https://github.com/Fixyres/FHeta
|
# 🌐 https://github.com/Fixyres/FHeta
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
@ -18,6 +18,7 @@ import inspect
|
||||||
from hikkatl.types import Message
|
from hikkatl.types import Message
|
||||||
import random
|
import random
|
||||||
from ..types import InlineQuery
|
from ..types import InlineQuery
|
||||||
|
import difflib
|
||||||
|
|
||||||
@loader.tds
|
@loader.tds
|
||||||
class FHeta(loader.Module):
|
class FHeta(loader.Module):
|
||||||
|
@ -31,8 +32,8 @@ class FHeta(loader.Module):
|
||||||
"commands": "\n<emoji document_id=5190498849440931467>👨💻</emoji> <b>Commands:</b>\n{commands_list}",
|
"commands": "\n<emoji document_id=5190498849440931467>👨💻</emoji> <b>Commands:</b>\n{commands_list}",
|
||||||
"description": "\n<emoji document_id=5433653135799228968>📁</emoji> <b>Description:</b> {description}",
|
"description": "\n<emoji document_id=5433653135799228968>📁</emoji> <b>Description:</b> {description}",
|
||||||
"result": "<emoji document_id=5188311512791393083>🔎</emoji> <b>Result {index} by query:</b> <code>{query}</code>\n<code>{module_name}</code> by {author}\n<emoji document_id=4985961065012527769>🖥</emoji> <b>Repository:</b> {repo_url}\n<emoji document_id=5307585292926984338>💾</emoji> <b>Command for installation:</b> <code>{install_command}</code>{description}{commands}\n\n\n",
|
"result": "<emoji document_id=5188311512791393083>🔎</emoji> <b>Result {index} by query:</b> <code>{query}</code>\n<code>{module_name}</code> by {author}\n<emoji document_id=4985961065012527769>🖥</emoji> <b>Repository:</b> {repo_url}\n<emoji document_id=5307585292926984338>💾</emoji> <b>Command for installation:</b> <code>{install_command}</code>{description}{commands}\n\n\n",
|
||||||
"fetch_failed": "<emoji document_id=5348277823133999513>❌</emoji> <b>Failed to fetch the FHeta.</b>",
|
"fetch_failed": "<emoji document_id=5348277823133999513>❌</emoji> <b>Error.</b>",
|
||||||
"closest_match": "<emoji document_id=5188311512791393083>🔎</emoji> <b>Result by query </b><code>{query}</code><b>:</b>\n<code>{module_name}</code> by {author}\n<emoji document_id=4985961065012527769>🖥</emoji> <b>Repository:</b> {repo_url}\n<emoji document_id=5307585292926984338>💾</emoji> <b>Command for installation:</b> <code>{install_command}</code>{description}{commands}\n\n",
|
"closest_match": "<emoji document_id=5188311512791393083>🔎</emoji> <b>Result by query:</b> <code>{query}</code>\n<code>{module_name}</code> by {author}\n<emoji document_id=4985961065012527769>🖥</emoji> <b>Repository:</b> {repo_url}\n<emoji document_id=5307585292926984338>💾</emoji> <b>Command for installation:</b> <code>{install_command}</code>{description}{commands}\n\n\n",
|
||||||
"inline_no_query": "Enter a query to search.",
|
"inline_no_query": "Enter a query to search.",
|
||||||
"inline_no_modules_found": "No modules found.",
|
"inline_no_modules_found": "No modules found.",
|
||||||
"inline_commands": "\n👨💻 <b>Commands:</b>\n{commands_list}",
|
"inline_commands": "\n👨💻 <b>Commands:</b>\n{commands_list}",
|
||||||
|
@ -51,8 +52,8 @@ class FHeta(loader.Module):
|
||||||
"commands": "\n<emoji document_id=5190498849440931467>👨💻</emoji> <b>Команды:</b>\n{commands_list}",
|
"commands": "\n<emoji document_id=5190498849440931467>👨💻</emoji> <b>Команды:</b>\n{commands_list}",
|
||||||
"description": "\n<emoji document_id=5433653135799228968>📁</emoji> <b>Описание:</b> {description}",
|
"description": "\n<emoji document_id=5433653135799228968>📁</emoji> <b>Описание:</b> {description}",
|
||||||
"result": "<emoji document_id=5188311512791393083>🔎</emoji> <b>Результат {index} по запросу:</b> <code>{query}</code>\n<code>{module_name}</code> от {author}\n<emoji document_id=4985961065012527769>🖥</emoji> <b>Репозиторий:</b> {repo_url}\n<emoji document_id=5307585292926984338>💾</emoji> <b>Команда для установки:</b> <code>{install_command}</code>{description}{commands}\n\n\n",
|
"result": "<emoji document_id=5188311512791393083>🔎</emoji> <b>Результат {index} по запросу:</b> <code>{query}</code>\n<code>{module_name}</code> от {author}\n<emoji document_id=4985961065012527769>🖥</emoji> <b>Репозиторий:</b> {repo_url}\n<emoji document_id=5307585292926984338>💾</emoji> <b>Команда для установки:</b> <code>{install_command}</code>{description}{commands}\n\n\n",
|
||||||
"fetch_failed": "<emoji document_id=5348277823133999513>❌</emoji> <b>Не удалось получить данные для FHeta.</b>",
|
"fetch_failed": "<emoji document_id=5348277823133999513>❌</emoji> <b>Ошибка.</b>",
|
||||||
"closest_match": "<emoji document_id=5188311512791393083>🔎</emoji> <b>Результат по запросу </b><code>{query}</code><b>:</b>\n<code>{module_name}</code> от {author}\n<emoji document_id=4985961065012527769>🖥</emoji> <b>Репозиторий:</b> {repo_url}\n<emoji document_id=5307585292926984338>💾</emoji> <b>Команда для установки:</b> <code>{install_command}</code>{description}{commands}\n\n",
|
"closest_match": "<emoji document_id=5188311512791393083>🔎</emoji> <b>Результат по запросу:</b> <code>{query}</code>\n<code>{module_name}</code> от {author}\n<emoji document_id=4985961065012527769>🖥</emoji> <b>Репозиторий:</b> {repo_url}\n<emoji document_id=5307585292926984338>💾</emoji> <b>Команда для установки:</b> <code>{install_command}</code>{description}{commands}\n\n\n",
|
||||||
"inline_no_query": "Введите запрос для поиска.",
|
"inline_no_query": "Введите запрос для поиска.",
|
||||||
"inline_no_modules_found": "Модули не найдены.",
|
"inline_no_modules_found": "Модули не найдены.",
|
||||||
"inline_commands": "\n👨💻 <b>Команды:</b>\n{commands_list}",
|
"inline_commands": "\n👨💻 <b>Команды:</b>\n{commands_list}",
|
||||||
|
@ -63,7 +64,27 @@ class FHeta(loader.Module):
|
||||||
"inline_noo_query": "Название, команда, описание, автор."
|
"inline_noo_query": "Название, команда, описание, автор."
|
||||||
}
|
}
|
||||||
|
|
||||||
@loader.command(ru_doc="(запрос) - искать модули.")
|
strings_ua = {
|
||||||
|
"name": "FHeta",
|
||||||
|
"search": "<emoji document_id=5188311512791393083>🔎</emoji> <b>Пошук...</b>",
|
||||||
|
"no_query": "<emoji document_id=5348277823133999513>❌</emoji> <b>Введіть запит для пошуку.</b>",
|
||||||
|
"no_modules_found": "<emoji document_id=5348277823133999513>❌</emoji> <b>Модулі не знайдені.</b>",
|
||||||
|
"commands": "\n<emoji document_id=5190498849440931467>👨💻</emoji> <b>Команди:</b>\n{commands_list}",
|
||||||
|
"description": "\n<emoji document_id=5433653135799228968>📁</emoji> <b>Опис:</b> {description}",
|
||||||
|
"result": "<emoji document_id=5188311512791393083>🔎</emoji> <b>Результат {index} за запитом:</b> <code>{query}</code>\n<code>{module_name}</code> від {author}\n<emoji document_id=4985961065012527769>🖥</emoji> <b>Репозиторій:</b> {repo_url}\n<emoji document_id=5307585292926984338>💾</emoji> <b>Команда для встановлення:</b> <code>{install_command}</code>{description}{commands}\n\n\n",
|
||||||
|
"fetch_failed": "<emoji document_id=5348277823133999513>❌</emoji> <b>Помилка.</b>",
|
||||||
|
"closest_match": "<emoji document_id=5188311512791393083>🔎</emoji> <b>Результат за запитом:</b> <code>{query}</code>\n<code>{module_name}</code> від {author}\n<emoji document_id=4985961065012527769>🖥</emoji> <b>Репозиторій:</b> {repo_url}\n<emoji document_id=5307585292926984338>💾</emoji> <b>Команда для встановлення:</b> <code>{install_command}</code>{description}{commands}\n\n\n",
|
||||||
|
"inline_no_query": "Введіть запит для пошуку.",
|
||||||
|
"inline_no_modules_found": "Модулі не знайдені.",
|
||||||
|
"inline_commands": "\n👨💻 <b>Команди:</b>\n{commands_list}",
|
||||||
|
"inline_description": "\n📁 <b>Опис:</b> {description}",
|
||||||
|
"inline_result": "<code>{module_name}</code> від {author}\n<b>🖥️ Репозиторій:</b> {repo_url}\n<b>💾 Команда для встановлення:</b> <code>{install_command}</code>{description}{commands}\n\n\n",
|
||||||
|
"inline_descriptioon": "{description}",
|
||||||
|
"inline_no_modules_foound": "Спробуйте інший запит.",
|
||||||
|
"inline_noo_query": "Назва, команда, опис, автор."
|
||||||
|
}
|
||||||
|
|
||||||
|
@loader.command(ru_doc="(запрос) - искать модули.", ua_doc="(запит) - шукати модулі.")
|
||||||
async def fhetacmd(self, message):
|
async def fhetacmd(self, message):
|
||||||
'''(query) - search modules.'''
|
'''(query) - search modules.'''
|
||||||
args = utils.get_args_raw(message)
|
args = utils.get_args_raw(message)
|
||||||
|
@ -78,6 +99,23 @@ class FHeta(loader.Module):
|
||||||
modules = await self.search_modules(args.replace(" ", ""))
|
modules = await self.search_modules(args.replace(" ", ""))
|
||||||
|
|
||||||
if not modules:
|
if not modules:
|
||||||
|
url = "https://raw.githubusercontent.com/Fixyres/FHeta/refs/heads/main/modules.json"
|
||||||
|
async with aiohttp.ClientSession() as session:
|
||||||
|
async with session.get(url) as response:
|
||||||
|
if response.status == 200:
|
||||||
|
data = await response.text()
|
||||||
|
all_modules = json.loads(data)
|
||||||
|
|
||||||
|
module_names = [module['name'] for module in all_modules]
|
||||||
|
closest_matches = difflib.get_close_matches(args, module_names, n=1, cutoff=0.5)
|
||||||
|
|
||||||
|
if closest_matches:
|
||||||
|
closest_module = next((m for m in all_modules if m['name'] == closest_matches[0]), None)
|
||||||
|
if closest_module:
|
||||||
|
formatted_module = await self.format_module(closest_module, args)
|
||||||
|
await utils.answer(message, formatted_module)
|
||||||
|
return
|
||||||
|
|
||||||
await utils.answer(message, self.strings["no_modules_found"])
|
await utils.answer(message, self.strings["no_modules_found"])
|
||||||
else:
|
else:
|
||||||
seen_modules = set()
|
seen_modules = set()
|
||||||
|
@ -95,17 +133,18 @@ class FHeta(loader.Module):
|
||||||
[f"<code>{self.get_prefix()}{cmd['name']}</code> {utils.escape_html(cmd['description'])}" for cmd in module['commands']]
|
[f"<code>{self.get_prefix()}{cmd['name']}</code> {utils.escape_html(cmd['description'])}" for cmd in module['commands']]
|
||||||
))
|
))
|
||||||
elif "commands" not in module or not module['commands']:
|
elif "commands" not in module or not module['commands']:
|
||||||
commands_section = self.strings["no_commands"]
|
commands_section = ""
|
||||||
|
|
||||||
description_section = ""
|
description_section = ""
|
||||||
if "description" in module and module["description"]:
|
if "description" in module and module["description"]:
|
||||||
description_section = self.strings["description"].format(description=utils.escape_html(module["description"]))
|
description_section = self.strings["description"].format(description=utils.escape_html(module["description"]))
|
||||||
elif "description" not in module or not module["description"]:
|
elif "description" not in module or not module["description"]:
|
||||||
description_section = self.strings["no_description"]
|
description_section = ""
|
||||||
|
|
||||||
author_info = utils.escape_html(module.get("author", "???"))
|
author_info = utils.escape_html(module.get("author", "???"))
|
||||||
module_name = utils.escape_html(module['name'].replace('.py', ''))
|
module_name = utils.escape_html(module['name'].replace('.py', ''))
|
||||||
module_key = f"{module_name}_{author_info}"
|
module_namee = utils.escape_html(module['name'].replace('.py', '').lower())
|
||||||
|
module_key = f"{module_namee}_{author_info}"
|
||||||
|
|
||||||
if module_key in seen_modules:
|
if module_key in seen_modules:
|
||||||
continue
|
continue
|
||||||
|
@ -127,14 +166,23 @@ class FHeta(loader.Module):
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if len(formatted_modules) == 1:
|
if len(formatted_modules) == 1:
|
||||||
closest_match_result = formatted_modules[0]
|
closest_match_result = self.strings["closest_match"].format(
|
||||||
|
query=args,
|
||||||
|
module_name=module_name,
|
||||||
|
author=author_info,
|
||||||
|
repo_url=repo_url,
|
||||||
|
install_command=f"{self.get_prefix()}{install}",
|
||||||
|
description=description_section,
|
||||||
|
commands=commands_section
|
||||||
|
)
|
||||||
await utils.answer(message, closest_match_result)
|
await utils.answer(message, closest_match_result)
|
||||||
else:
|
else:
|
||||||
results = "".join(formatted_modules)
|
results = "".join(formatted_modules)
|
||||||
await utils.answer(message, results)
|
await utils.answer(message, results)
|
||||||
|
|
||||||
@loader.inline_handler(ru_doc="(запрос) - искать модули.")
|
@loader.inline_handler(ru_doc="(запрос) - искать модули.", ua_doc="(запит) - шукати модулі.")
|
||||||
async def fheta(self, query: InlineQuery):
|
async def fheta(self, query: InlineQuery):
|
||||||
|
'''(query) - search modules.'''
|
||||||
args = query.args
|
args = query.args
|
||||||
if not args:
|
if not args:
|
||||||
await query.answer(
|
await query.answer(
|
||||||
|
@ -159,6 +207,20 @@ class FHeta(loader.Module):
|
||||||
if not modules:
|
if not modules:
|
||||||
modules = await self.search_modules(args.replace(" ", ""))
|
modules = await self.search_modules(args.replace(" ", ""))
|
||||||
|
|
||||||
|
if not modules:
|
||||||
|
url = "https://raw.githubusercontent.com/Fixyres/FHeta/refs/heads/main/modules.json"
|
||||||
|
async with aiohttp.ClientSession() as session:
|
||||||
|
async with session.get(url) as response:
|
||||||
|
if response.status == 200:
|
||||||
|
data = await response.text()
|
||||||
|
all_modules = json.loads(data)
|
||||||
|
|
||||||
|
module_names = [module['name'] for module in all_modules]
|
||||||
|
closest_matches = difflib.get_close_matches(args, module_names, n=3, cutoff=0.4)
|
||||||
|
|
||||||
|
if closest_matches:
|
||||||
|
modules = [m for m in all_modules if m['name'] in closest_matches]
|
||||||
|
|
||||||
if not modules:
|
if not modules:
|
||||||
await query.answer(
|
await query.answer(
|
||||||
[
|
[
|
||||||
|
@ -187,7 +249,7 @@ class FHeta(loader.Module):
|
||||||
install = module['install']
|
install = module['install']
|
||||||
|
|
||||||
commands_section = ""
|
commands_section = ""
|
||||||
if "commands" in module:
|
if "commands" in module and module['commands']:
|
||||||
commands_list = "\n".join(
|
commands_list = "\n".join(
|
||||||
[f"<code>{self.get_prefix()}{cmd['name']}</code> {utils.escape_html(cmd['description'])}" for cmd in module['commands']]
|
[f"<code>{self.get_prefix()}{cmd['name']}</code> {utils.escape_html(cmd['description'])}" for cmd in module['commands']]
|
||||||
)
|
)
|
||||||
|
@ -195,11 +257,14 @@ class FHeta(loader.Module):
|
||||||
|
|
||||||
description_section = ""
|
description_section = ""
|
||||||
if "description" in module:
|
if "description" in module:
|
||||||
description_section = self.strings["inline_description"].format(description=f"{utils.escape_html(module['description'])}")
|
description_section = self.strings["inline_description"].format(description=utils.escape_html(module['description']))
|
||||||
|
else:
|
||||||
|
description_section = ""
|
||||||
|
|
||||||
author_info = utils.escape_html(module.get("author", "???"))
|
author_info = utils.escape_html(module.get("author", "???"))
|
||||||
module_name = utils.escape_html(module['name'].replace('.py', ''))
|
module_name = utils.escape_html(module['name'].replace('.py', ''))
|
||||||
module_key = f"{module_name}_{author_info}"
|
module_namee = utils.escape_html(module['name'].replace('.py', '').lower())
|
||||||
|
module_key = f"{module_namee}_{author_info}"
|
||||||
|
|
||||||
if module_key in seen_modules:
|
if module_key in seen_modules:
|
||||||
continue
|
continue
|
||||||
|
@ -210,7 +275,7 @@ class FHeta(loader.Module):
|
||||||
"type": "article",
|
"type": "article",
|
||||||
"id": f"module_{result_index}",
|
"id": f"module_{result_index}",
|
||||||
"title": module_name,
|
"title": module_name,
|
||||||
"description": self.strings["inline_descriptioon"].format(description=utils.escape_html(module["description"])),
|
"description": self.strings["inline_descriptioon"].format(description=module.get('description', utils.escape_html(module.get('author', '???')))),
|
||||||
"input_message_content": {
|
"input_message_content": {
|
||||||
"message_text": self.strings["inline_result"].format(
|
"message_text": self.strings["inline_result"].format(
|
||||||
query=args,
|
query=args,
|
||||||
|
@ -229,7 +294,7 @@ class FHeta(loader.Module):
|
||||||
)
|
)
|
||||||
result_index += 1
|
result_index += 1
|
||||||
|
|
||||||
if result_index > 20:
|
if result_index > 50:
|
||||||
break
|
break
|
||||||
except Exception:
|
except Exception:
|
||||||
continue
|
continue
|
||||||
|
@ -293,4 +358,4 @@ class FHeta(loader.Module):
|
||||||
install_command=f"{self.get_prefix()}{install}",
|
install_command=f"{self.get_prefix()}{install}",
|
||||||
description=description_section,
|
description=description_section,
|
||||||
commands=commands_section
|
commands=commands_section
|
||||||
)
|
)
|
||||||
|
|
Loading…
Reference in New Issue