- В `env.example` добавлены настройки для S3 хранилища. - Обновлен файл зависимостей `requirements.txt`, добавлена библиотека `aioboto3` для работы с S3. - В `PostRepository` и `AsyncBotDB` реализованы методы для обновления и получения контента опубликованных постов. - Обновлены обработчики публикации постов для сохранения идентификаторов опубликованных сообщений и их контента. - Реализована логика сохранения медиафайлов в S3 или на локальный диск в зависимости от конфигурации. - Обновлены тесты для проверки нового функционала.
27 lines
779 B
Python
27 lines
779 B
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()
|
|
|
|
db = bdf.get_db()
|
|
settings = bdf.settings
|
|
s3_storage = bdf.get_s3_storage()
|
|
return PostPublishService(None, db, settings, s3_storage)
|
|
|
|
|
|
def get_ban_service() -> BanService:
|
|
"""Фабрика для BanService"""
|
|
bdf = get_global_instance()
|
|
|
|
db = bdf.get_db()
|
|
settings = bdf.settings
|
|
return BanService(None, db, settings)
|