fix: 文件类型为 mihomo 配置时, 不应处理本地或远程内容字段

This commit is contained in:
xream 2025-02-15 20:32:29 +08:00
parent 6d3d6fa1b3
commit 8fc755ff02
No known key found for this signature in database
GPG Key ID: 1D2C5225471789F9
3 changed files with 146 additions and 132 deletions

View File

@ -1,6 +1,6 @@
{
"name": "sub-store",
"version": "2.16.43",
"version": "2.16.44",
"description": "Advanced Subscription Manager for QX, Loon, Surge, Stash and Shadowrocket.",
"main": "src/main.js",
"scripts": {

View File

@ -15,7 +15,8 @@ export default function register($app) {
async function previewFile(req, res) {
try {
const file = req.body;
let content;
let content = '';
if (file.type !== 'mihomoProfile') {
if (
file.source === 'local' &&
!['localFirst', 'remoteFirst'].includes(file.mergeSources)
@ -46,9 +47,9 @@ async function previewFile(req, res) {
Object.keys(errors).length > 0
) {
throw new Error(
`文件 ${file.name} 的远程文件 ${Object.keys(errors).join(
', ',
)} 发生错误, 请查看日志`,
`文件 ${file.name} 的远程文件 ${Object.keys(
errors,
).join(', ')} 发生错误, 请查看日志`,
);
}
if (file.mergeSources === 'localFirst') {
@ -57,6 +58,7 @@ async function previewFile(req, res) {
content.push(file.content);
}
}
}
// parse proxies
const files = (Array.isArray(content) ? content : [content]).flat();
let filesContent = files

View File

@ -410,8 +410,13 @@ async function produceArtifact({
const allFiles = $.read(FILES_KEY);
const file = findByName(allFiles, name);
if (!file) throw new Error(`找不到文件 ${name}`);
let raw;
if (content && !['localFirst', 'remoteFirst'].includes(mergeSources)) {
let raw = '';
console.log(file);
if (file.type !== 'mihomoProfile') {
if (
content &&
!['localFirst', 'remoteFirst'].includes(mergeSources)
) {
raw = content;
} else if (url) {
const errors = {};
@ -447,11 +452,14 @@ async function produceArtifact({
) {
fileIgnoreFailedRemoteFile = ignoreFailedRemoteFile;
}
if (!fileIgnoreFailedRemoteFile && Object.keys(errors).length > 0) {
if (
!fileIgnoreFailedRemoteFile &&
Object.keys(errors).length > 0
) {
throw new Error(
`文件 ${file.name} 的远程文件 ${Object.keys(errors).join(
', ',
)} 发生错误, 请查看日志`,
`文件 ${file.name} 的远程文件 ${Object.keys(
errors,
).join(', ')} 发生错误, 请查看日志`,
);
}
if (mergeSources === 'localFirst') {
@ -498,11 +506,14 @@ async function produceArtifact({
) {
fileIgnoreFailedRemoteFile = ignoreFailedRemoteFile;
}
if (!fileIgnoreFailedRemoteFile && Object.keys(errors).length > 0) {
if (
!fileIgnoreFailedRemoteFile &&
Object.keys(errors).length > 0
) {
throw new Error(
`文件 ${file.name} 的远程文件 ${Object.keys(errors).join(
', ',
)} 发生错误, 请查看日志`,
`文件 ${file.name} 的远程文件 ${Object.keys(
errors,
).join(', ')} 发生错误, 请查看日志`,
);
}
if (file.mergeSources === 'localFirst') {
@ -511,6 +522,7 @@ async function produceArtifact({
raw.push(file.content);
}
}
}
const files = (Array.isArray(raw) ? raw : [raw]).flat();
let filesContent = files
.filter((i) => i != null && i !== '')