fix 目录监控消息重复发送

This commit is contained in:
jxxghp
2024-12-30 18:57:45 +08:00
parent 873f80d534
commit dfbe8a2c0e
+32 -26
View File
@@ -34,6 +34,7 @@ from app.utils.string import StringUtils
downloader_lock = threading.Lock() downloader_lock = threading.Lock()
job_lock = threading.Lock() job_lock = threading.Lock()
task_lock = threading.Lock()
class JobManager: class JobManager:
@@ -460,31 +461,35 @@ class TransferChain(ChainBase, metaclass=Singleton):
# 整理完成且有成功的任务时 # 整理完成且有成功的任务时
if self.jobview.is_finished(task): if self.jobview.is_finished(task):
# 发送通知 with task_lock:
if transferinfo.need_notify: # 发送通知
se_str = None if transferinfo.need_notify:
if task.mediainfo.type == MediaType.TV: se_str = None
season_episodes = self.jobview.season_episodes(task.mediainfo, task.meta.begin_season) if task.mediainfo.type == MediaType.TV:
if season_episodes: season_episodes = self.jobview.season_episodes(task.mediainfo, task.meta.begin_season)
se_str = f"{task.meta.season} {StringUtils.format_ep(season_episodes)}" if season_episodes:
else: se_str = f"{task.meta.season} {StringUtils.format_ep(season_episodes)}"
se_str = f"{task.meta.season}" else:
# 更新文件数量 se_str = f"{task.meta.season}"
transferinfo.file_count = self.jobview.count(task.mediainfo, task.meta.begin_season) or 1 # 更新文件数量
# 更新文件大小 transferinfo.file_count = self.jobview.count(task.mediainfo, task.meta.begin_season) or 1
transferinfo.total_size = self.jobview.size(task.mediainfo, # 更新文件大小
task.meta.begin_season) or task.fileitem.size transferinfo.total_size = self.jobview.size(task.mediainfo,
self.send_transfer_message(meta=task.meta, task.meta.begin_season) or task.fileitem.size
mediainfo=task.mediainfo, self.send_transfer_message(meta=task.meta,
transferinfo=transferinfo, mediainfo=task.mediainfo,
season_episode=se_str) transferinfo=transferinfo,
# 刮削事件 season_episode=se_str)
if transferinfo.need_scrape: # 刮削事件
self.eventmanager.send_event(EventType.MetadataScrape, { if transferinfo.need_scrape:
'meta': task.meta, self.eventmanager.send_event(EventType.MetadataScrape, {
'mediainfo': task.mediainfo, 'meta': task.meta,
'fileitem': transferinfo.target_diritem 'mediainfo': task.mediainfo,
}) 'fileitem': transferinfo.target_diritem
})
# 移除已完成的任务
self.jobview.remove_job(task)
return True, "" return True, ""
@@ -497,7 +502,8 @@ class TransferChain(ChainBase, metaclass=Singleton):
if not task: if not task:
return return
# 维护整理任务视图 # 维护整理任务视图
self.jobview.add_task(task) with task_lock:
self.jobview.add_task(task)
# 添加到队列 # 添加到队列
self._queue.put(TransferQueue( self._queue.put(TransferQueue(
task=task, task=task,