mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2025-04-20 05:52:24 +00:00
[xray] fix: convert link to json
Co-Authored-By: Alireza Ahmadi <alireza7@gmail.com>
This commit is contained in:
parent
21d988133e
commit
9d18e925cc
1 changed files with 16 additions and 14 deletions
|
@ -645,7 +645,7 @@ class Outbound extends CommonClass {
|
||||||
json.path,
|
json.path,
|
||||||
json.type ? json.type : 'none');
|
json.type ? json.type : 'none');
|
||||||
} else if (network === 'grpc') {
|
} else if (network === 'grpc') {
|
||||||
stream.grpc = new GrpcStreamSettings(json.path, json.type == 'multi');
|
stream.grpc = new GrpcStreamSettings(json.path, json.authority, json.type == 'multi');
|
||||||
} else if (network === 'httpupgrade') {
|
} else if (network === 'httpupgrade') {
|
||||||
stream.httpupgrade = new HttpUpgradeStreamSettings(json.path,json.host);
|
stream.httpupgrade = new HttpUpgradeStreamSettings(json.path,json.host);
|
||||||
}
|
}
|
||||||
|
@ -658,20 +658,22 @@ class Outbound extends CommonClass {
|
||||||
json.allowInsecure);
|
json.allowInsecure);
|
||||||
}
|
}
|
||||||
|
|
||||||
return new Outbound(json.ps, Protocols.VMess, new Outbound.VmessSettings(json.add, json.port, json.id), stream);
|
const port = json.port * 1;
|
||||||
|
|
||||||
|
return new Outbound(json.ps, Protocols.VMess, new Outbound.VmessSettings(json.add, port, json.id), stream);
|
||||||
}
|
}
|
||||||
|
|
||||||
static fromParamLink(link){
|
static fromParamLink(link){
|
||||||
const url = new URL(link);
|
const url = new URL(link);
|
||||||
let type = url.searchParams.get('type');
|
let type = url.searchParams.get('type') ?? 'tcp';
|
||||||
let security = url.searchParams.get('security') ?? 'none';
|
let security = url.searchParams.get('security') ?? 'none';
|
||||||
let stream = new StreamSettings(type, security);
|
let stream = new StreamSettings(type, security);
|
||||||
|
|
||||||
let headerType = url.searchParams.get('headerType');
|
let headerType = url.searchParams.get('headerType') ?? undefined;
|
||||||
let host = url.searchParams.get('host');
|
let host = url.searchParams.get('host') ?? undefined;
|
||||||
let path = url.searchParams.get('path');
|
let path = url.searchParams.get('path') ?? undefined;
|
||||||
|
|
||||||
if (type === 'tcp') {
|
if (type === 'tcp' || type === 'none') {
|
||||||
stream.tcp = new TcpStreamSettings(headerType ?? 'none', host, path);
|
stream.tcp = new TcpStreamSettings(headerType ?? 'none', host, path);
|
||||||
} else if (type === 'kcp') {
|
} else if (type === 'kcp') {
|
||||||
stream.kcp = new KcpStreamSettings();
|
stream.kcp = new KcpStreamSettings();
|
||||||
|
@ -686,9 +688,12 @@ class Outbound extends CommonClass {
|
||||||
url.searchParams.get('quicSecurity') ?? 'none',
|
url.searchParams.get('quicSecurity') ?? 'none',
|
||||||
url.searchParams.get('key') ?? '',
|
url.searchParams.get('key') ?? '',
|
||||||
headerType ?? 'none');
|
headerType ?? 'none');
|
||||||
} else if (type === 'grpc') {
|
} else if (type === 'grpc') {
|
||||||
stream.grpc = new GrpcStreamSettings(url.searchParams.get('serviceName') ?? '', url.searchParams.get('mode') == 'multi');
|
stream.grpc = new GrpcStreamSettings(
|
||||||
} else if (type === 'httpupgrade') {
|
url.searchParams.get('serviceName') ?? '',
|
||||||
|
url.searchParams.get('authority') ?? '',
|
||||||
|
url.searchParams.get('mode') == 'multi');
|
||||||
|
} else if (type === 'httpupgrade') {
|
||||||
stream.httpupgrade = new HttpUpgradeStreamSettings(path,host);
|
stream.httpupgrade = new HttpUpgradeStreamSettings(path,host);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -709,10 +714,7 @@ class Outbound extends CommonClass {
|
||||||
stream.reality = new RealityStreamSettings(pbk, fp, sni, sid, spx);
|
stream.reality = new RealityStreamSettings(pbk, fp, sni, sid, spx);
|
||||||
}
|
}
|
||||||
|
|
||||||
let data = link.split('?');
|
const regex = /([^@]+):\/\/([^@]+)@(.+):(\d+)(.*)$/;
|
||||||
if(data.length != 2) return null;
|
|
||||||
|
|
||||||
const regex = /([^@]+):\/\/([^@]+)@(.+):(\d+)\?(.*)$/;
|
|
||||||
const match = link.match(regex);
|
const match = link.match(regex);
|
||||||
|
|
||||||
if (!match) return null;
|
if (!match) return null;
|
||||||
|
|
Loading…
Reference in a new issue