refactor: apply consistent formatting and improve code readability across backend modules
This commit is contained in:
@@ -12,22 +12,37 @@ The application uses SQLite for data storage and APScheduler for scheduling peri
|
||||
import asyncio
|
||||
import os
|
||||
import sqlite3
|
||||
import time
|
||||
from datetime import datetime, timedelta, timezone
|
||||
from http.client import HTTPException
|
||||
from typing import Any, Dict, List, Union
|
||||
|
||||
# Third-party imports
|
||||
import httpx
|
||||
from apscheduler.schedulers.asyncio import AsyncIOScheduler
|
||||
from apscheduler.triggers.interval import IntervalTrigger
|
||||
from fastapi import Depends, FastAPI, Response, status
|
||||
from fastapi import Depends, FastAPI, HTTPException, Response, status
|
||||
from fastapi.staticfiles import StaticFiles
|
||||
|
||||
from backend.app.config import logger, OLLAMA_HOST, CRON_HOURS, MIN_CRON_HOURS, \
|
||||
SYNC_COOLDOWN_MINUTES, LLM_MODEL, OLLAMA_API_TIMEOUT_SECONDS, frontend_path
|
||||
from backend.app.config import (
|
||||
CRON_HOURS,
|
||||
LLM_MODEL,
|
||||
MIN_CRON_HOURS,
|
||||
OLLAMA_API_TIMEOUT_SECONDS,
|
||||
OLLAMA_HOST,
|
||||
SYNC_COOLDOWN_MINUTES,
|
||||
frontend_path,
|
||||
logger,
|
||||
)
|
||||
from backend.app.database import get_db, get_db_write
|
||||
from backend.app.models import TimestampResponse, SuccessResponse, FeedData, ModelStatus, ErrorResponse, HoursResponse, \
|
||||
CronSettings
|
||||
from backend.app.models import (
|
||||
CronSettings,
|
||||
ErrorResponse,
|
||||
FeedData,
|
||||
HoursResponse,
|
||||
ModelStatus,
|
||||
SuccessResponse,
|
||||
TimestampResponse,
|
||||
)
|
||||
from backend.app.services import NewsFetcher
|
||||
|
||||
app = FastAPI(
|
||||
@@ -88,7 +103,8 @@ async def get_news(
|
||||
return [dict(row) for row in db.fetchall()]
|
||||
|
||||
except ValueError:
|
||||
raise HTTPException(400, "Invalid date format. Use ISO format (YYYY-MM-DD)")
|
||||
raise HTTPException(
|
||||
400, "Invalid date format. Use ISO format (YYYY-MM-DD)")
|
||||
except Exception as e:
|
||||
logger.error(f"❌ Error fetching news: {e}")
|
||||
raise HTTPException(
|
||||
@@ -244,8 +260,7 @@ async def manual_sync(db: sqlite3.Cursor = Depends(get_db)):
|
||||
if now - last_sync_time < timedelta(minutes=SYNC_COOLDOWN_MINUTES):
|
||||
return Response(
|
||||
status_code=status.HTTP_429_TOO_MANY_REQUESTS,
|
||||
content="Sync was triggered too recently. Please wait before triggering again."
|
||||
)
|
||||
content="Sync was triggered too recently. Please wait before triggering again.")
|
||||
|
||||
try:
|
||||
task = asyncio.create_task(NewsFetcher.harvest_feeds())
|
||||
@@ -281,7 +296,9 @@ async def get_cron_schedule(db: sqlite3.Cursor = Depends(get_db)):
|
||||
|
||||
|
||||
@app.post("/settings/cron", response_model=HoursResponse)
|
||||
async def update_cron_schedule(data: CronSettings, db: sqlite3.Cursor = Depends(get_db_write)):
|
||||
async def update_cron_schedule(
|
||||
data: CronSettings,
|
||||
db: sqlite3.Cursor = Depends(get_db_write)):
|
||||
"""
|
||||
Update the cron schedule for harvesting news.
|
||||
|
||||
|
Reference in New Issue
Block a user