mirror of
https://git.mirrors.martin98.com/https://github.com/sub-store-org/Sub-Store.git
synced 2026-05-05 07:28:17 +08:00
feat: 支持输出到 sing-box; 文件脚本支持 ` ; 脚本支持 ProxyUtils.yaml`
This commit is contained in:
@@ -22,10 +22,10 @@ async function getNodeInfo(req, res) {
|
||||
const info = await $http
|
||||
.get({
|
||||
url: `http://ip-api.com/json/${encodeURIComponent(
|
||||
proxy.server
|
||||
`${proxy.server}`
|
||||
.trim()
|
||||
.replace(/^\[/, '')
|
||||
.replace(/\]$/, '')
|
||||
.replace(/\]$/, ''),
|
||||
)}?lang=${lang}`,
|
||||
headers: {
|
||||
'User-Agent':
|
||||
|
||||
@@ -58,19 +58,25 @@ async function previewFile(req, res) {
|
||||
}
|
||||
}
|
||||
// parse proxies
|
||||
const original = (Array.isArray(content) ? content : [content])
|
||||
.flat()
|
||||
const files = (Array.isArray(content) ? content : [content]).flat();
|
||||
const filesContent = files
|
||||
.filter((i) => i != null && i !== '')
|
||||
.join('\n');
|
||||
|
||||
// apply processors
|
||||
const processed = await ProxyUtils.process(
|
||||
original,
|
||||
file.process || [],
|
||||
);
|
||||
const processed =
|
||||
Array.isArray(file.process) && file.process.length > 0
|
||||
? await ProxyUtils.process(
|
||||
{ $files: files, $content: filesContent },
|
||||
file.process,
|
||||
)
|
||||
: filesContent;
|
||||
|
||||
// produce
|
||||
success(res, { original, processed });
|
||||
success(res, {
|
||||
original: filesContent,
|
||||
processed: processed?.$content ?? '',
|
||||
});
|
||||
} catch (err) {
|
||||
$.error(err.message ?? err);
|
||||
failed(
|
||||
|
||||
@@ -418,12 +418,20 @@ async function produceArtifact({
|
||||
raw.push(file.content);
|
||||
}
|
||||
}
|
||||
let content = (Array.isArray(raw) ? raw : [raw])
|
||||
.flat()
|
||||
const files = (Array.isArray(raw) ? raw : [raw]).flat();
|
||||
const filesContent = files
|
||||
.filter((i) => i != null && i !== '')
|
||||
.join('\n');
|
||||
content = await ProxyUtils.process(content, file.process || []);
|
||||
return content ?? '';
|
||||
|
||||
// apply processors
|
||||
const processed =
|
||||
Array.isArray(file.process) && file.process.length > 0
|
||||
? await ProxyUtils.process(
|
||||
{ $files: files, $content: filesContent },
|
||||
file.process,
|
||||
)
|
||||
: filesContent;
|
||||
return processed?.$content ?? '';
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user