mirror of
https://github.com/EstrellaXD/Auto_Bangumi.git
synced 2026-03-31 01:01:31 +08:00
webui: add rss manage function.
This commit is contained in:
@@ -30,6 +30,15 @@ async def add_rss(rss: RSSItem, current_user=Depends(get_current_user)):
|
||||
return u_response(result)
|
||||
|
||||
|
||||
@router.post(path="/enable/many", response_model=APIResponse)
|
||||
async def enable_many_rss(rss_ids: list[int], current_user=Depends(get_current_user)):
|
||||
if not current_user:
|
||||
raise UNAUTHORIZED
|
||||
with RSSEngine() as engine:
|
||||
result = engine.enable_list(rss_ids)
|
||||
return u_response(result)
|
||||
|
||||
|
||||
@router.delete(path="/delete/{rss_id}", response_model=APIResponse)
|
||||
async def delete_rss(rss_id: int, current_user=Depends(get_current_user)):
|
||||
if not current_user:
|
||||
@@ -47,6 +56,15 @@ async def delete_rss(rss_id: int, current_user=Depends(get_current_user)):
|
||||
)
|
||||
|
||||
|
||||
@router.post(path="/delete/many", response_model=APIResponse)
|
||||
async def delete_many_rss(rss_ids: list[int], current_user=Depends(get_current_user)):
|
||||
if not current_user:
|
||||
raise UNAUTHORIZED
|
||||
with RSSEngine() as engine:
|
||||
result = engine.delete_list(rss_ids)
|
||||
return u_response(result)
|
||||
|
||||
|
||||
@router.patch(path="/disable/{rss_id}", response_model=APIResponse)
|
||||
async def disable_rss(rss_id: int, current_user=Depends(get_current_user)):
|
||||
if not current_user:
|
||||
@@ -69,16 +87,8 @@ async def disable_many_rss(rss_ids: list[int], current_user=Depends(get_current_
|
||||
if not current_user:
|
||||
raise UNAUTHORIZED
|
||||
with RSSEngine() as engine:
|
||||
if engine.disable_list(rss_ids):
|
||||
return JSONResponse(
|
||||
status_code=200,
|
||||
content={"msg_en": "Disable RSS successfully.", "msg_zh": "禁用 RSS 成功。"},
|
||||
)
|
||||
else:
|
||||
return JSONResponse(
|
||||
status_code=406,
|
||||
content={"msg_en": "Disable RSS failed.", "msg_zh": "禁用 RSS 失败。"},
|
||||
)
|
||||
result = engine.disable_list(rss_ids)
|
||||
return u_response(result)
|
||||
|
||||
|
||||
@router.patch(path="/update/{rss_id}", response_model=APIResponse)
|
||||
|
||||
@@ -44,6 +44,17 @@ class RSSDatabase:
|
||||
self.session.refresh(db_data)
|
||||
return True
|
||||
|
||||
def enable(self, _id: int):
|
||||
statement = select(RSSItem).where(RSSItem.id == _id)
|
||||
db_data = self.session.exec(statement).first()
|
||||
if not db_data:
|
||||
return False
|
||||
db_data.enabled = True
|
||||
self.session.add(db_data)
|
||||
self.session.commit()
|
||||
self.session.refresh(db_data)
|
||||
return True
|
||||
|
||||
def disable(self, _id: int):
|
||||
statement = select(RSSItem).where(RSSItem.id == _id)
|
||||
db_data = self.session.exec(statement).first()
|
||||
|
||||
@@ -62,6 +62,32 @@ class RSSEngine(Database):
|
||||
def disable_list(self, rss_id_list: list[int]):
|
||||
for rss_id in rss_id_list:
|
||||
self.rss.disable(rss_id)
|
||||
return ResponseModel(
|
||||
status=True,
|
||||
status_code=200,
|
||||
msg_en="Disable RSS successfully.",
|
||||
msg_zh="禁用 RSS 成功。",
|
||||
)
|
||||
|
||||
def enable_list(self, rss_id_list: list[int]):
|
||||
for rss_id in rss_id_list:
|
||||
self.rss.enable(rss_id)
|
||||
return ResponseModel(
|
||||
status=True,
|
||||
status_code=200,
|
||||
msg_en="Enable RSS successfully.",
|
||||
msg_zh="启用 RSS 成功。",
|
||||
)
|
||||
|
||||
def delete_list(self, rss_id_list: list[int]):
|
||||
for rss_id in rss_id_list:
|
||||
self.rss.delete(rss_id)
|
||||
return ResponseModel(
|
||||
status=True,
|
||||
status_code=200,
|
||||
msg_en="Delete RSS successfully.",
|
||||
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