fix: 警示文件夹创建到转存目录内而非根目录

- createWarningDirectories 加 parentDirFid 参数
- createSingleDir 加 pdirFid 参数, pdir_fid 用传参而非硬编码 0
- runAdCleanup 传入 savedDirFid
- listDirAllPages 列出目标目录而非根目录
This commit is contained in:
2026-05-15 07:05:58 +08:00
parent 1c0c024b9a
commit a12fec4d82

View File

@@ -166,12 +166,13 @@ async function batchDeleteFiles(
export async function createWarningDirectories(
cookie: string,
dirNames: string[],
parentDirFid: string = "0",
): Promise<void> {
if (!dirNames.length) return;
// 先获取根目录下所有文件夹,避免重复创建
await humanDelay();
const rootFiles = await listDirAllPages(cookie, "0");
const rootFiles = await listDirAllPages(cookie, parentDirFid);
const existingDirs = new Set(
rootFiles.filter((f) => f.dir).map((f) => f.file_name),
);
@@ -192,7 +193,7 @@ export async function createWarningDirectories(
continue;
}
await createSingleDir(cookie, formattedName);
await createSingleDir(cookie, formattedName, parentDirFid);
// 加入已存在集合,防止同名重试
existingDirs.add(formattedName);
}
@@ -204,6 +205,7 @@ export async function createWarningDirectories(
async function createSingleDir(
cookie: string,
dirName: string,
pdirFid: string = "0",
): Promise<boolean> {
try {
const resp = await fetch(
@@ -215,7 +217,7 @@ async function createSingleDir(
"Content-Type": "application/json",
},
body: JSON.stringify({
pdir_fid: "0",
pdir_fid: pdirFid,
file_name: dirName,
dir: true,
dir_path: "",
@@ -276,7 +278,7 @@ export async function runAdCleanup(
console.log(
`[Quark-AdCleanup] 开始创建警示文件夹: ${warningNames.length}`,
);
await createWarningDirectories(cookie, warningNames);
await createWarningDirectories(cookie, warningNames, savedDirFid);
warningDirs = warningNames.length;
console.log(
`[Quark-AdCleanup] 警示文件夹创建完成(共 ${warningDirs} 个)`,