From f2c28822c1ebef8a0143c4d05676286072dab996 Mon Sep 17 00:00:00 2001 From: MHSanaei Date: Fri, 31 Mar 2023 00:52:48 +0330 Subject: option - ban ir ip - ban ir domain --- web/html/xui/setting.html | 71 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 70 insertions(+), 1 deletion(-) (limited to 'web/html/xui') diff --git a/web/html/xui/setting.html b/web/html/xui/setting.html index 057dae95..7acab065 100644 --- a/web/html/xui/setting.html +++ b/web/html/xui/setting.html @@ -97,7 +97,9 @@ - {{ i18n "pages.setting.advancedTemplate"}} + + + {{ i18n "pages.setting.advancedTemplate"}} @@ -304,6 +306,73 @@ this.templateSettings = newTemplateSettings }, }, + IRIpSettings: { + get: function () { + localIpFilter = false + if(this.templateSettings != null){ + this.templateSettings.routing.rules.forEach(routingRule => { + if(routingRule.hasOwnProperty("ip")){ + if (routingRule.ip[0] === "geoip:ir" && routingRule.outboundTag == "blocked"){ + localIpFilter = true + } + } + }); + } + return localIpFilter + }, + set: function (newValue) { + newTemplateSettings = JSON.parse(this.allSetting.xrayTemplateConfig); + if (newValue){ + newTemplateSettings.routing.rules.push(JSON.parse("{\"outboundTag\": \"blocked\",\"ip\": [\"geoip:ir\"],\"type\": \"field\"}")) + } + else { + newTemplateSettings.routing.rules = []; + this.templateSettings.routing.rules.forEach(routingRule => { + if (routingRule.hasOwnProperty('ip')){ + if (routingRule.ip[0] === "geoip:ir" && routingRule.outboundTag == "blocked"){ + return; + } + } + newTemplateSettings.routing.rules.push(routingRule); + }); + } + this.templateSettings = newTemplateSettings + }, + }, + IRdomainSettings: { + get: function () { + localdomainFilter = false + if(this.templateSettings != null){ + this.templateSettings.routing.rules.forEach(routingRule => { + if(routingRule.hasOwnProperty("domain")){ + if (routingRule.domain[0] === "regexp:.+.ir$" && routingRule.outboundTag == "blocked"){ + localdomainFilter = true + } + } + }); + } + return localdomainFilter + }, + set: function (newValue) { + newTemplateSettings = JSON.parse(this.allSetting.xrayTemplateConfig); + if (newValue){ + newTemplateSettings.routing.rules.push(JSON.parse("{\"outboundTag\": \"blocked\",\"domain\": [\"regexp:.+.ir$\"],\"type\": \"field\"}")) + } + else { + newTemplateSettings.routing.rules = []; + this.templateSettings.routing.rules.forEach(routingRule => { + if (routingRule.hasOwnProperty('domain')){ + if (routingRule.domain[0] === "regexp:.+.ir$" && routingRule.outboundTag == "blocked"){ + return; + } + } + newTemplateSettings.routing.rules.push(routingRule); + }); + } + this.templateSettings = newTemplateSettings + }, + }, + } }); -- cgit v1.2.3