mirror of
https://github.com/yanue/V2rayU.git
synced 2025-06-27 05:30:09 +00:00
improve default config, inspired by v2rayn
This commit is contained in:
parent
d59d223c51
commit
3085f8088e
@ -11,47 +11,47 @@ import SwiftyJSON
|
||||
import JavaScriptCore
|
||||
|
||||
let jsSourceFormatConfig =
|
||||
"""
|
||||
/**
|
||||
* V2ray Config Format
|
||||
* @return {string}
|
||||
*/
|
||||
var V2rayConfigFormat = function (encodeStr) {
|
||||
var deStr = decodeURIComponent(encodeStr);
|
||||
if (!deStr) {
|
||||
return "error: cannot decode uri"
|
||||
}
|
||||
|
||||
try {
|
||||
var obj = JSON.parse(deStr);
|
||||
if (!obj) {
|
||||
return "error: cannot parse json"
|
||||
"""
|
||||
/**
|
||||
* V2ray Config Format
|
||||
* @return {string}
|
||||
*/
|
||||
var V2rayConfigFormat = function (encodeStr) {
|
||||
var deStr = decodeURIComponent(encodeStr);
|
||||
if (!deStr) {
|
||||
return "error: cannot decode uri"
|
||||
}
|
||||
|
||||
var v2rayConfig = {};
|
||||
// ordered keys
|
||||
v2rayConfig["log"] = obj.log;
|
||||
v2rayConfig["inbounds"] = obj.inbounds;
|
||||
v2rayConfig["inbound"] = obj.inbound;
|
||||
v2rayConfig["inboundDetour"] = obj.inboundDetour;
|
||||
v2rayConfig["outbounds"] = obj.outbounds;
|
||||
v2rayConfig["outbound"] = obj.outbound;
|
||||
v2rayConfig["outboundDetour"] = obj.outboundDetour;
|
||||
v2rayConfig["api"] = obj.api;
|
||||
v2rayConfig["dns"] = obj.dns;
|
||||
v2rayConfig["stats"] = obj.stats;
|
||||
v2rayConfig["routing"] = obj.routing;
|
||||
v2rayConfig["policy"] = obj.policy;
|
||||
v2rayConfig["reverse"] = obj.reverse;
|
||||
v2rayConfig["transport"] = obj.transport;
|
||||
|
||||
return JSON.stringify(v2rayConfig, null, 2);
|
||||
} catch (e) {
|
||||
console.log("error", e);
|
||||
return "error: " + e.toString()
|
||||
}
|
||||
};
|
||||
"""
|
||||
try {
|
||||
var obj = JSON.parse(deStr);
|
||||
if (!obj) {
|
||||
return "error: cannot parse json"
|
||||
}
|
||||
|
||||
var v2rayConfig = {};
|
||||
// ordered keys
|
||||
v2rayConfig["log"] = obj.log;
|
||||
v2rayConfig["inbounds"] = obj.inbounds;
|
||||
v2rayConfig["inbound"] = obj.inbound;
|
||||
v2rayConfig["inboundDetour"] = obj.inboundDetour;
|
||||
v2rayConfig["outbounds"] = obj.outbounds;
|
||||
v2rayConfig["outbound"] = obj.outbound;
|
||||
v2rayConfig["outboundDetour"] = obj.outboundDetour;
|
||||
v2rayConfig["api"] = obj.api;
|
||||
v2rayConfig["dns"] = obj.dns;
|
||||
v2rayConfig["stats"] = obj.stats;
|
||||
v2rayConfig["routing"] = obj.routing;
|
||||
v2rayConfig["policy"] = obj.policy;
|
||||
v2rayConfig["reverse"] = obj.reverse;
|
||||
v2rayConfig["transport"] = obj.transport;
|
||||
|
||||
return JSON.stringify(v2rayConfig, null, 2);
|
||||
} catch (e) {
|
||||
console.log("error", e);
|
||||
return "error: " + e.toString()
|
||||
}
|
||||
};
|
||||
"""
|
||||
|
||||
class V2rayConfig: NSObject {
|
||||
var v2ray: V2rayStruct = V2rayStruct()
|
||||
@ -160,7 +160,9 @@ class V2rayConfig: NSObject {
|
||||
func combineManualData() {
|
||||
// base
|
||||
self.v2ray.log.loglevel = V2rayLog.logLevel(rawValue: UserDefaults.get(forKey: .v2rayLogLevel) ?? "info") ?? V2rayLog.logLevel.info
|
||||
self.v2ray.dns.servers = self.dns.components(separatedBy: ",")
|
||||
if self.dns.count > 0 {
|
||||
self.v2ray.dns.servers = self.dns.components(separatedBy: ",")
|
||||
}
|
||||
// ------------------------------------- inbound start ---------------------------------------------
|
||||
var inHttp = V2rayInbound()
|
||||
inHttp.port = self.httpPort
|
||||
@ -614,9 +616,9 @@ class V2rayConfig: NSObject {
|
||||
var routing = V2rayRouting()
|
||||
routing.settings.rules = []
|
||||
|
||||
if jsonParams["strategy"].stringValue.count > 0 {
|
||||
routing.strategy = jsonParams["strategy"].stringValue;
|
||||
}
|
||||
// if jsonParams["strategy"].stringValue.count > 0 {
|
||||
// routing.strategy = jsonParams["strategy"].stringValue;
|
||||
// }
|
||||
|
||||
if jsonParams["settings"].exists() {
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
var str = '{"routing":{"strategy":"rules","settings":{"domainStrategy":"IPIfNonMatch","rules":[{"outboundTag":"direct","type":"field","ip":["geoip:cn","geoip:private"],"domain":["geosite:cn","geosite:speedtest"]}]}},"inbound":{"listen":"127.0.0.1","protocol":"http","settings":null,"tag":"","port":"1088"},"outbound":{"tag":"agentout","protocol":"vmess","settings":{"vnext":[{"address":"ssl.miwukeji.net","users":[{"id":"29f1ae2e-e29d-d804-7bcd-e01b5dfcf26a","alterId":64,"level":0,"security":""}],"port":"443"}]}},"dns":{"servers":["8.8.8.8","1.1.1.1","119.29.29.29","114.114.114.114"]},"log":{"error":"","loglevel":"info","access":""},"transport":{}}'
|
||||
var str = '{"routing":{"settings":{"domainStrategy":"IPIfNonMatch","rules":[{"outboundTag":"direct","type":"field","ip":["geoip:cn","geoip:private"],"domain":["geosite:cn","geosite:speedtest"]}]}},"inbound":{"listen":"127.0.0.1","protocol":"http","settings":null,"tag":"","port":"1088"},"outbound":{"tag":"agentout","protocol":"vmess","settings":{"vnext":[{"address":"ssl.miwukeji.net","users":[{"id":"29f1ae2e-e29d-d804-7bcd-e01b5dfcf26a","alterId":64,"level":0,"security":""}],"port":"443"}]}},"dns":{"servers":["8.8.8.8","1.1.1.1","119.29.29.29","114.114.114.114"]},"log":{"error":"","loglevel":"info","access":""},"transport":{}}'
|
||||
|
||||
/**
|
||||
* V2ray Config Format
|
||||
|
@ -54,7 +54,7 @@ struct V2rayApi: Codable {
|
||||
}
|
||||
|
||||
struct V2rayDns: Codable {
|
||||
var servers: [String] = ["1.1.1.1", "8.8.8.8", "8.8.4.4", "119.29.29.29", "114.114.114.114", "223.5.5.5", "223.6.6.6"]
|
||||
var servers: [String]?
|
||||
}
|
||||
|
||||
struct V2rayStats: Codable {
|
||||
@ -62,7 +62,7 @@ struct V2rayStats: Codable {
|
||||
}
|
||||
|
||||
struct V2rayRouting: Codable {
|
||||
var strategy: String = "rules"
|
||||
// var strategy: String = "rules"
|
||||
var settings: V2rayRoutingSetting = V2rayRoutingSetting()
|
||||
}
|
||||
|
||||
@ -74,7 +74,7 @@ struct V2rayRoutingSetting: Codable {
|
||||
}
|
||||
|
||||
var domainStrategy: domainStrategy = .AsIs
|
||||
var rules: [V2rayRoutingSettingRule] = [V2rayRoutingSettingRule()]
|
||||
var rules: [V2rayRoutingSettingRule] = []
|
||||
}
|
||||
|
||||
struct V2rayRoutingSettingRule: Codable {
|
||||
|
@ -87,7 +87,6 @@ let jsonTxt = """
|
||||
}
|
||||
],
|
||||
"routing": {
|
||||
"strategy": "rules",
|
||||
"settings": {
|
||||
"domainStrategy": "IPIfNonMatch",
|
||||
"rules": [
|
||||
|
Loading…
x
Reference in New Issue
Block a user