mirror of
https://github.com/EstrellaXD/Auto_Bangumi.git
synced 2026-04-13 16:49:48 +08:00
feat: add multiply manage api.
This commit is contained in:
@@ -48,6 +48,17 @@ async def delete_rule(
|
||||
return u_response(resp)
|
||||
|
||||
|
||||
@router.delete("/delete/many/{bangumi_id}")
|
||||
async def delete_many_rule(
|
||||
bangumi_id: list, file: bool = False, current_user=Depends(get_current_user)
|
||||
):
|
||||
if not current_user:
|
||||
raise UNAUTHORIZED
|
||||
with TorrentManager() as manager:
|
||||
for i in bangumi_id:
|
||||
manager.delete_rule(i, file)
|
||||
|
||||
|
||||
@router.delete("/disable/{bangumi_id}")
|
||||
async def disable_rule(
|
||||
bangumi_id: str, file: bool = False, current_user=Depends(get_current_user)
|
||||
@@ -58,6 +69,17 @@ async def disable_rule(
|
||||
return manager.disable_rule(bangumi_id, file)
|
||||
|
||||
|
||||
@router.delete("/disable/many/{bangumi_id}")
|
||||
async def disable_many_rule(
|
||||
bangumi_id: list, file: bool = False, current_user=Depends(get_current_user)
|
||||
):
|
||||
if not current_user:
|
||||
raise UNAUTHORIZED
|
||||
with TorrentManager() as manager:
|
||||
for i in bangumi_id:
|
||||
manager.disable_rule(i, file)
|
||||
|
||||
|
||||
@router.get("/enable/{bangumi_id}")
|
||||
async def enable_rule(bangumi_id: str, current_user=Depends(get_current_user)):
|
||||
if not current_user:
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
from typing import Optional
|
||||
|
||||
from fastapi import APIRouter, Depends, HTTPException, status
|
||||
from fastapi.responses import JSONResponse
|
||||
|
||||
from .response import u_response
|
||||
|
||||
from module.models import RSSItem, RSSUpdate
|
||||
from module.rss import RSSEngine
|
||||
from module.security.api import get_current_user, UNAUTHORIZED
|
||||
@@ -18,6 +22,17 @@ async def get_rss(current_user=Depends(get_current_user)):
|
||||
return engine.rss.search_all()
|
||||
|
||||
|
||||
@router.post("/add")
|
||||
async def add_rss(
|
||||
url: str, name: Optional[str], combine: bool, current_user=Depends(get_current_user)
|
||||
):
|
||||
if not current_user:
|
||||
raise UNAUTHORIZED
|
||||
with RSSEngine() as engine:
|
||||
result = engine.add_rss(url, name, combine)
|
||||
return u_response(result)
|
||||
|
||||
|
||||
@router.delete("/delete/{rss_id}")
|
||||
async def delete_rss(rss_id: int, current_user=Depends(get_current_user)):
|
||||
if not current_user:
|
||||
|
||||
@@ -17,12 +17,13 @@ class RSSDatabase:
|
||||
db_data = self.session.exec(statement).first()
|
||||
if db_data:
|
||||
logger.debug(f"RSS Item {data.url} already exists.")
|
||||
return
|
||||
return False
|
||||
else:
|
||||
logger.debug(f"RSS Item {data.url} not exists, adding...")
|
||||
self.session.add(data)
|
||||
self.session.commit()
|
||||
self.session.refresh(data)
|
||||
return True
|
||||
|
||||
def add_all(self, data: list[RSSItem]):
|
||||
for item in data:
|
||||
|
||||
@@ -3,7 +3,7 @@ import logging
|
||||
|
||||
from typing import Optional
|
||||
|
||||
from module.models import Bangumi, RSSItem, Torrent
|
||||
from module.models import Bangumi, RSSItem, Torrent, ResponseModel
|
||||
from module.network import RequestContent
|
||||
from module.downloader import DownloadClient
|
||||
|
||||
@@ -33,7 +33,20 @@ class RSSEngine(Database):
|
||||
with RequestContent() as req:
|
||||
name = req.get_rss_title(rss_link)
|
||||
rss_data = RSSItem(item_path=name, url=rss_link, combine=combine)
|
||||
self.rss.add(rss_data)
|
||||
if self.rss.add(rss_data):
|
||||
return ResponseModel(
|
||||
status=True,
|
||||
status_code=200,
|
||||
msg_en="RSS added successfully.",
|
||||
msg_zh="RSS 添加成功。",
|
||||
)
|
||||
else:
|
||||
return ResponseModel(
|
||||
status=False,
|
||||
status_code=400,
|
||||
msg_en="RSS added failed.",
|
||||
msg_zh="RSS 添加失败。",
|
||||
)
|
||||
|
||||
def pull_rss(self, rss_item: RSSItem) -> list[Torrent]:
|
||||
torrents = self._get_torrents(rss_item)
|
||||
|
||||
Reference in New Issue
Block a user