mirror of
https://github.com/EstrellaXD/Auto_Bangumi.git
synced 2026-03-31 09:11:45 +08:00
feat: add get rss torrents api.
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user