- Introduced `DependenciesMiddleware` and `BlacklistMiddleware` for enhanced request handling across all routers. - Refactored admin handlers to utilize new middleware, improving access control and error handling. - Updated the `admin_router` to include middleware for access checks and streamlined the process of banning users. - Enhanced the structure of admin handler imports for better organization and maintainability. - Improved error handling in various admin functions to ensure robust user interactions.
34 lines
1.0 KiB
Python
34 lines
1.0 KiB
Python
from typing import Callable
|
|
from aiogram import Bot
|
|
from aiogram.client.default import DefaultBotProperties
|
|
from aiogram.fsm.context import FSMContext
|
|
|
|
from helper_bot.utils.base_dependency_factory import get_global_instance
|
|
from .services import PostPublishService, BanService
|
|
|
|
|
|
def get_post_publish_service() -> PostPublishService:
|
|
"""Фабрика для PostPublishService"""
|
|
bdf = get_global_instance()
|
|
bot = Bot(
|
|
token=bdf.settings['Telegram']['bot_token'],
|
|
default=DefaultBotProperties(parse_mode='HTML'),
|
|
timeout=30.0
|
|
)
|
|
db = bdf.get_db()
|
|
settings = bdf.settings
|
|
return PostPublishService(bot, db, settings)
|
|
|
|
|
|
def get_ban_service() -> BanService:
|
|
"""Фабрика для BanService"""
|
|
bdf = get_global_instance()
|
|
bot = Bot(
|
|
token=bdf.settings['Telegram']['bot_token'],
|
|
default=DefaultBotProperties(parse_mode='HTML'),
|
|
timeout=30.0
|
|
)
|
|
db = bdf.get_db()
|
|
settings = bdf.settings
|
|
return BanService(bot, db, settings)
|