From b85db9631b8b8cec8601b99465d0cd24b9f58b99 Mon Sep 17 00:00:00 2001 From: x1ao4 Date: Fri, 18 Jul 2025 23:26:32 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=A1=BA=E5=BA=8F=E5=91=BD?= =?UTF-8?q?=E5=90=8D=E6=A8=A1=E5=BC=8F=E4=B8=8B=E5=90=8C=E6=97=A5=E6=9C=9F?= =?UTF-8?q?=E5=90=8C=E6=9C=9F=E6=95=B0=EF=BC=88=E6=97=A0=E4=B8=8A=E4=B8=AD?= =?UTF-8?q?=E4=B8=8B=EF=BC=89=E6=96=87=E4=BB=B6=E9=87=8D=E5=91=BD=E5=90=8D?= =?UTF-8?q?=E6=8E=92=E5=BA=8F=E9=94=99=E8=AF=AF=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. 增强 Python 版本排序函数(quark_auto_save.py) - 新增括号内中文数字序号识别:第2期(一)、第2期(二) - 新增括号内阿拉伯数字序号识别:第2期(1)、第2期(2) - 为有括号序号的文件设置段落基础值,确保正确排序 2. 同步更新 JavaScript 版本排序函数(sort_file_by_name.js) - 保持前后端排序逻辑一致 --- app/static/js/sort_file_by_name.js | 18 ++++++++++++++++++ quark_auto_save.py | 16 ++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/app/static/js/sort_file_by_name.js b/app/static/js/sort_file_by_name.js index e0c0c28..d5d4bfd 100644 --- a/app/static/js/sort_file_by_name.js +++ b/app/static/js/sort_file_by_name.js @@ -194,6 +194,24 @@ function sortFileByName(file) { sequence_number = parseInt(arabic_seq_match[1]); } } + } else { + // 如果没有上中下标记,检查是否有括号内的中文数字序号 + // 匹配格式如:第2期(一)、第2期(二)等 + let parentheses_chinese_match = filename.match(/[期集话部篇][((]([一二三四五六七八九十百千万零两]+)[))]/); + if (parentheses_chinese_match) { + let arabic_num = chineseToArabic(parentheses_chinese_match[1]); + if (arabic_num !== null) { + sequence_number = arabic_num; + segment_base = 1; // 给一个基础值,确保有括号序号的文件能正确排序 + } + } else { + // 匹配格式如:第2期(1)、第2期(2)等 + let parentheses_arabic_match = filename.match(/[期集话部篇][((](\d+)[))]/); + if (parentheses_arabic_match) { + sequence_number = parseInt(parentheses_arabic_match[1]); + segment_base = 1; // 给一个基础值,确保有括号序号的文件能正确排序 + } + } } // 组合segment_value:基础值*1000 + 序号值,确保排序正确 diff --git a/quark_auto_save.py b/quark_auto_save.py index 17b796d..8f1b5ab 100644 --- a/quark_auto_save.py +++ b/quark_auto_save.py @@ -251,6 +251,22 @@ def sort_file_by_name(file): arabic_seq_match = re.search(r'[上中下][集期话部篇]?(\d+)', filename) if arabic_seq_match: sequence_number = int(arabic_seq_match.group(1)) + else: + # 如果没有上中下标记,检查是否有括号内的中文数字序号 + # 匹配格式如:第2期(一)、第2期(二)等 + parentheses_chinese_match = re.search(r'[期集话部篇][((]([一二三四五六七八九十百千万零两]+)[))]', filename) + if parentheses_chinese_match: + chinese_num = parentheses_chinese_match.group(1) + arabic_num = chinese_to_arabic(chinese_num) + if arabic_num is not None: + sequence_number = arabic_num + segment_base = 1 # 给一个基础值,确保有括号序号的文件能正确排序 + else: + # 匹配格式如:第2期(1)、第2期(2)等 + parentheses_arabic_match = re.search(r'[期集话部篇][((](\d+)[))]', filename) + if parentheses_arabic_match: + sequence_number = int(parentheses_arabic_match.group(1)) + segment_base = 1 # 给一个基础值,确保有括号序号的文件能正确排序 # 组合segment_value:基础值*1000 + 序号值,确保排序正确 segment_value = segment_base * 1000 + sequence_number