optimization of the start command
This commit is contained in:
+205
-365
@@ -12,24 +12,16 @@ async def process_cluster_override(
|
||||
plan: int | None = None,
|
||||
**kwargs,
|
||||
) -> str | None:
|
||||
"""
|
||||
Обрабатывает хук cluster_override.
|
||||
|
||||
Возвращает название кластера для принудительного выбора или None.
|
||||
"""
|
||||
try:
|
||||
results = await run_hooks(
|
||||
"cluster_override",
|
||||
tg_id=tg_id,
|
||||
state_data=state_data,
|
||||
session=session,
|
||||
plan=plan,
|
||||
**kwargs,
|
||||
)
|
||||
return results[0] if results and results[0] else None
|
||||
except Exception as e:
|
||||
logger.warning(f"[CLUSTER_OVERRIDE] Ошибка при обработке хука: {e}")
|
||||
return None
|
||||
"""Обрабатывает хук cluster_override и возвращает название кластера."""
|
||||
results = await run_hooks(
|
||||
"cluster_override",
|
||||
tg_id=tg_id,
|
||||
state_data=state_data,
|
||||
session=session,
|
||||
plan=plan,
|
||||
**kwargs,
|
||||
)
|
||||
return results[0] if results and results[0] else None
|
||||
|
||||
|
||||
async def process_cluster_balancer(
|
||||
@@ -37,22 +29,14 @@ async def process_cluster_balancer(
|
||||
session: Any,
|
||||
**kwargs,
|
||||
) -> dict | None:
|
||||
"""
|
||||
Обрабатывает хук cluster_balancer.
|
||||
|
||||
Возвращает отфильтрованный словарь кластеров или None (использовать исходный).
|
||||
"""
|
||||
try:
|
||||
results = await run_hooks(
|
||||
"cluster_balancer",
|
||||
available_clusters=available_clusters,
|
||||
session=session,
|
||||
**kwargs,
|
||||
)
|
||||
return results[0] if results and results[0] else None
|
||||
except Exception as e:
|
||||
logger.warning(f"[CLUSTER_BALANCER] Ошибка при обработке хука: {e}")
|
||||
return None
|
||||
"""Обрабатывает хук cluster_balancer и возвращает отфильтрованные кластеры."""
|
||||
results = await run_hooks(
|
||||
"cluster_balancer",
|
||||
available_clusters=available_clusters,
|
||||
session=session,
|
||||
**kwargs,
|
||||
)
|
||||
return results[0] if results and results[0] else None
|
||||
|
||||
|
||||
async def process_remnawave_webapp_override(
|
||||
@@ -61,36 +45,28 @@ async def process_remnawave_webapp_override(
|
||||
session: Any,
|
||||
**kwargs,
|
||||
) -> bool:
|
||||
"""
|
||||
Обрабатывает хук remnawave_webapp_override.
|
||||
|
||||
Возвращает bool - использовать ли webapp для подключения устройства.
|
||||
"""
|
||||
"""Обрабатывает хук remnawave_webapp_override и решает, использовать ли webapp."""
|
||||
if not remnawave_webapp or not final_link:
|
||||
return remnawave_webapp
|
||||
|
||||
try:
|
||||
results = await run_hooks(
|
||||
"remnawave_webapp_override",
|
||||
remnawave_webapp=remnawave_webapp,
|
||||
final_link=final_link,
|
||||
session=session,
|
||||
**kwargs,
|
||||
)
|
||||
if not results:
|
||||
return remnawave_webapp
|
||||
|
||||
for result in results:
|
||||
if result is True or result is False:
|
||||
return result
|
||||
elif isinstance(result, dict) and "override" in result:
|
||||
return result["override"]
|
||||
|
||||
return remnawave_webapp
|
||||
except Exception as e:
|
||||
logger.warning(f"[REMNAWAVE_WEBAPP_OVERRIDE] Ошибка при обработке хука: {e}")
|
||||
results = await run_hooks(
|
||||
"remnawave_webapp_override",
|
||||
remnawave_webapp=remnawave_webapp,
|
||||
final_link=final_link,
|
||||
session=session,
|
||||
**kwargs,
|
||||
)
|
||||
if not results:
|
||||
return remnawave_webapp
|
||||
|
||||
for result in results:
|
||||
if result is True or result is False:
|
||||
return result
|
||||
if isinstance(result, dict) and "override" in result:
|
||||
return result["override"]
|
||||
|
||||
return remnawave_webapp
|
||||
|
||||
|
||||
async def process_happ_cryptolink_override(
|
||||
cluster_id: str | None,
|
||||
@@ -101,34 +77,26 @@ async def process_happ_cryptolink_override(
|
||||
happ_cryptolink: bool = False,
|
||||
**kwargs,
|
||||
) -> bool:
|
||||
"""
|
||||
Обрабатывает хук happ_cryptolink_override.
|
||||
|
||||
Возвращает bool - использовать ли криптоссылку для подписки.
|
||||
"""
|
||||
try:
|
||||
results = await run_hooks(
|
||||
"happ_cryptolink_override",
|
||||
cluster_id=cluster_id,
|
||||
plan=plan,
|
||||
session=session,
|
||||
email=email,
|
||||
tg_id=tg_id,
|
||||
happ_cryptolink=happ_cryptolink,
|
||||
**kwargs,
|
||||
)
|
||||
if not results:
|
||||
return happ_cryptolink
|
||||
|
||||
for result in results:
|
||||
if result is True or result is False:
|
||||
return result
|
||||
|
||||
return happ_cryptolink
|
||||
except Exception as e:
|
||||
logger.warning(f"[HAPP_CRYPTOLINK_OVERRIDE] Ошибка при обработке хука: {e}")
|
||||
"""Обрабатывает хук happ_cryptolink_override и решает, использовать ли криптоссылку."""
|
||||
results = await run_hooks(
|
||||
"happ_cryptolink_override",
|
||||
cluster_id=cluster_id,
|
||||
plan=plan,
|
||||
session=session,
|
||||
email=email,
|
||||
tg_id=tg_id,
|
||||
happ_cryptolink=happ_cryptolink,
|
||||
**kwargs,
|
||||
)
|
||||
if not results:
|
||||
return happ_cryptolink
|
||||
|
||||
for result in results:
|
||||
if result is True or result is False:
|
||||
return result
|
||||
|
||||
return happ_cryptolink
|
||||
|
||||
|
||||
async def process_extract_cryptolink_from_result(
|
||||
result: dict,
|
||||
@@ -140,11 +108,7 @@ async def process_extract_cryptolink_from_result(
|
||||
need_vless_key: bool = False,
|
||||
**kwargs,
|
||||
) -> str | None:
|
||||
"""
|
||||
Обрабатывает хук happ_cryptolink_override и извлекает криптоссылку из результата API.
|
||||
|
||||
Возвращает криптоссылку если нужно использовать, иначе None.
|
||||
"""
|
||||
"""Извлекает криптоссылку из результата API с учётом хуков."""
|
||||
if need_vless_key:
|
||||
return None
|
||||
|
||||
@@ -187,11 +151,7 @@ async def process_get_cryptolink_after_renewal(
|
||||
remnawave_nodes: list | None = None,
|
||||
**kwargs,
|
||||
) -> str | None:
|
||||
"""
|
||||
Получает свежие данные подписки после продления и извлекает криптоссылку если нужно.
|
||||
|
||||
Возвращает криптоссылку если хук требует её использования, иначе None.
|
||||
"""
|
||||
"""Получает криптоссылку из Remnawave после продления подписки."""
|
||||
if not remnawave_nodes:
|
||||
return None
|
||||
|
||||
@@ -236,23 +196,15 @@ async def process_intercept_key_creation_message(
|
||||
target_message: Any,
|
||||
**kwargs,
|
||||
) -> bool:
|
||||
"""
|
||||
Обрабатывает хук intercept_key_creation_message.
|
||||
|
||||
Возвращает True если нужно прервать выполнение (перехватить сообщение).
|
||||
"""
|
||||
try:
|
||||
results = await run_hooks(
|
||||
"intercept_key_creation_message",
|
||||
chat_id=chat_id,
|
||||
session=session,
|
||||
target_message=target_message,
|
||||
**kwargs,
|
||||
)
|
||||
return bool(results and results[0])
|
||||
except Exception as e:
|
||||
logger.warning(f"[INTERCEPT_KEY_CREATION] Ошибка при обработке хука: {e}")
|
||||
return False
|
||||
"""Обрабатывает хук intercept_key_creation_message и решает, перехватывать ли сообщение."""
|
||||
results = await run_hooks(
|
||||
"intercept_key_creation_message",
|
||||
chat_id=chat_id,
|
||||
session=session,
|
||||
target_message=target_message,
|
||||
**kwargs,
|
||||
)
|
||||
return bool(results and results[0])
|
||||
|
||||
|
||||
async def process_key_creation_complete(
|
||||
@@ -263,25 +215,17 @@ async def process_key_creation_complete(
|
||||
admin: bool = False,
|
||||
**kwargs,
|
||||
) -> list:
|
||||
"""
|
||||
Обрабатывает хук key_creation_complete.
|
||||
|
||||
Возвращает список кнопок для добавления в меню после создания ключа.
|
||||
"""
|
||||
try:
|
||||
results = await run_hooks(
|
||||
"key_creation_complete",
|
||||
chat_id=chat_id,
|
||||
admin=admin,
|
||||
session=session,
|
||||
email=email,
|
||||
key_name=key_name,
|
||||
**kwargs,
|
||||
)
|
||||
return results if results else []
|
||||
except Exception as e:
|
||||
logger.warning(f"[KEY_CREATION_COMPLETE] Ошибка при обработке хука: {e}")
|
||||
return []
|
||||
"""Обрабатывает хук key_creation_complete и возвращает кнопки после создания ключа."""
|
||||
results = await run_hooks(
|
||||
"key_creation_complete",
|
||||
chat_id=chat_id,
|
||||
admin=admin,
|
||||
session=session,
|
||||
email=email,
|
||||
key_name=key_name,
|
||||
**kwargs,
|
||||
)
|
||||
return results if results else []
|
||||
|
||||
|
||||
async def process_process_callback_renew_key(
|
||||
@@ -290,23 +234,15 @@ async def process_process_callback_renew_key(
|
||||
session: Any,
|
||||
**kwargs,
|
||||
) -> list:
|
||||
"""
|
||||
Обрабатывает хук process_callback_renew_key.
|
||||
|
||||
Возвращает список кнопок для добавления в меню продления.
|
||||
"""
|
||||
try:
|
||||
results = await run_hooks(
|
||||
"process_callback_renew_key",
|
||||
callback_query=callback_query,
|
||||
state=state,
|
||||
session=session,
|
||||
**kwargs,
|
||||
)
|
||||
return results if results else []
|
||||
except Exception as e:
|
||||
logger.warning(f"[PROCESS_CALLBACK_RENEW_KEY] Ошибка при обработке хука: {e}")
|
||||
return []
|
||||
"""Обрабатывает хук process_callback_renew_key и возвращает кнопки для продления."""
|
||||
results = await run_hooks(
|
||||
"process_callback_renew_key",
|
||||
callback_query=callback_query,
|
||||
state=state,
|
||||
session=session,
|
||||
**kwargs,
|
||||
)
|
||||
return results if results else []
|
||||
|
||||
|
||||
async def process_renewal_forbidden_groups(
|
||||
@@ -315,29 +251,21 @@ async def process_renewal_forbidden_groups(
|
||||
admin: bool = False,
|
||||
**kwargs,
|
||||
) -> list[str]:
|
||||
"""
|
||||
Обрабатывает хук renewal_forbidden_groups.
|
||||
|
||||
Возвращает список дополнительных запрещенных групп для продления.
|
||||
"""
|
||||
try:
|
||||
results = await run_hooks(
|
||||
"renewal_forbidden_groups",
|
||||
chat_id=chat_id,
|
||||
admin=admin,
|
||||
session=session,
|
||||
**kwargs,
|
||||
)
|
||||
forbidden_groups = []
|
||||
for result in results:
|
||||
if isinstance(result, dict):
|
||||
additional_groups = result.get("additional_groups", [])
|
||||
if isinstance(additional_groups, list):
|
||||
forbidden_groups.extend(additional_groups)
|
||||
return forbidden_groups
|
||||
except Exception as e:
|
||||
logger.warning(f"[RENEWAL_FORBIDDEN_GROUPS] Ошибка при обработке хука: {e}")
|
||||
return []
|
||||
"""Обрабатывает хук renewal_forbidden_groups и возвращает дополнительные запреты."""
|
||||
results = await run_hooks(
|
||||
"renewal_forbidden_groups",
|
||||
chat_id=chat_id,
|
||||
admin=admin,
|
||||
session=session,
|
||||
**kwargs,
|
||||
)
|
||||
forbidden_groups: list[str] = []
|
||||
for result in results:
|
||||
if isinstance(result, dict):
|
||||
additional_groups = result.get("additional_groups", [])
|
||||
if isinstance(additional_groups, list):
|
||||
forbidden_groups.extend(additional_groups)
|
||||
return forbidden_groups
|
||||
|
||||
|
||||
async def process_purchase_tariff_group_override(
|
||||
@@ -347,34 +275,22 @@ async def process_purchase_tariff_group_override(
|
||||
admin: bool = False,
|
||||
**kwargs,
|
||||
) -> dict | None:
|
||||
"""
|
||||
Обрабатывает хук purchase_tariff_group_override.
|
||||
|
||||
Возвращает dict с ключами:
|
||||
- override_group: str - новая группа тарифов
|
||||
- discount_info: dict | None - информация о скидке (опционально)
|
||||
|
||||
Или None если переопределение не требуется.
|
||||
"""
|
||||
try:
|
||||
results = await run_hooks(
|
||||
"purchase_tariff_group_override",
|
||||
chat_id=chat_id,
|
||||
admin=admin,
|
||||
session=session,
|
||||
original_group=original_group,
|
||||
**kwargs,
|
||||
)
|
||||
for result in results:
|
||||
if isinstance(result, dict) and result.get("override_group"):
|
||||
return {
|
||||
"override_group": result["override_group"],
|
||||
"discount_info": result.get("discount_info"),
|
||||
}
|
||||
return None
|
||||
except Exception as e:
|
||||
logger.warning(f"[PURCHASE_TARIFF_GROUP_OVERRIDE] Ошибка при обработке хука: {e}")
|
||||
return None
|
||||
"""Обрабатывает хук purchase_tariff_group_override и может изменить группу тарифов."""
|
||||
results = await run_hooks(
|
||||
"purchase_tariff_group_override",
|
||||
chat_id=chat_id,
|
||||
admin=admin,
|
||||
session=session,
|
||||
original_group=original_group,
|
||||
**kwargs,
|
||||
)
|
||||
for result in results:
|
||||
if isinstance(result, dict) and result.get("override_group"):
|
||||
return {
|
||||
"override_group": result["override_group"],
|
||||
"discount_info": result.get("discount_info"),
|
||||
}
|
||||
return None
|
||||
|
||||
|
||||
async def process_renew_tariffs(
|
||||
@@ -383,23 +299,15 @@ async def process_renew_tariffs(
|
||||
admin: bool = False,
|
||||
**kwargs,
|
||||
) -> list:
|
||||
"""
|
||||
Обрабатывает хук renew_tariffs.
|
||||
|
||||
Возвращает список кнопок для добавления в меню выбора тарифов для продления.
|
||||
"""
|
||||
try:
|
||||
results = await run_hooks(
|
||||
"renew_tariffs",
|
||||
chat_id=chat_id,
|
||||
admin=admin,
|
||||
session=session,
|
||||
**kwargs,
|
||||
)
|
||||
return results if results else []
|
||||
except Exception as e:
|
||||
logger.warning(f"[RENEW_TARIFFS] Ошибка при обработке хука: {e}")
|
||||
return []
|
||||
"""Обрабатывает хук renew_tariffs и возвращает кнопки для выбора тарифов продления."""
|
||||
results = await run_hooks(
|
||||
"renew_tariffs",
|
||||
chat_id=chat_id,
|
||||
admin=admin,
|
||||
session=session,
|
||||
**kwargs,
|
||||
)
|
||||
return results if results else []
|
||||
|
||||
|
||||
async def process_renewal_complete(
|
||||
@@ -410,25 +318,17 @@ async def process_renewal_complete(
|
||||
admin: bool = False,
|
||||
**kwargs,
|
||||
) -> list:
|
||||
"""
|
||||
Обрабатывает хук renewal_complete.
|
||||
|
||||
Возвращает список кнопок для добавления в меню после продления подписки.
|
||||
"""
|
||||
try:
|
||||
results = await run_hooks(
|
||||
"renewal_complete",
|
||||
chat_id=chat_id,
|
||||
admin=admin,
|
||||
session=session,
|
||||
email=email,
|
||||
client_id=client_id,
|
||||
**kwargs,
|
||||
)
|
||||
return results if results else []
|
||||
except Exception as e:
|
||||
logger.warning(f"[RENEWAL_COMPLETE] Ошибка при обработке хука: {e}")
|
||||
return []
|
||||
"""Обрабатывает хук renewal_complete и возвращает кнопки после продления."""
|
||||
results = await run_hooks(
|
||||
"renewal_complete",
|
||||
chat_id=chat_id,
|
||||
admin=admin,
|
||||
session=session,
|
||||
email=email,
|
||||
client_id=client_id,
|
||||
**kwargs,
|
||||
)
|
||||
return results if results else []
|
||||
|
||||
|
||||
async def process_view_key_menu(
|
||||
@@ -436,22 +336,14 @@ async def process_view_key_menu(
|
||||
session: Any,
|
||||
**kwargs,
|
||||
) -> list:
|
||||
"""
|
||||
Обрабатывает хук view_key_menu.
|
||||
|
||||
Возвращает список кнопок для добавления в меню просмотра ключа.
|
||||
"""
|
||||
try:
|
||||
results = await run_hooks(
|
||||
"view_key_menu",
|
||||
key_name=key_name,
|
||||
session=session,
|
||||
**kwargs,
|
||||
)
|
||||
return results if results else []
|
||||
except Exception as e:
|
||||
logger.warning(f"[VIEW_KEY_MENU] Ошибка при обработке хука: {e}")
|
||||
return []
|
||||
"""Обрабатывает хук view_key_menu и возвращает кнопки для меню ключа."""
|
||||
results = await run_hooks(
|
||||
"view_key_menu",
|
||||
key_name=key_name,
|
||||
session=session,
|
||||
**kwargs,
|
||||
)
|
||||
return results if results else []
|
||||
|
||||
|
||||
async def process_admin_key_edit_menu(
|
||||
@@ -459,22 +351,14 @@ async def process_admin_key_edit_menu(
|
||||
session: Any,
|
||||
**kwargs,
|
||||
) -> list:
|
||||
"""
|
||||
Обрабатывает хук admin_key_edit_menu.
|
||||
|
||||
Возвращает список кнопок для добавления в меню редактирования ключа в админке.
|
||||
"""
|
||||
try:
|
||||
results = await run_hooks(
|
||||
"admin_key_edit_menu",
|
||||
email=email,
|
||||
session=session,
|
||||
**kwargs,
|
||||
)
|
||||
return results if results else []
|
||||
except Exception as e:
|
||||
logger.warning(f"[ADMIN_KEY_EDIT_MENU] Ошибка при обработке хука: {e}")
|
||||
return []
|
||||
"""Обрабатывает хук admin_key_edit_menu и возвращает кнопки редактирования ключа."""
|
||||
results = await run_hooks(
|
||||
"admin_key_edit_menu",
|
||||
email=email,
|
||||
session=session,
|
||||
**kwargs,
|
||||
)
|
||||
return results if results else []
|
||||
|
||||
|
||||
async def process_after_hwid_reset(
|
||||
@@ -484,26 +368,18 @@ async def process_after_hwid_reset(
|
||||
admin: bool = False,
|
||||
**kwargs,
|
||||
) -> bool:
|
||||
"""
|
||||
Обрабатывает хук after_hwid_reset.
|
||||
|
||||
Возвращает True если нужно перенаправить пользователя в профиль после сброса устройств.
|
||||
"""
|
||||
try:
|
||||
results = await run_hooks(
|
||||
"after_hwid_reset",
|
||||
chat_id=chat_id,
|
||||
admin=admin,
|
||||
session=session,
|
||||
key_name=key_name,
|
||||
**kwargs,
|
||||
)
|
||||
if not results:
|
||||
return False
|
||||
return any("redirect_to_profile" in str(result) for result in results)
|
||||
except Exception as e:
|
||||
logger.warning(f"[AFTER_HWID_RESET] Ошибка при обработке хука: {e}")
|
||||
"""Обрабатывает хук after_hwid_reset и решает, вести ли в профиль."""
|
||||
results = await run_hooks(
|
||||
"after_hwid_reset",
|
||||
chat_id=chat_id,
|
||||
admin=admin,
|
||||
session=session,
|
||||
key_name=key_name,
|
||||
**kwargs,
|
||||
)
|
||||
if not results:
|
||||
return False
|
||||
return any("redirect_to_profile" in str(result) for result in results)
|
||||
|
||||
|
||||
async def process_tariff_menu(
|
||||
@@ -513,24 +389,16 @@ async def process_tariff_menu(
|
||||
session: Any,
|
||||
**kwargs,
|
||||
) -> list:
|
||||
"""
|
||||
Обрабатывает хук tariff_menu.
|
||||
|
||||
Возвращает список кнопок для добавления в меню выбора тарифов.
|
||||
"""
|
||||
try:
|
||||
results = await run_hooks(
|
||||
"tariff_menu",
|
||||
group_code=group_code,
|
||||
cluster_name=cluster_name,
|
||||
tg_id=tg_id,
|
||||
session=session,
|
||||
**kwargs,
|
||||
)
|
||||
return results if results else []
|
||||
except Exception as e:
|
||||
logger.warning(f"[TARIFF_MENU] Ошибка при обработке хука: {e}")
|
||||
return []
|
||||
"""Обрабатывает хук tariff_menu и возвращает кнопки для меню тарифов."""
|
||||
results = await run_hooks(
|
||||
"tariff_menu",
|
||||
group_code=group_code,
|
||||
cluster_name=cluster_name,
|
||||
tg_id=tg_id,
|
||||
session=session,
|
||||
**kwargs,
|
||||
)
|
||||
return results if results else []
|
||||
|
||||
|
||||
async def process_check_discount_validity(
|
||||
@@ -540,34 +408,22 @@ async def process_check_discount_validity(
|
||||
admin: bool = False,
|
||||
**kwargs,
|
||||
) -> dict | None:
|
||||
"""
|
||||
Обрабатывает хук check_discount_validity.
|
||||
|
||||
Возвращает dict с ключами:
|
||||
- valid: bool - валидна ли скидка
|
||||
- message: str - сообщение об ошибке (если valid=False)
|
||||
|
||||
Или None если скидка валидна.
|
||||
"""
|
||||
try:
|
||||
results = await run_hooks(
|
||||
"check_discount_validity",
|
||||
chat_id=chat_id,
|
||||
admin=admin,
|
||||
session=session,
|
||||
tariff_group=tariff_group,
|
||||
**kwargs,
|
||||
)
|
||||
for result in results:
|
||||
if isinstance(result, dict) and not result.get("valid", True):
|
||||
return {
|
||||
"valid": False,
|
||||
"message": result.get("message", "❌ Скидка недоступна. Пожалуйста, выберите тариф заново."),
|
||||
}
|
||||
return None
|
||||
except Exception as e:
|
||||
logger.warning(f"[CHECK_DISCOUNT_VALIDITY] Ошибка при обработке хука: {e}")
|
||||
return None
|
||||
"""Обрабатывает хук check_discount_validity и проверяет валидность скидки."""
|
||||
results = await run_hooks(
|
||||
"check_discount_validity",
|
||||
chat_id=chat_id,
|
||||
admin=admin,
|
||||
session=session,
|
||||
tariff_group=tariff_group,
|
||||
**kwargs,
|
||||
)
|
||||
for result in results:
|
||||
if isinstance(result, dict) and not result.get("valid", True):
|
||||
return {
|
||||
"valid": False,
|
||||
"message": result.get("message", "❌ Скидка недоступна. Пожалуйста, выберите тариф заново."),
|
||||
}
|
||||
return None
|
||||
|
||||
|
||||
async def process_addons_menu(
|
||||
@@ -575,22 +431,14 @@ async def process_addons_menu(
|
||||
session: Any,
|
||||
**kwargs,
|
||||
) -> list:
|
||||
"""
|
||||
Обрабатывает хук addons_menu.
|
||||
|
||||
Возвращает список операций для модификации кнопок в меню конфигуратора тарифов.
|
||||
"""
|
||||
try:
|
||||
results = await run_hooks(
|
||||
"addons_menu",
|
||||
email=email,
|
||||
session=session,
|
||||
**kwargs,
|
||||
)
|
||||
return results if results else []
|
||||
except Exception as e:
|
||||
logger.warning(f"[ADDONS_MENU] Ошибка при обработке хука: {e}")
|
||||
return []
|
||||
"""Обрабатывает хук addons_menu и возвращает операции для меню конфигуратора."""
|
||||
results = await run_hooks(
|
||||
"addons_menu",
|
||||
email=email,
|
||||
session=session,
|
||||
**kwargs,
|
||||
)
|
||||
return results if results else []
|
||||
|
||||
|
||||
async def process_connect_device_menu(
|
||||
@@ -599,20 +447,12 @@ async def process_connect_device_menu(
|
||||
admin: bool = False,
|
||||
**kwargs,
|
||||
) -> list:
|
||||
"""
|
||||
Обрабатывает хук connect_device_menu.
|
||||
|
||||
Возвращает список кнопок для добавления в меню подключения устройства.
|
||||
"""
|
||||
try:
|
||||
results = await run_hooks(
|
||||
"connect_device_menu",
|
||||
chat_id=chat_id,
|
||||
admin=admin,
|
||||
session=session,
|
||||
**kwargs,
|
||||
)
|
||||
return results if results else []
|
||||
except Exception as e:
|
||||
logger.warning(f"[CONNECT_DEVICE_MENU] Ошибка при обработке хука: {e}")
|
||||
return []
|
||||
"""Обрабатывает хук connect_device_menu и возвращает кнопки подключения устройства."""
|
||||
results = await run_hooks(
|
||||
"connect_device_menu",
|
||||
chat_id=chat_id,
|
||||
admin=admin,
|
||||
session=session,
|
||||
**kwargs,
|
||||
)
|
||||
return results if results else []
|
||||
|
||||
Reference in New Issue
Block a user