mirror of
https://github.com/Jerryplusy/rc-plugin.git
synced 2025-10-14 16:19:18 +00:00
✨ feat: data清理增加数据统计
This commit is contained in:
parent
bbb220bef8
commit
9cbc3f72ed
@ -6,7 +6,7 @@ import axios from "axios";
|
|||||||
import _ from "lodash";
|
import _ from "lodash";
|
||||||
import tunnel from "tunnel";
|
import tunnel from "tunnel";
|
||||||
import HttpProxyAgent from "https-proxy-agent";
|
import HttpProxyAgent from "https-proxy-agent";
|
||||||
import { mkdirIfNotExists, checkAndRemoveFile } from "../utils/file.js";
|
import { mkdirIfNotExists, checkAndRemoveFile, deleteFolderRecursive } from "../utils/file.js";
|
||||||
import { downloadBFile, getDownloadUrl, mergeFileToMp4 } from "../utils/bilibili.js";
|
import { downloadBFile, getDownloadUrl, mergeFileToMp4 } from "../utils/bilibili.js";
|
||||||
import { parseUrl, parseM3u8, downloadM3u8Videos, mergeAcFileToMp4 } from "../utils/acfun.js";
|
import { parseUrl, parseM3u8, downloadM3u8Videos, mergeAcFileToMp4 } from "../utils/acfun.js";
|
||||||
import { transMap, douyinTypeMap, XHS_CK, TEN_THOUSAND, PROMPT_MAP } from "../utils/constant.js";
|
import { transMap, douyinTypeMap, XHS_CK, TEN_THOUSAND, PROMPT_MAP } from "../utils/constant.js";
|
||||||
@ -889,23 +889,22 @@ export class tools extends plugin {
|
|||||||
// 清理垃圾文件
|
// 清理垃圾文件
|
||||||
async clearTrash(e) {
|
async clearTrash(e) {
|
||||||
const dataDirectory = "./data/";
|
const dataDirectory = "./data/";
|
||||||
const tempDirectory = this.toolsConfig.defaultPath;
|
|
||||||
try {
|
try {
|
||||||
const files = await fs.promises.readdir(dataDirectory);
|
const files = await fs.promises.readdir(dataDirectory);
|
||||||
|
let dataClearFileLen = 0;
|
||||||
for (const file of files) {
|
for (const file of files) {
|
||||||
// 如果文件名符合规则,执行删除操作
|
// 如果文件名符合规则,执行删除操作
|
||||||
if (/^[0-9a-f]{32}$/.test(file)) {
|
if (/^[0-9a-f]{32}$/.test(file)) {
|
||||||
await fs.promises.unlink(dataDirectory + file);
|
await fs.promises.unlink(dataDirectory + file);
|
||||||
|
dataClearFileLen++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
const tempFiles = await fs.promises.readdir(tempDirectory);
|
const rTempFileLen = await deleteFolderRecursive(this.toolsConfig.defaultPath)
|
||||||
for (let file of tempDirectory) {
|
|
||||||
dataDirectory
|
|
||||||
}
|
|
||||||
e.reply(
|
e.reply(
|
||||||
`数据统计:\n`+
|
`数据统计:\n`+
|
||||||
`当前清理了data下垃圾文件总计:${files.length}\n`+
|
`- 当前清理了${dataDirectory}下垃总计:${dataClearFileLen} 个垃圾文件\n`+
|
||||||
``
|
`- 当前清理了${ this.toolsConfig.defaultPath}下文件夹:${rTempFileLen} 个群的所有临时文件`
|
||||||
);
|
);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.error(err);
|
logger.error(err);
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import fs from "node:fs";
|
import fs from "node:fs";
|
||||||
|
import path from "path";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 检查文件是否存在并且删除
|
* 检查文件是否存在并且删除
|
||||||
@ -34,4 +35,34 @@ async function mkdirIfNotExists(dir) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export { checkAndRemoveFile, mkdirIfNotExists }
|
/**
|
||||||
|
* 删除文件夹下所有文件
|
||||||
|
* @returns {Promise<number>}
|
||||||
|
* @param folderPath
|
||||||
|
*/
|
||||||
|
async function deleteFolderRecursive(folderPath) {
|
||||||
|
try {
|
||||||
|
const files = await fs.promises.readdir(folderPath);
|
||||||
|
const filePromises = files.map(async (file) => {
|
||||||
|
const curPath = path.join(folderPath, file);
|
||||||
|
const stat = await fs.promises.lstat(curPath);
|
||||||
|
|
||||||
|
if (stat.isDirectory()) {
|
||||||
|
// recurse
|
||||||
|
await deleteFolderRecursive(curPath);
|
||||||
|
} else {
|
||||||
|
// delete file
|
||||||
|
await fs.promises.unlink(curPath);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
await Promise.all(filePromises);
|
||||||
|
await fs.promises.rmdir(folderPath);
|
||||||
|
return files.length;
|
||||||
|
} catch (error) {
|
||||||
|
logger.error(error);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export { checkAndRemoveFile, mkdirIfNotExists, deleteFolderRecursive }
|
Loading…
x
Reference in New Issue
Block a user