feat: add get rss torrents api.

This commit is contained in:
EstrellaXD
2023-08-12 17:21:06 +08:00
parent 560a0fa97b
commit c40723d53c
3 changed files with 19 additions and 2 deletions

View File

@@ -1,7 +1,6 @@
from typing import Optional
from fastapi import APIRouter, Depends, status
from fastapi.responses import JSONResponse
from fastapi import APIRouter, Depends
from .response import u_response
@@ -65,3 +64,11 @@ async def refresh_rss(rss_id: int, current_user=Depends(get_current_user)):
raise UNAUTHORIZED
with RSSEngine() as engine, DownloadClient() as client:
response = engine.refresh_rss(client, rss_id)
@router.get("/torrent/{rss_id}")
async def get_torrent(rss_id: int, current_user=Depends(get_current_user)):
if not current_user:
raise UNAUTHORIZED
with RSSEngine() as engine:
return engine.get_rss_torrents(rss_id)

View File

@@ -44,6 +44,9 @@ class TorrentDatabase:
def search_all(self) -> list[Torrent]:
return self.session.exec(select(Torrent)).all()
def search_rss(self, rss_id: int) -> list[Torrent]:
return self.session.exec(select(Torrent).where(Torrent.rss_id == rss_id)).all()
def check_new(self, torrents_list: list[Torrent]) -> list[Torrent]:
new_torrents = []
old_torrents = self.search_all()

View File

@@ -28,6 +28,13 @@ class RSSEngine(Database):
def get_combine_rss(self) -> list[RSSItem]:
return self.rss.get_combine()
def get_rss_torrents(self, rss_id: int) -> list[Torrent]:
rss = self.rss.search_id(rss_id)
if rss:
return self.torrent.search_rss(rss_id)
else:
return []
def add_rss(self, rss_link: str, name: str | None = None, combine: bool = True):
if not name:
with RequestContent() as req: