добавление отслеживания количества выгрузки
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
@@ -12,7 +12,7 @@ from fastapi.responses import FileResponse
|
||||
|
||||
from config import DOCUMENTS_DIR, APP_TITLE, APP_DESCRIPTION, APP_VERSION
|
||||
from utils import logger
|
||||
from api.schemas import ParserOneRequest, Parserall, Source, DownloadRange
|
||||
from api.schemas import ParserOneRequest, Parserall, Source, DownloadRange, DownloadCountsResponse
|
||||
from parsers import start_pars_one_istochnik, start_pars_two_istochnik, start_pars_all_istochnik
|
||||
import work_parser as wp
|
||||
|
||||
@@ -178,6 +178,13 @@ def setup_routes(app: FastAPI) -> None:
|
||||
except Exception as e:
|
||||
logger.warning(f"Не удалось удалить архив: {e}")
|
||||
|
||||
def mark_as_downloaded():
|
||||
try:
|
||||
wp.mark_articles_as_downloaded(titles_from_db)
|
||||
logger.info(f"Статьи помечены как скачанные: {len(titles_from_db)} записей")
|
||||
except Exception as e:
|
||||
logger.error(f"Ошибка при обновлении download: {e}")
|
||||
|
||||
response = FileResponse(
|
||||
path=archive_path,
|
||||
filename=archive_name,
|
||||
@@ -189,9 +196,27 @@ def setup_routes(app: FastAPI) -> None:
|
||||
response.headers["Access-Control-Expose-Headers"] = "Content-Disposition"
|
||||
|
||||
background_tasks.add_task(cleanup_archive)
|
||||
background_tasks.add_task(mark_as_downloaded)
|
||||
|
||||
return response
|
||||
|
||||
# ==================== Выгрузка (download) ====================
|
||||
|
||||
@app.get("/download_counts", summary="Получить количество статей для выгрузки", response_model=DownloadCountsResponse)
|
||||
async def get_download_counts():
|
||||
"""
|
||||
Возвращает количество статей для каждого поля (tematik, svodka, donesenie, bilutene, status),
|
||||
где значение поля = TRUE и download = FALSE
|
||||
"""
|
||||
return wp.get_download_counts()
|
||||
|
||||
# @app.post("/mark_downloaded", summary="Отметить статьи как скачанные")
|
||||
# async def mark_articles_as_downloaded(titles: List[str]):
|
||||
# """
|
||||
# Обновляет поле download = TRUE для списка заголовков статей
|
||||
# """
|
||||
# return wp.mark_articles_as_downloaded(titles)
|
||||
|
||||
@app.get("/logs", summary="Показать логи")
|
||||
async def get_logs():
|
||||
with open("app.log", "r") as file:
|
||||
|
||||
Reference in New Issue
Block a user