fix 通知标题计算方法

This commit is contained in:
jxxghp 2023-09-01 07:29:49 +08:00
parent 8eab38c91e
commit 7cfd05a7a5
2 changed files with 32 additions and 34 deletions

View File

@ -2,7 +2,7 @@ import json
import shutil
import threading
from pathlib import Path
from typing import List, Optional, Tuple, Union
from typing import List, Optional, Tuple, Union, Dict
from sqlalchemy.orm import Session
@ -115,13 +115,15 @@ class TransferChain(ChainBase):
return False, f"{path.name} 没有找到可转移的媒体文件"
# 汇总错误信息
err_msgs = []
err_msgs: List[str] = []
# 汇总季集清单
season_episodes: Dict[Tuple, List[int]] = []
# 汇总元数据
metas = {}
metas: Dict[Tuple, MetaBase] = {}
# 汇总媒体信息
medias = {}
medias: Dict[Tuple, MediaInfo] = {}
# 汇总转移信息
transfers = {}
transfers: Dict[Tuple, TransferInfo] = {}
# 有集自定义格式
formaterHandler = FormatParser(eformat=epformat.format,
@ -250,30 +252,22 @@ class TransferChain(ChainBase):
continue
# 汇总信息
if file_mediainfo.tmdb_id not in medias:
mkey = (file_mediainfo.tmdb_id, meta.begin_season)
if mkey not in medias:
# 新增信息
metas[file_mediainfo.tmdb_id] = file_meta
medias[file_mediainfo.tmdb_id] = file_mediainfo
transfers[file_mediainfo.tmdb_id] = transferinfo
metas[mkey] = file_meta
medias[mkey] = file_mediainfo
season_episodes[mkey] = file_meta.episode_list
transfers[mkey] = transferinfo
else:
# 合并元数据集
if (metas[file_mediainfo.tmdb_id].begin_episode or 0) > (file_meta.begin_episode or 0):
metas[file_mediainfo.tmdb_id].begin_episode = file_meta.begin_episode
if (metas[file_mediainfo.tmdb_id].end_episode or 0) < (file_meta.end_episode or 0):
metas[file_mediainfo.tmdb_id].end_episode = file_meta.end_episode
metas[file_mediainfo.tmdb_id].total_episode += file_meta.total_episode
# 合并元数据季
if (metas[file_mediainfo.tmdb_id].begin_season or 0) > (file_meta.begin_season or 0):
metas[file_mediainfo.tmdb_id].begin_season = file_meta.begin_season
if (metas[file_mediainfo.tmdb_id].end_season or 0) < (file_meta.end_season or 0):
metas[file_mediainfo.tmdb_id].end_season = file_meta.end_season
metas[file_mediainfo.tmdb_id].total_season += file_meta.total_season
# 合并季集清单
season_episodes[mkey] = list(set(season_episodes[mkey] + file_meta.episode_list))
# 合并转移数据
transfers[file_mediainfo.tmdb_id].file_count += transferinfo.file_count
transfers[file_mediainfo.tmdb_id].file_list.extend(transferinfo.file_list)
transfers[file_mediainfo.tmdb_id].file_list_new.extend(transferinfo.file_list_new)
transfers[file_mediainfo.tmdb_id].fail_list.extend(transferinfo.fail_list)
transfers[file_mediainfo.tmdb_id].total_size += transferinfo.total_size
transfers[mkey].file_count += transferinfo.file_count
transfers[mkey].total_size += transferinfo.total_size
transfers[mkey].file_list.extend(transferinfo.file_list)
transfers[mkey].file_list_new.extend(transferinfo.file_list_new)
transfers[mkey].fail_list.extend(transferinfo.fail_list)
# 新增转移成功历史记录
self.__insert_sucess_history(
@ -297,15 +291,21 @@ class TransferChain(ChainBase):
key=ProgressKey.FileTransfer)
# 目录或文件转移完成
for tmdbid, media in medias.items():
for mkey, media in medias.items():
meta = metas[mkey]
transferinfo = transfers[mkey]
# 刷新媒体库
self.refresh_mediaserver(mediainfo=media, file_path=transfers[tmdbid].target_path)
self.refresh_mediaserver(mediainfo=media, file_path=transferinfo.target_path)
# 刮削
self.scrape_metadata(path=transfers[tmdbid].target_path, mediainfo=media)
self.scrape_metadata(path=transferinfo.target_path, mediainfo=media)
# 发送通知
self.send_transfer_message(meta=metas[tmdbid],
se_str = None
if mediainfo.type == MediaType.TV:
se_str = f"{meta.season} {StringUtils.format_ep(season_episodes[mkey])}"
self.send_transfer_message(meta=meta,
mediainfo=media,
transferinfo=transfers[tmdbid])
transferinfo=transferinfo,
season_episode=se_str)
# 结束进度
logger.info(f"{path} 转移完成,共 {total_num} 个文件,"
f"成功 {total_num - len(err_msgs)} 个,失败 {len(err_msgs)}")

View File

@ -452,10 +452,8 @@ class DirMonitor(_PluginBase):
season_episode = None
# 处理文件多,说明是剧集,显示季入库消息
if mediainfo.type == MediaType.TV and len(episodes) > 1:
# 剧集季
season = "S%s" % str(file_meta.begin_season).rjust(2, "0")
# 季集文本
season_episode = f"{season} {StringUtils.format_ep(episodes)}"
season_episode = f"{file_meta.season} {StringUtils.format_ep(episodes)}"
# 发送消息
self.transferchian.send_transfer_message(meta=file_meta,
mediainfo=mediainfo,