diff --git a/dist/jhs-enhance.user.js b/dist/jhs-enhance.user.js
index bb8fffd..963b7e4 100644
--- a/dist/jhs-enhance.user.js
+++ b/dist/jhs-enhance.user.js
@@ -8082,7 +8082,6 @@ ${err.stack}` : "");
}
return fileId;
}
-
//TODO: 暂时没有删除离线任务
// async deleteOfflineTasksByKeyword(keyword) {
// try {
@@ -8747,8 +8746,14 @@ ${err.stack}` : "");
}
}
}
-
showDeleteDialog(carNum2, matchList, afterDelete) {
+ const upperCarNum = carNum2.toUpperCase();
+ const safeMatchList = matchList.filter((m) => m.name.toUpperCase().includes(upperCarNum));
+ const unsafeCount = matchList.length - safeMatchList.length;
+ if (safeMatchList.length === 0) {
+ show.error(`作品 "${carNum2}" 匹配到的 ${matchList.length} 个项目均不含番号,无法安全删除。请手动在115中删除。`);
+ return;
+ }
const formatSize = (bytes) => {
if (!bytes) return "-";
const units = ["B", "KB", "MB", "GB", "TB"];
@@ -8757,10 +8762,13 @@ ${err.stack}` : "");
return size.toFixed(2) + " " + units[unit];
};
let html = '
';
- html += `
作品 ${carNum2} 匹配到 ${matchList.length} 个文件夹:
`;
+ html += `
作品 ${carNum2} 匹配到 ${matchList.length} 个文件夹(可删除 ${safeMatchList.length} 个):
`;
+ if (unsafeCount > 0) {
+ html += `
⚠ 已自动排除 ${unsafeCount} 个目录名不含番号的项目,防止误删
`;
+ }
html += '
全选
';
- for (let i = 0; i < matchList.length; i++) {
- const m = matchList[i];
+ for (let i = 0; i < safeMatchList.length; i++) {
+ const m = safeMatchList[i];
html += `
@@ -8794,7 +8802,7 @@ ${err.stack}` : "");
let deletedCount = 0;
try {
for (const i of selected) {
- const m = matchList[i];
+ const m = safeMatchList[i];
const result = await gmHttp.postForm("https://webapi.115.com/rb/delete", {
pid: m.dirId,
"fid[0]": m.folderId
diff --git a/src/plugins/wangpan-115.js b/src/plugins/wangpan-115.js
index 21b8703..16a1764 100644
--- a/src/plugins/wangpan-115.js
+++ b/src/plugins/wangpan-115.js
@@ -374,6 +374,13 @@ const _WangPan115MatchPlugin = class _WangPan115MatchPlugin extends BasePlugin {
}
showDeleteDialog(carNum2, matchList, afterDelete) {
+ const upperCarNum = carNum2.toUpperCase();
+ const safeMatchList = matchList.filter(m => m.name.toUpperCase().includes(upperCarNum));
+ const unsafeCount = matchList.length - safeMatchList.length;
+ if (safeMatchList.length === 0) {
+ show.error(`作品 "${carNum2}" 匹配到的 ${matchList.length} 个项目均不含番号,无法安全删除。请手动在115中删除。`);
+ return;
+ }
const formatSize = bytes => {
if (!bytes) return "-";
const units = ["B", "KB", "MB", "GB", "TB"];
@@ -382,10 +389,13 @@ const _WangPan115MatchPlugin = class _WangPan115MatchPlugin extends BasePlugin {
return size.toFixed(2) + " " + units[unit];
};
let html = '';
- html += `
作品 ${carNum2} 匹配到 ${matchList.length} 个文件夹:
`;
+ html += `
作品 ${carNum2} 匹配到 ${matchList.length} 个文件夹(可删除 ${safeMatchList.length} 个):
`;
+ if (unsafeCount > 0) {
+ html += `
⚠ 已自动排除 ${unsafeCount} 个目录名不含番号的项目,防止误删
`;
+ }
html += '
全选
';
- for (let i = 0; i < matchList.length; i++) {
- const m = matchList[i];
+ for (let i = 0; i < safeMatchList.length; i++) {
+ const m = safeMatchList[i];
html += `
@@ -419,7 +429,7 @@ const _WangPan115MatchPlugin = class _WangPan115MatchPlugin extends BasePlugin {
let deletedCount = 0;
try {
for (const i of selected) {
- const m = matchList[i];
+ const m = safeMatchList[i];
const result = await gmHttp.postForm("https://webapi.115.com/rb/delete", {
pid: m.dirId,
"fid[0]": m.folderId