mirror of
https://github.com/Jerryplusy/rc-plugin.git
synced 2025-10-14 16:19:18 +00:00
🔧 chore: 清理无用函数
This commit is contained in:
parent
40bc8a6daf
commit
796598df50
107
utils/common.js
107
utils/common.js
@ -2,119 +2,12 @@ import axios from "axios";
|
|||||||
import { exec } from "child_process";
|
import { exec } from "child_process";
|
||||||
import { HttpsProxyAgent } from 'https-proxy-agent';
|
import { HttpsProxyAgent } from 'https-proxy-agent';
|
||||||
import fetch from "node-fetch";
|
import fetch from "node-fetch";
|
||||||
import schedule from "node-schedule";
|
|
||||||
import fs from "node:fs";
|
import fs from "node:fs";
|
||||||
import os from "os";
|
import os from "os";
|
||||||
import common from "../../../lib/common/common.js";
|
|
||||||
import path from 'path';
|
import path from 'path';
|
||||||
import { BILI_DOWNLOAD_METHOD, COMMON_USER_AGENT, TEN_THOUSAND } from "../constants/constant.js";
|
import { BILI_DOWNLOAD_METHOD, COMMON_USER_AGENT, TEN_THOUSAND } from "../constants/constant.js";
|
||||||
import { mkdirIfNotExists } from "./file.js";
|
import { mkdirIfNotExists } from "./file.js";
|
||||||
|
|
||||||
/**
|
|
||||||
* 请求模板
|
|
||||||
*/
|
|
||||||
export class jFetch {
|
|
||||||
async get(url) {
|
|
||||||
const r = await fetch(url);
|
|
||||||
return await r.json();
|
|
||||||
}
|
|
||||||
|
|
||||||
async post(url, params) {
|
|
||||||
const r = await fetch(url, { ...params, method: "POST" });
|
|
||||||
return await r.json();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 每日推送函数
|
|
||||||
* @param func 回调函数
|
|
||||||
* @param time cron
|
|
||||||
* @param isAutoPush 是否推送(开关)
|
|
||||||
*/
|
|
||||||
export function autoTask(func, time, groupList, isAutoPush = false) {
|
|
||||||
if (isAutoPush) {
|
|
||||||
schedule.scheduleJob(time, () => {
|
|
||||||
// 正常传输
|
|
||||||
if (groupList instanceof Array) {
|
|
||||||
for (let i = 0; i < groupList.length; i++) {
|
|
||||||
const group = Bot.pickGroup(groupList[i]);
|
|
||||||
func(group);
|
|
||||||
common.sleep(1000);
|
|
||||||
}
|
|
||||||
// 防止恶意破坏函数
|
|
||||||
} else if (groupList instanceof String) {
|
|
||||||
const group = Bot.pickGroup(groupList[i]);
|
|
||||||
func(group);
|
|
||||||
common.sleep(1000);
|
|
||||||
} else {
|
|
||||||
throw Error("错误传入每日推送参数!");
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 重试函数(暂时只用于抖音的api)
|
|
||||||
* @param func
|
|
||||||
* @param maxRetries
|
|
||||||
* @param delay
|
|
||||||
* @returns {Promise<unknown>}
|
|
||||||
*/
|
|
||||||
export function retry(func, maxRetries = 3, delay = 1000) {
|
|
||||||
return new Promise((resolve, reject) => {
|
|
||||||
const attempt = (remainingTries) => {
|
|
||||||
func()
|
|
||||||
.then(resolve)
|
|
||||||
.catch(error => {
|
|
||||||
if (remainingTries === 1) {
|
|
||||||
reject(error);
|
|
||||||
} else {
|
|
||||||
console.log(`错误: ${ error }. 重试将在 ${ delay / 1000 } 秒...`);
|
|
||||||
setTimeout(() => attempt(remainingTries - 1), delay);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
};
|
|
||||||
attempt(maxRetries);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 工具:下载pdf文件
|
|
||||||
* @param url
|
|
||||||
* @param filename
|
|
||||||
* @returns {Promise<unknown>}
|
|
||||||
*/
|
|
||||||
export function downloadPDF(url, filename) {
|
|
||||||
return axios({
|
|
||||||
url: url,
|
|
||||||
responseType: "stream",
|
|
||||||
headers: {
|
|
||||||
"User-Agent":
|
|
||||||
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36",
|
|
||||||
},
|
|
||||||
}).then(response => {
|
|
||||||
const writer = fs.createWriteStream(filename);
|
|
||||||
response.data.pipe(writer);
|
|
||||||
return new Promise((resolve, reject) => {
|
|
||||||
writer.on("finish", resolve);
|
|
||||||
writer.on("error", reject);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 找到tiktok的视频id
|
|
||||||
* @param url
|
|
||||||
* @returns {Promise<string|string|null>}
|
|
||||||
*/
|
|
||||||
export async function getIdVideo(url) {
|
|
||||||
const matching = url.includes("/video/");
|
|
||||||
if (!matching) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
const idVideo = url.substring(url.indexOf("/video/") + 7, url.length);
|
|
||||||
return idVideo.length > 19 ? idVideo.substring(0, idVideo.indexOf("?")) : idVideo;
|
|
||||||
}
|
|
||||||
|
|
||||||
export function generateRandomStr(randomlength = 16) {
|
export function generateRandomStr(randomlength = 16) {
|
||||||
const base_str = 'ABCDEFGHIGKLMNOPQRSTUVWXYZabcdefghigklmnopqrstuvwxyz0123456789='
|
const base_str = 'ABCDEFGHIGKLMNOPQRSTUVWXYZabcdefghigklmnopqrstuvwxyz0123456789='
|
||||||
|
Loading…
x
Reference in New Issue
Block a user