From fcaf3f7210a8b2a280195cec5736dffc2c98e3d6 Mon Sep 17 00:00:00 2001 From: EstrellaXD Date: Tue, 13 Jun 2023 22:26:12 +0800 Subject: [PATCH 1/2] fix: Database error that cannot get not added rules --- docs/wiki | 2 +- src/module/database/bangumi.py | 28 +++++++++++++++++++++++----- 2 files changed, 24 insertions(+), 6 deletions(-) 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/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 From 88f9b50e9abde064c394ab7a009a053abe1ad214 Mon Sep 17 00:00:00 2001 From: EstrellaXD Date: Tue, 13 Jun 2023 22:34:00 +0800 Subject: [PATCH 2/2] feat: add try in api --- src/module/api/bangumi.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) 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"])