From 8eab38c91ecce8f8dd9eb5f66310d3da8362bb66 Mon Sep 17 00:00:00 2001 From: jxxghp Date: Fri, 1 Sep 2023 07:16:39 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E4=BC=98=E5=8C=96=E7=9B=AE=E5=BD=95?= =?UTF-8?q?=E7=9B=91=E6=8E=A7=E9=80=9A=E7=9F=A5=E6=A0=87=E9=A2=98=E8=AE=A1?= =?UTF-8?q?=E7=AE=97=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/plugins/dirmonitor/__init__.py | 24 ++++-------------------- app/utils/string.py | 10 +++++++--- 2 files changed, 11 insertions(+), 23 deletions(-) diff --git a/app/plugins/dirmonitor/__init__.py b/app/plugins/dirmonitor/__init__.py index ffadfd67..6b24bdac 100644 --- a/app/plugins/dirmonitor/__init__.py +++ b/app/plugins/dirmonitor/__init__.py @@ -23,6 +23,7 @@ from app.log import logger from app.plugins import _PluginBase from app.schemas import Notification, NotificationType, TransferInfo from app.schemas.types import EventType, MediaType +from app.utils.string import StringUtils from app.utils.system import SystemUtils lock = threading.Lock() @@ -453,26 +454,9 @@ class DirMonitor(_PluginBase): if mediainfo.type == MediaType.TV and len(episodes) > 1: # 剧集季 season = "S%s" % str(file_meta.begin_season).rjust(2, "0") - - # 剧集按照升序排序 - episodes.sort() - # 开始、结束index - start = int(episodes[0]) - end = int(episodes[len(episodes) - 1]) - - # 开始结束间所有的元素 1,2,3,4 - all_ele = [i for i in range(start, end + 1)] - # 本次剧集组所有的元素 1,2,4 - episode_ele = [int(e) for e in episodes] - - # 如果本次剧集组所有元素=开始结束间所有元素,则表示区间内 S01 E01-E04 - if all_ele == episode_ele: - season_episode = f"{season} E{str(episodes[0]).rjust(2, '0')}-E{str(episodes[len(episodes) - 1]).rjust(2, '0')}" - else: - # 否则所有剧集组逗号分隔显示 S01 E01、E02、E04 - episodes = ["E%s" % str(episode).rjust(2, "0") for episode in episodes] - season_episode = f"{season} {'、'.join(episodes)}" - + # 季集文本 + season_episode = f"{season} {StringUtils.format_ep(episodes)}" + # 发送消息 self.transferchian.send_transfer_message(meta=file_meta, mediainfo=mediainfo, transferinfo=transferinfo, diff --git a/app/utils/string.py b/app/utils/string.py index 3f3672df..2e58073c 100644 --- a/app/utils/string.py +++ b/app/utils/string.py @@ -610,12 +610,16 @@ class StringUtils: return ",".join(result) @staticmethod - def format_ep(nums: list) -> str: + def format_ep(nums: List[int]) -> str: """ 将剧集列表格式化为连续区间 """ - nums.sort() # 将数组排序 - + if not nums: + return "" + if len(nums) == 1: + return f"E{nums[0]:02d}" + # 将数组升序排序 + nums.sort() formatted_ranges = [] start = nums[0] end = nums[0]