1.1 теперь команды могут выполнять асинхронные функции как дополнения
This commit is contained in:
@@ -4,6 +4,8 @@
|
|||||||
from BotLibrary import CommandHandler
|
from BotLibrary import CommandHandler
|
||||||
from BotCode.keyboards import get_help_kb
|
from BotCode.keyboards import get_help_kb
|
||||||
|
|
||||||
|
# Настройки экспорта в модули
|
||||||
|
__all__ = ("help_cmd",)
|
||||||
|
|
||||||
# Создание команды /help с нужными параметрами
|
# Создание команды /help с нужными параметрами
|
||||||
help_cmd = CommandHandler(
|
help_cmd = CommandHandler(
|
||||||
|
|||||||
@@ -4,6 +4,9 @@
|
|||||||
from BotLibrary import CommandHandler
|
from BotLibrary import CommandHandler
|
||||||
from BotCode.keyboards import get_start_kb
|
from BotCode.keyboards import get_start_kb
|
||||||
|
|
||||||
|
# Настройки экспорта в модули
|
||||||
|
__all__ = ("start_cmd",)
|
||||||
|
|
||||||
# Создание команды /start с несколькими медиа
|
# Создание команды /start с несколькими медиа
|
||||||
start_cmd = CommandHandler(
|
start_cmd = CommandHandler(
|
||||||
name="start",
|
name="start",
|
||||||
|
|||||||
@@ -24,4 +24,4 @@ class BaseInlineKeyboard:
|
|||||||
ikb.button(text=text, callback_data=callback_data)
|
ikb.button(text=text, callback_data=callback_data)
|
||||||
|
|
||||||
ikb.adjust(self.row_width)
|
ikb.adjust(self.row_width)
|
||||||
return ikb.as_markup()
|
return ikb.as_markup()
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ __all__ = ("CommandHandler",)
|
|||||||
|
|
||||||
# Класс-шаблон для команд
|
# Класс-шаблон для команд
|
||||||
class CommandHandler:
|
class CommandHandler:
|
||||||
def __init__(self, text_msg, name: str, keywords: list, chat_action: bool = False,
|
def __init__(self, text_msg, name: str, keywords: list, func = None, chat_action: bool = False,
|
||||||
description: str = "Описание команды", tg_links: bool = False,
|
description: str = "Описание команды", tg_links: bool = False,
|
||||||
keyboard=None, prefix=BotVar.prefix, callbackdata=None,
|
keyboard=None, prefix=BotVar.prefix, callbackdata=None,
|
||||||
ignore_case: bool = True, activate_keywoards: bool = True,
|
ignore_case: bool = True, activate_keywoards: bool = True,
|
||||||
@@ -38,6 +38,8 @@ class CommandHandler:
|
|||||||
self.disable_notification = disable_notification
|
self.disable_notification = disable_notification
|
||||||
|
|
||||||
self.media = media.lower()
|
self.media = media.lower()
|
||||||
|
self.func = func
|
||||||
|
|
||||||
# Поддержка до 10 медиафайлов через список
|
# Поддержка до 10 медиафайлов через список
|
||||||
if path_to_media is None:
|
if path_to_media is None:
|
||||||
self.path_to_media = []
|
self.path_to_media = []
|
||||||
@@ -63,6 +65,8 @@ class CommandHandler:
|
|||||||
async def handler(self, message: types.Message):
|
async def handler(self, message: types.Message):
|
||||||
"""Основной хэндлер команды."""
|
"""Основной хэндлер команды."""
|
||||||
try:
|
try:
|
||||||
|
if self.func:
|
||||||
|
await self.func(message) # Вызов переданной функции, если она есть
|
||||||
if self.tg_links:
|
if self.tg_links:
|
||||||
self.text_msg = self.text_msg.replace("<users>", str(message.from_user.id))
|
self.text_msg = self.text_msg.replace("<users>", str(message.from_user.id))
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user