Add support for streaming modules / Add mailing for trial subscriptions

This commit is contained in:
Capybara-z
2025-08-06 23:07:27 +03:00
parent a833b11b8e
commit 9d1760c7ca
5 changed files with 107 additions and 41 deletions
+28
View File
@@ -52,3 +52,31 @@ def load_module_webhooks(folder: str = "modules") -> list[dict]:
logger.error(f"[Modules] Ошибка при загрузке вебхуков из {module_path}: {e}")
return webhooks
def load_module_fast_flow_handlers(folder: str = "modules") -> dict:
handlers = {}
base_path = Path(folder)
if not base_path.exists():
logger.warning(f"[Modules] Папка {folder} не найдена, пропускаем загрузку быстрого флоу.")
return {}
for _finder, name, _ispkg in pkgutil.iter_modules([str(base_path)]):
module_path = f"{folder}.{name}"
try:
router_module = importlib.import_module(f"{module_path}.router")
if hasattr(router_module, "get_fast_flow_handler"):
fast_flow_data = router_module.get_fast_flow_handler()
if fast_flow_data and isinstance(fast_flow_data, dict) and "payment_key" in fast_flow_data and "handler" in fast_flow_data:
payment_key = fast_flow_data["payment_key"]
handler = fast_flow_data["handler"]
handlers[payment_key] = handler
logger.info(f"[Modules] Найден обработчик быстрого флоу в модуле {name}: {payment_key}")
elif fast_flow_data is None:
logger.info(f"[Modules] Быстрое флоу отключено в модуле {name}")
except Exception as e:
logger.error(f"[Modules] Ошибка при загрузке быстрого флоу из {module_path}: {e}")
return handlers