From 6ad78fa8759c615a5a35eff485c0a69e31989967 Mon Sep 17 00:00:00 2001 From: jxxghp Date: Thu, 31 Aug 2023 21:29:28 +0800 Subject: [PATCH] =?UTF-8?q?add=20=E5=89=A7=E9=9B=86=E6=A0=BC=E5=BC=8F?= =?UTF-8?q?=E5=8C=96=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/utils/string.py | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/app/utils/string.py b/app/utils/string.py index 4bcd683b..3f3672df 100644 --- a/app/utils/string.py +++ b/app/utils/string.py @@ -608,3 +608,32 @@ class StringUtils: result.append(f"{start}-{end}") return ",".join(result) + + @staticmethod + def format_ep(nums: list) -> str: + """ + 将剧集列表格式化为连续区间 + """ + nums.sort() # 将数组排序 + + formatted_ranges = [] + start = nums[0] + end = nums[0] + + for i in range(1, len(nums)): + if nums[i] == end + 1: + end = nums[i] + else: + if start == end: + formatted_ranges.append(f"E{start:02d}") + else: + formatted_ranges.append(f"E{start:02d}-E{end:02d}") + start = end = nums[i] + + if start == end: + formatted_ranges.append(f"E{start:02d}") + else: + formatted_ranges.append(f"E{start:02d}-E{end:02d}") + + formatted_string = "、".join(formatted_ranges) + return formatted_string