修复模态框重命名列排序中不同位数的集数排序异常的问题

修复了模态框重命名列排序时,同一文件夹内存在不同位数的集数(如 2 位数和 3 位数)时无法正确排序的问题
This commit is contained in:
x1ao4 2025-07-02 03:14:43 +08:00
parent ecf4a26a53
commit 85cd4d3a9c
2 changed files with 26 additions and 6 deletions

View File

@ -864,9 +864,11 @@ def get_share_detail():
extension = os.path.splitext(file["file_name"])[1]
# 从文件名中提取集号
episode_num = extract_episode_number(file["file_name"], episode_patterns=episode_patterns)
if episode_num is not None:
file["file_name_re"] = episode_pattern.replace("[]", f"{episode_num:02d}") + extension
# 添加episode_number字段用于前端排序
file["episode_number"] = episode_num
else:
# 没有提取到集号,显示无法识别的提示
file["file_name_re"] = "× 无法识别剧集编号"
@ -1748,7 +1750,8 @@ def preview_rename():
preview_results.append({
"original_name": file["file_name"],
"new_name": new_name,
"file_id": file["fid"]
"file_id": file["fid"],
"episode_number": episode_num # 添加集数字段用于前端排序
})
else:
# 没有提取到集号,显示无法识别的提示

View File

@ -3910,8 +3910,15 @@
let aValue, bValue;
// 对于重命名列优先使用episode_number进行数值排序如果存在
if (a.episode_number !== undefined && b.episode_number !== undefined) {
aValue = a.episode_number;
bValue = b.episode_number;
// 确保进行数值比较
aValue = parseInt(a.episode_number, 10);
bValue = parseInt(b.episode_number, 10);
// 如果解析失败,回退到字符串比较
if (isNaN(aValue) || isNaN(bValue)) {
aValue = String(a.episode_number);
bValue = String(b.episode_number);
}
} else {
// 否则使用重命名后的文件名进行拼音排序
aValue = pinyinPro.pinyin(a.file_name_re || '', { toneType: 'none', type: 'string' }).toLowerCase();
@ -4009,8 +4016,15 @@
let aValue, bValue;
// 对于重命名列优先使用episode_number进行数值排序如果存在
if (a.episode_number !== undefined && b.episode_number !== undefined) {
aValue = a.episode_number;
bValue = b.episode_number;
// 确保进行数值比较
aValue = parseInt(a.episode_number, 10);
bValue = parseInt(b.episode_number, 10);
// 如果解析失败,回退到字符串比较
if (isNaN(aValue) || isNaN(bValue)) {
aValue = String(a.episode_number);
bValue = String(b.episode_number);
}
} else {
// 否则使用重命名后的文件名进行拼音排序
aValue = pinyinPro.pinyin(a.file_name_re || '', { toneType: 'none', type: 'string' }).toLowerCase();
@ -4917,8 +4931,11 @@
if (previewItem) {
// 设置重命名字段
file.file_name_re = previewItem.new_name;
// 设置集数字段用于排序
file.episode_number = previewItem.episode_number;
} else {
file.file_name_re = null;
file.episode_number = undefined;
}
});