mirror of
https://github.com/Jerryplusy/rc-plugin.git
synced 2025-10-14 08:09:19 +00:00
将 yt-dlp 相关函数改为异步执行以解决进程阻塞
This commit is contained in:
parent
d2ecdd2542
commit
1523287649
@ -1,4 +1,4 @@
|
|||||||
import { exec, execSync } from "child_process";
|
import { exec } from "child_process";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 构建梯子参数
|
* 构建梯子参数
|
||||||
@ -40,9 +40,19 @@ function constructEncodingParam(url) {
|
|||||||
* @returns string
|
* @returns string
|
||||||
*/
|
*/
|
||||||
export function ytDlpGetDuration(url, isOversea, proxy, cookiePath = "") {
|
export function ytDlpGetDuration(url, isOversea, proxy, cookiePath = "") {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
// 构造 cookie 参数
|
// 构造 cookie 参数
|
||||||
const cookieParam = constructCookiePath(url, cookiePath);
|
const cookieParam = constructCookiePath(url, cookiePath);
|
||||||
return execSync(`yt-dlp --get-duration --skip-download ${cookieParam} ${constructProxyParam(isOversea, proxy)} ${url}`);
|
const command = `yt-dlp --get-duration --skip-download ${cookieParam} ${constructProxyParam(isOversea, proxy)} ${url}`;
|
||||||
|
exec(command, (error, stdout, stderr) => {
|
||||||
|
if (error) {
|
||||||
|
logger.error(`[R插件][yt-dlp审计] Error executing ytDlpGetDuration: ${error}. Stderr: ${stderr}`);
|
||||||
|
reject(error);
|
||||||
|
} else {
|
||||||
|
resolve(stdout.trim());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -54,11 +64,21 @@ export function ytDlpGetDuration(url, isOversea, proxy, cookiePath = "") {
|
|||||||
* @returns string
|
* @returns string
|
||||||
*/
|
*/
|
||||||
export function ytDlpGetTilt(url, isOversea, proxy, cookiePath = "") {
|
export function ytDlpGetTilt(url, isOversea, proxy, cookiePath = "") {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
// 构造 cookie 参数
|
// 构造 cookie 参数
|
||||||
const cookieParam = constructCookiePath(url, cookiePath);
|
const cookieParam = constructCookiePath(url, cookiePath);
|
||||||
// 构造 编码 参数
|
// 构造 编码 参数
|
||||||
const encodingParam = constructEncodingParam(url);
|
const encodingParam = constructEncodingParam(url);
|
||||||
return execSync(`yt-dlp --get-title --skip-download ${cookieParam} ${ constructProxyParam(isOversea, proxy) } ${ url } ${encodingParam}`);
|
const command = `yt-dlp --get-title --skip-download ${cookieParam} ${ constructProxyParam(isOversea, proxy) } ${ url } ${encodingParam}`;
|
||||||
|
exec(command, (error, stdout, stderr) => {
|
||||||
|
if (error) {
|
||||||
|
logger.error(`[R插件][yt-dlp审计] Error executing ytDlpGetTilt: ${error}. Stderr: ${stderr}`);
|
||||||
|
reject(error);
|
||||||
|
} else {
|
||||||
|
resolve(stdout.trim());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -69,10 +89,20 @@ export function ytDlpGetTilt(url, isOversea, proxy, cookiePath = "") {
|
|||||||
* @param proxy
|
* @param proxy
|
||||||
* @param cookiePath
|
* @param cookiePath
|
||||||
*/
|
*/
|
||||||
export function ytDlpGetThumbnail(path, url, isOversea, proxy, cookiePath= "") {
|
export function ytDlpGetThumbnail(path, url, isOversea, proxy, cookiePath = "") {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
// 构造 cookie 参数
|
// 构造 cookie 参数
|
||||||
const cookieParam = constructCookiePath(url, cookiePath);
|
const cookieParam = constructCookiePath(url, cookiePath);
|
||||||
return execSync(`yt-dlp --write-thumbnail --convert-thumbnails png --skip-download ${cookieParam} ${constructProxyParam(isOversea, proxy)} ${url} -P ${path} -o "thumbnail.%(ext)s"`);
|
const command = `yt-dlp --write-thumbnail --convert-thumbnails png --skip-download ${cookieParam} ${constructProxyParam(isOversea, proxy)} ${url} -P "${path}" -o "thumbnail.%(ext)s"`;
|
||||||
|
exec(command, (error, stdout, stderr) => {
|
||||||
|
if (error) {
|
||||||
|
logger.error(`[R插件][yt-dlp审计] Error executing ytDlpGetThumbnail: ${error}. Stderr: ${stderr}`);
|
||||||
|
reject(error);
|
||||||
|
} else {
|
||||||
|
resolve(); // The return value is not used
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
x
Reference in New Issue
Block a user