fix 目录监控消息通知剧集集数错误

This commit is contained in:
thsrite 2023-08-26 10:51:12 +08:00
parent 624365542c
commit f8d5e3f438
2 changed files with 34 additions and 5 deletions

View File

@ -396,11 +396,12 @@ class TransferChain(ChainBase):
) )
return his return his
def send_transfer_message(self, meta: MetaBase, mediainfo: MediaInfo, transferinfo: TransferInfo): def send_transfer_message(self, meta: MetaBase, mediainfo: MediaInfo, transferinfo: TransferInfo,
season_episode: str = None):
""" """
发送入库成功的消息 发送入库成功的消息
""" """
msg_title = f"{mediainfo.title_year} {meta.season_episode} 已入库" msg_title = f"{mediainfo.title_year} {meta.season_episode if not season_episode else season_episode} 已入库"
if mediainfo.vote_average: if mediainfo.vote_average:
msg_str = f"评分:{mediainfo.vote_average},类型:{mediainfo.type.value}" msg_str = f"评分:{mediainfo.vote_average},类型:{mediainfo.type.value}"
else: else:

View File

@ -423,22 +423,50 @@ class DirMonitor(_PluginBase):
# 汇总处理文件总大小 # 汇总处理文件总大小
total_size = 0 total_size = 0
file_count = 0 file_count = 0
# 剧集汇总
episodes = []
for file in media_files: for file in media_files:
transferinfo = file.get("transferinfo") transferinfo = file.get("transferinfo")
total_size += transferinfo.total_size total_size += transferinfo.total_size
file_count += 1 file_count += 1
file_meta = file.get("file_meta")
if file_meta and file_meta.begin_episode:
episodes.append(file_meta.begin_episode)
transferinfo.total_size = total_size transferinfo.total_size = total_size
# 汇总处理文件数量 # 汇总处理文件数量
transferinfo.file_count = file_count transferinfo.file_count = file_count
# 剧集季集信息 S01 E01-E04 || S01 E01、E02、E04
season_episode = None
# 处理文件多,说明是剧集,显示季入库消息 # 处理文件多,说明是剧集,显示季入库消息
if mediainfo.type == MediaType.TV and file_count > 1: if mediainfo.type == MediaType.TV and file_count > 1:
file_meta.begin_episode = file_meta.begin_episode # 剧集季
file_meta.end_episode = media_files[-1].get("file_meta").begin_episode season = file_meta.begin_season
# 剧集按照升序排序
episodes.sort()
# 开始、结束index
start = int(episodes[0][-1:])
end = int(episodes[len(episodes) - 1][-1:])
# 开始结束间所有的元素 1,2,3,4
all_ele = [i for i in range(start, end + 1)]
# 本次剧集组所有的元素 1,2,4
episode_ele = [int(e.replace("E", "")) for e in episodes]
# 如果本次剧集组所有元素=开始结束间所有元素,则表示区间内 S01 E01-E04
if all_ele == episode_ele:
season_episode = f"{season} {episodes[start - 1]}-{episodes[end - 1]}"
else:
# 否则所有剧集组逗号分隔显示 S01 E01、E02、E04
season_episode = f"{season} {''.join(episodes)}"
self.transferchian.send_transfer_message(meta=file_meta, self.transferchian.send_transfer_message(meta=file_meta,
mediainfo=mediainfo, mediainfo=mediainfo,
transferinfo=transferinfo) season_episode=season_episode)
# 发送完消息移出key # 发送完消息移出key
del self._medias[medis_title_year_season] del self._medias[medis_title_year_season]
continue continue