From c438cd5713d52cd1df0813d50a02cac41705eef1 Mon Sep 17 00:00:00 2001 From: Akimio521 Date: Sat, 31 Aug 2024 11:52:50 +0800 Subject: [PATCH 1/2] =?UTF-8?q?feat:=E6=89=8B=E5=8A=A8=E8=BD=AC=E7=A7=BB?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E5=A2=9E=E5=8A=A0=E4=BB=8E=E5=8E=86=E5=8F=B2?= =?UTF-8?q?=E8=AE=B0=E5=BD=95=E8=8E=B7=E5=8F=96=E7=9B=B8=E5=85=B3=E4=BF=A1?= =?UTF-8?q?=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/endpoints/transfer.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/app/api/endpoints/transfer.py b/app/api/endpoints/transfer.py index 7529bcf5..56e79744 100644 --- a/app/api/endpoints/transfer.py +++ b/app/api/endpoints/transfer.py @@ -63,6 +63,7 @@ def manual_transfer(fileitem: FileItem = None, episode_offset: int = 0, min_filesize: int = 0, scrape: bool = None, + from_history: bool = None, db: Session = Depends(get_db), _: schemas.TokenPayload = Depends(get_current_active_superuser)) -> Any: """ @@ -82,6 +83,7 @@ def manual_transfer(fileitem: FileItem = None, :param episode_offset: 剧集识别偏移量 :param min_filesize: 最小文件大小(MB) :param scrape: 是否刮削元数据 + :param from_history: 从历史记录中获取tmdbid、season、episode_detail等信息 :param db: 数据库 :param _: Token校验 """ @@ -106,6 +108,15 @@ def manual_transfer(fileitem: FileItem = None, # 删除旧的已整理文件 dest_fileitem = FileItem(**json.loads(history.dest_fileitem)) transfer.delete_files(dest_fileitem) + + # 从历史数据获取信息 + if from_history: + type_name = history.type if history.type else type_name + tmdbid = int(history.tmdbid) if history.tmdbid else tmdbid + doubanid = str(history.doubanid) if history.doubanid else doubanid + season = int(str(history.seasons).replace("S", "")) if history.seasons else season + episode_detail = str(history.episodes) if history.episodes else episode_detail + elif fileitem: src_fileitem = fileitem else: From a13d32c17f108556c09a34d1ebee99aaf55e7be8 Mon Sep 17 00:00:00 2001 From: Akimio521 Date: Sat, 31 Aug 2024 13:32:28 +0800 Subject: [PATCH 2/2] =?UTF-8?q?fix:=E5=B0=86history.episodes=E8=BD=AC?= =?UTF-8?q?=E6=8D=A2=E6=88=90episode=5Fdetail?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/endpoints/transfer.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/app/api/endpoints/transfer.py b/app/api/endpoints/transfer.py index 56e79744..b9a2a721 100644 --- a/app/api/endpoints/transfer.py +++ b/app/api/endpoints/transfer.py @@ -115,7 +115,17 @@ def manual_transfer(fileitem: FileItem = None, tmdbid = int(history.tmdbid) if history.tmdbid else tmdbid doubanid = str(history.doubanid) if history.doubanid else doubanid season = int(str(history.seasons).replace("S", "")) if history.seasons else season - episode_detail = str(history.episodes) if history.episodes else episode_detail + if history.episodes: + if "-" in str(history.episodes): + # E01-E03多集合并 + episode_start, episode_end = str(history.episodes).split("-") + episode_list: list[int] = [] + for i in range(int(episode_start.replace("E", "")), int(episode_end.replace("E", "")) + 1): + episode_list.append(i) + episode_detail = ",".join(str(e) for e in episode_list) + else: + # E01单集 + episode_detail = str(history.episodes).replace("E", "") elif fileitem: src_fileitem = fileitem