Compare commits

...

3 Commits

Author SHA1 Message Date
xream
c266635ba1 fix: 修复 sing-box shadowsocks+shadow-tls
Some checks failed
build / build (push) Has been cancelled
2025-07-10 08:00:39 +08:00
xream
f34eac9568 feat: 节点本地内容支持 JSON5 2025-07-10 01:37:16 +08:00
xream
aa5b51a3cc feat: 放宽 sing-box VLESS flow 逻辑 2025-07-10 01:28:15 +08:00
3 changed files with 17 additions and 4 deletions

View File

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

View File

@@ -12,6 +12,7 @@ import getLoonParser from './peggy/loon';
import getQXParser from './peggy/qx';
import getTrojanURIParser from './peggy/trojan-uri';
import $ from '@/core/app';
import JSON5 from 'json5';
import { Base64 } from 'js-base64';
@@ -1130,14 +1131,14 @@ function Clash_All() {
const name = 'Clash Parser';
const test = (line) => {
try {
JSON.parse(line);
JSON5.parse(line);
} catch (e) {
return false;
}
return true;
};
const parse = (line) => {
const proxy = JSON.parse(line);
const proxy = JSON5.parse(line);
if (
![
'anytls',

View File

@@ -338,6 +338,17 @@ const shadowTLSParser = (proxy = {}) => {
password: proxy.password,
detour: `${proxy.name}_shadowtls`,
};
if (proxy.uot) ssPart.udp_over_tcp = true;
if (proxy['udp-over-tcp']) {
ssPart.udp_over_tcp = {
enabled: true,
version:
!proxy['udp-over-tcp-version'] ||
proxy['udp-over-tcp-version'] === 1
? 1
: 2,
};
}
const stPart = {
tag: `${proxy.name}_shadowtls`,
type: 'shadowtls',
@@ -521,7 +532,8 @@ const vlessParser = (proxy = {}) => {
throw 'invalid port';
if (proxy.xudp) parsedProxy.packet_encoding = 'xudp';
if (proxy['fast-open']) parsedProxy.udp_fragment = true;
if (proxy.flow === 'xtls-rprx-vision') parsedProxy.flow = proxy.flow;
// if (['xtls-rprx-vision', ''].includes(proxy.flow)) parsedProxy.flow = proxy.flow;
if (proxy.flow != null) parsedProxy.flow = proxy.flow;
if (proxy.network === 'ws') wsParser(proxy, parsedProxy);
if (proxy.network === 'grpc') grpcParser(proxy, parsedProxy);
networkParser(proxy, parsedProxy);