diff --git a/docs/wiki b/docs/wiki index 519e381e..d0bb98f0 160000 --- a/docs/wiki +++ b/docs/wiki @@ -1 +1 @@ -Subproject commit 519e381e8a1add62e76a39181ee61bad02816035 +Subproject commit d0bb98f004fb292519dd56c42238ecb2f034eac9 diff --git a/src/module/api/bangumi.py b/src/module/api/bangumi.py index 8091890a..94c77c7f 100644 --- a/src/module/api/bangumi.py +++ b/src/module/api/bangumi.py @@ -1,3 +1,5 @@ +import logging + from fastapi import Depends, HTTPException, status from fastapi.responses import JSONResponse @@ -7,6 +9,7 @@ from module.models import BangumiData from module.manager import TorrentManager from module.security import get_current_user +logger = logging.getLogger(__name__) @router.get( "/api/v1/bangumi/getAll", tags=["bangumi"], response_model=list[BangumiData] @@ -39,7 +42,11 @@ async def update_rule(data: BangumiData, current_user=Depends(get_current_user)) status_code=status.HTTP_401_UNAUTHORIZED, detail="invalid token" ) with TorrentManager() as torrent: - return torrent.update_rule(data) + try: + return torrent.update_rule(data) + except Exception as e: + logger.error(f"Failed to update rule: {e}") + return JSONResponse(status_code=500, content={"message": "Failed"}) @router.delete("/api/v1/bangumi/deleteRule/{bangumi_id}", tags=["bangumi"]) diff --git a/src/module/database/bangumi.py b/src/module/database/bangumi.py index 9aced49e..04fc1a5a 100644 --- a/src/module/database/bangumi.py +++ b/src/module/database/bangumi.py @@ -179,12 +179,13 @@ class BangumiDatabase(DataConnector): return [self.__db_to_data(x) for x in dict_data] def not_added(self) -> list[BangumiData]: - condition = {"added": 0, "rule_name": None, "save_path": None} - dict_data = self._search_datas( - table_name=self.__table_name, - condition=condition, + self._cursor.execute( + """ + SELECT * FROM bangumi + WHERE added = 0 OR rule_name IS NULL OR save_path IS NULL + """ ) - return [self.__db_to_data(x) for x in dict_data] + return self.__fetch_data() def gen_id(self) -> int: self._cursor.execute( @@ -215,7 +216,24 @@ class BangumiDatabase(DataConnector): return True return False + if __name__ == '__main__': with BangumiDatabase() as db: + db.update_table() + data = BangumiData( + id=1, + title_raw="", + official_title="", + poster_link="", + rss_link=[], + eps_collect=0, + eps_total=0, + eps_update=0, + eps_complete=False, + added=False, + rule_name=None, + save_path=None, + ) + db.insert(data) print(db.not_added()) print(db.not_complete()) \ No newline at end of file