From 41636395ff88ee4d38098a95c6ba21245669df04 Mon Sep 17 00:00:00 2001 From: jxxghp Date: Sun, 5 Jan 2025 12:35:21 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E6=95=B4=E7=90=86=E5=85=A5=E5=BA=93?= =?UTF-8?q?=E6=B6=88=E6=81=AF=E7=94=A8=E6=88=B7=E9=9A=94=E7=A6=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/chain/transfer.py | 34 ++++++++++++++++++++++------------ app/schemas/transfer.py | 1 + 2 files changed, 23 insertions(+), 12 deletions(-) diff --git a/app/chain/transfer.py b/app/chain/transfer.py index bc85bc05..603c9821 100644 --- a/app/chain/transfer.py +++ b/app/chain/transfer.py @@ -414,6 +414,7 @@ class TransferChain(ChainBase, metaclass=Singleton): title=f"{task.mediainfo.title_year} {task.meta.season_episode} 入库失败!", text=f"原因:{transferinfo.message or '未知'}", image=task.mediainfo.get_message_image(), + username=task.username, link=settings.MP_DOMAIN('#/history') )) # 整理失败 @@ -479,7 +480,8 @@ class TransferChain(ChainBase, metaclass=Singleton): self.send_transfer_message(meta=task.meta, mediainfo=task.mediainfo, transferinfo=transferinfo, - season_episode=se_str) + season_episode=se_str, + username=task.username) # 刮削事件 if transferinfo.need_scrape: self.eventmanager.send_event(EventType.MetadataScrape, { @@ -608,23 +610,29 @@ class TransferChain(ChainBase, metaclass=Singleton): """ # 识别 if not task.mediainfo: + mediainfo = None download_history = task.download_history - # 识别媒体信息 - if download_history and (download_history.tmdbid or download_history.doubanid): - # 下载记录中已存在识别信息 - mediainfo: MediaInfo = self.recognize_media(mtype=MediaType(download_history.type), - tmdbid=download_history.tmdbid, - doubanid=download_history.doubanid) - if mediainfo: - # 更新自定义媒体类别 - if download_history.media_category: - mediainfo.category = download_history.media_category + # 下载用户 + if download_history: + task.username = download_history.username + # 识别媒体信息 + if download_history.tmdbid or download_history.doubanid: + # 下载记录中已存在识别信息 + mediainfo: MediaInfo = self.recognize_media(mtype=MediaType(download_history.type), + tmdbid=download_history.tmdbid, + doubanid=download_history.doubanid) + if mediainfo: + # 更新自定义媒体类别 + if download_history.media_category: + mediainfo.category = download_history.media_category else: # 识别媒体信息 mediainfo = self.mediachain.recognize_by_meta(task.meta) + # 更新媒体图片 if mediainfo: self.obtain_images(mediainfo=mediainfo) + if not mediainfo: # 新增整理失败历史记录 his = self.transferhis.add_fail( @@ -638,6 +646,7 @@ class TransferChain(ChainBase, metaclass=Singleton): mtype=NotificationType.Manual, title=f"{task.fileitem.name} 未识别到媒体信息,无法入库!", text=f"回复:```\n/redo {his.id} [tmdbid]|[类型]\n``` 手动识别整理。", + username=task.username, link=settings.MP_DOMAIN('#/history') )) # 任务失败,直接移除task @@ -1292,7 +1301,7 @@ class TransferChain(ChainBase, metaclass=Singleton): return state, errmsg def send_transfer_message(self, meta: MetaBase, mediainfo: MediaInfo, - transferinfo: TransferInfo, season_episode: str = None): + transferinfo: TransferInfo, season_episode: str = None, username: str = None): """ 发送入库成功的消息 """ @@ -1313,4 +1322,5 @@ class TransferChain(ChainBase, metaclass=Singleton): self.post_message(Notification( mtype=NotificationType.Organize, title=msg_title, text=msg_str, image=mediainfo.get_message_image(), + username=username, link=settings.MP_DOMAIN('#/history'))) diff --git a/app/schemas/transfer.py b/app/schemas/transfer.py index 05e2c7c2..d7dcca2f 100644 --- a/app/schemas/transfer.py +++ b/app/schemas/transfer.py @@ -58,6 +58,7 @@ class TransferTask(BaseModel): library_type_folder: Optional[bool] = False library_category_folder: Optional[bool] = False episodes_info: Optional[List[TmdbEpisode]] = None + username: Optional[str] = None downloader: Optional[str] = None download_hash: Optional[str] = None download_history: Optional[DownloadHistory] = None