feat: add admin dashboard, pipeline service, lightbox, and update dependencies

This commit is contained in:
2026-06-09 09:32:10 +08:00
parent 0d293422ac
commit 32978b3fc5
50 changed files with 4054 additions and 1618 deletions
+7 -7
View File
@@ -7,12 +7,12 @@ from xml.sax.saxutils import escape
from fastapi import APIRouter, Depends, Query, Request
from fastapi.responses import Response
from sqlalchemy import text
from sqlalchemy import select
from sqlalchemy.orm import Session, joinedload
from app.config import settings
from app.database import get_db
from app.models import Paper, PaperTag, UserReadingStatus
from app.models import Paper, PaperTag
from app.services.searcher import get_all_tags, search_papers
from app.services.user_data import query_reading_list
from app.utils import templates, today_str
@@ -144,9 +144,9 @@ def rss_feed(
"""RSS 2.0 Feed — 最近 7 天论文。"""
seven_days_ago = date.today() - timedelta(days=7)
query = (
db.query(Paper)
.filter(Paper.paper_date >= seven_days_ago)
stmt = (
select(Paper)
.where(Paper.paper_date >= seven_days_ago)
.options(
joinedload(Paper.authors),
joinedload(Paper.tags),
@@ -156,9 +156,9 @@ def rss_feed(
)
if tag:
query = query.filter(Paper.tags.any(PaperTag.tag == tag))
stmt = stmt.where(Paper.tags.any(PaperTag.tag == tag))
papers = query.all()
papers = db.execute(stmt).unique().scalars().all()
xml = _generate_rss_xml(papers, settings.BASE_URL, tag or None)
return Response(content=xml, media_type="application/xml")