mirror of
https://github.com/NapNeko/NapCatQQ.git
synced 2025-12-19 13:10:16 +08:00
feat: #1121 & Add cache cleaning for specific directories
Extended the CleanCache action to remove files from Pic, Ptt, Video, File, and log directories under the nt_data path. This improves cache management by ensuring these directories are also cleaned, with logging for successful and failed deletions. 增强缓存清理
This commit is contained in:
parent
1d08966571
commit
722c3554e9
@ -1,7 +1,7 @@
|
||||
import { OneBotAction } from '@/onebot/action/OneBotAction';
|
||||
import { ActionName } from '@/onebot/action/router';
|
||||
import { unlink, readdir } from 'fs/promises';
|
||||
import { join } from 'path';
|
||||
import path, { join } from 'path';
|
||||
|
||||
export class CleanCache extends OneBotAction<void, void> {
|
||||
override actionName = ActionName.CleanCache;
|
||||
@ -28,6 +28,37 @@ export class CleanCache extends OneBotAction<void, void> {
|
||||
|
||||
// 等待所有删除操作完成
|
||||
await Promise.all(deletePromises);
|
||||
let basic_path = path.join(this.core.dataPath, this.core.selfInfo.uin || '10001', 'nt_qq', 'nt_data');
|
||||
|
||||
// 需要清理的目录列表
|
||||
const dirsToClean = ['Pic', 'Ptt', 'Video', 'File', 'log'];
|
||||
|
||||
// 清理每个指定目录
|
||||
for (const dir of dirsToClean) {
|
||||
const dirPath = path.join(basic_path, dir);
|
||||
try {
|
||||
// 检查目录是否存在
|
||||
const files = await readdir(dirPath).catch(() => null);
|
||||
if (files) {
|
||||
// 删除目录下的所有文件
|
||||
const dirDeletePromises = files.map(async (file) => {
|
||||
const filePath = path.join(dirPath, file);
|
||||
try {
|
||||
await unlink(filePath);
|
||||
this.core.context.logger.log(`已删除文件: ${filePath}`);
|
||||
} catch (err: unknown) {
|
||||
this.core.context.logger.log(`删除文件 ${filePath} 失败: ${(err as Error).message}`);
|
||||
}
|
||||
});
|
||||
|
||||
await Promise.all(dirDeletePromises);
|
||||
this.core.context.logger.log(`目录清理完成: ${dirPath}`);
|
||||
}
|
||||
} catch (err: unknown) {
|
||||
this.core.context.logger.log(`清理目录 ${dirPath} 失败: ${(err as Error).message}`);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
this.core.context.logger.log(`临时文件夹清理完成: ${tempPath}`);
|
||||
} catch (err: unknown) {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user