Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/MHSanaei/3x-ui.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlireza Ahmadi <alireza7@gmail.com>2024-10-10 22:38:56 +0300
committerGitHub <noreply@github.com>2024-10-10 22:38:56 +0300
commitc385662783e6b95c5002745dfda6418762f05e47 (patch)
treebd7e43b760a17a8ba76e94023c9a73c32995f5b7
parent4a05188a7f505e9e820b5e12799f4955fcc481c1 (diff)
simplified basic routing (#2579)
-rw-r--r--web/html/xui/xray.html616
-rw-r--r--web/translation/translate.en_US.toml46
-rw-r--r--web/translation/translate.es_ES.toml39
-rw-r--r--web/translation/translate.fa_IR.toml39
-rw-r--r--web/translation/translate.id_ID.toml39
-rw-r--r--web/translation/translate.pt_BR.toml39
-rw-r--r--web/translation/translate.ru_RU.toml39
-rw-r--r--web/translation/translate.tr_TR.toml39
-rw-r--r--web/translation/translate.uk_UA.toml39
-rw-r--r--web/translation/translate.vi_VN.toml39
-rw-r--r--web/translation/translate.zh_CN.toml39
-rw-r--r--web/translation/translate.zh_TW.toml39
12 files changed, 202 insertions, 850 deletions
diff --git a/web/html/xui/xray.html b/web/html/xui/xray.html
index f467c97a..ac97b1f1 100644
--- a/web/html/xui/xray.html
+++ b/web/html/xui/xray.html
@@ -228,14 +228,10 @@
</a-row>
<a-list-item>
<setting-list-item type="switch" title='{{ i18n "pages.xray.Torrent"}}' desc='{{ i18n "pages.xray.TorrentDesc"}}' v-model="torrentSettings"></setting-list-item>
- <setting-list-item type="switch" title='{{ i18n "pages.xray.PrivateIp"}}' desc='{{ i18n "pages.xray.PrivateIpDesc"}}' v-model="privateIpSettings"></setting-list-item>
- <setting-list-item type="switch" title='{{ i18n "pages.xray.Ads"}}' desc='{{ i18n "pages.xray.AdsDesc"}}' v-model="AdsSettings"></setting-list-item>
<setting-list-item type="switch" title='{{ i18n "pages.xray.Family"}}' desc='{{ i18n "pages.xray.FamilyDesc"}}' v-model="familyProtectSettings"></setting-list-item>
- <setting-list-item type="switch" title='{{ i18n "pages.xray.Security"}}' desc='{{ i18n "pages.xray.SecurityDesc"}}' v-model="SecuritySettings"></setting-list-item>
- <setting-list-item type="switch" title='{{ i18n "pages.xray.Speedtest"}}' desc='{{ i18n "pages.xray.SpeedtestDesc"}}' v-model="SpeedTestSettings"></setting-list-item>
</a-list-item>
</a-collapse-panel>
- <a-collapse-panel header='{{ i18n "pages.xray.blockConnectionsConfigs"}}'>
+ <a-collapse-panel header='{{ i18n "pages.xray.basicRouting"}}'>
<a-row :xs="24" :sm="24" :lg="12">
<a-alert type="warning" style="text-align: center;">
<template slot="message">
@@ -245,36 +241,44 @@
</a-alert>
</a-row>
<a-list-item>
- <a-collapse>
- <a-collapse-panel header='{{ i18n "pages.xray.blockips"}}'>
- <setting-list-item type="switch" title='🇮🇷 Iran'
- v-model="IRIpSettings"></setting-list-item>
- <setting-list-item type="switch" title='🇨🇳 China'
- v-model="ChinaIpSettings"></setting-list-item>
- <setting-list-item type="switch" title='🇷🇺 Russia'
- v-model="RussiaIpSettings"></setting-list-item>
- <setting-list-item type="switch" title='🇻🇳 Vietnam'
- v-model="VNIpSettings"></setting-list-item>
- </a-collapse-panel>
- </a-collapse>
- <br>
- <a-collapse>
- <a-collapse-panel header='{{ i18n "pages.xray.blockdomains"}}'>
- <setting-list-item type="switch" title='🇮🇷 Iran'
- v-model="IRDomainSettings"></setting-list-item>
- <setting-list-item type="switch" title='🇨🇳 China'
- v-model="ChinaDomainSettings"></setting-list-item>
- <setting-list-item type="switch" title='🇷🇺 Russia'
- v-model="RussiaDomainSettings"></setting-list-item>
- <setting-list-item type="switch" title='🇻🇳 Vietnam'
- v-model="VNDomainSettings"></setting-list-item>
- </a-collapse-panel>
- </a-collapse>
+ <a-row style="padding: 0 20px">
+ <a-col :lg="24" :xl="12">
+ <a-list-item-meta
+ title='{{ i18n "pages.xray.blockips" }}'/>
+ </a-col>
+ <a-col :lg="24" :xl="12">
+ <template>
+ <a-select mode="tags" v-model="blockedIPs" style="width: 100%"
+ :dropdown-class-name="themeSwitcher.currentTheme">
+ <a-select-option :value="p.value" :label="p.label"
+ v-for="p in settingsData.IPsOptions"> [[ p.label ]]
+ </a-select-option>
+ </a-select>
+ </template>
+ </a-col>
+ </a-row>
+ </a-list-item>
+ <a-list-item>
+ <a-row style="padding: 0 20px">
+ <a-col :lg="24" :xl="12">
+ <a-list-item-meta
+ title='{{ i18n "pages.xray.blockdomains" }}'/>
+ </a-col>
+ <a-col :lg="24" :xl="12">
+ <template>
+ <a-select mode="tags" style="width: 100%"
+ v-model="blockedDomains"
+ :dropdown-class-name="themeSwitcher.currentTheme">
+ <a-select-option :value="p.value" :label="p.label"
+ v-for="p in settingsData.DomainsOptions"> [[ p.label ]]
+ </a-select-option>
+ </a-select>
+ </template>
+ </a-col>
+ </a-row>
</a-list-item>
- </a-collapse-panel>
- <a-collapse-panel header='{{ i18n "pages.xray.directConnectionsConfigs"}}'>
<a-row :xs="24" :sm="24" :lg="12">
- <a-alert type="warning" style="text-align: center;">
+ <a-alert type="warning" style="text-align: center; margin-top: 20px;">
<template slot="message">
<a-icon type="exclamation-circle" theme="filled" style="color: #FFA031"></a-icon>
{{ i18n "pages.xray.directConnectionsConfigsDesc" }}
@@ -282,65 +286,99 @@
</a-alert>
</a-row>
<a-list-item>
- <a-collapse>
- <a-collapse-panel header='{{ i18n "pages.xray.directips"}}'>
- <setting-list-item type="switch" title='🇮🇷 Iran'
- v-model="IRIpDirectSettings"></setting-list-item>
- <setting-list-item type="switch" title='🇨🇳 China'
- v-model="ChinaIpDirectSettings"></setting-list-item>
- <setting-list-item type="switch" title='🇷🇺 Russia'
- v-model="RussiaIpDirectSettings"></setting-list-item>
- <setting-list-item type="switch" title='🇻🇳 Vietnam'
- v-model="VNIpDirectSettings"></setting-list-item>
- </a-collapse-panel>
- </a-collapse>
- <br>
- <a-collapse>
- <a-collapse-panel header='{{ i18n "pages.xray.directdomains"}}'>
- <setting-list-item type="switch" title='🇮🇷 Iran'
- v-model="IRDomainDirectSettings"></setting-list-item>
- <setting-list-item type="switch" title='🇨🇳 China'
- v-model="ChinaDomainDirectSettings"></setting-list-item>
- <setting-list-item type="switch" title='🇷🇺 Russia'
- v-model="RussiaDomainDirectSettings"></setting-list-item>
- <setting-list-item type="switch" title='🇻🇳 Vietnam'
- v-model="VNDomainDirectSettings"></setting-list-item>
- </a-collapse-panel>
- </a-collapse>
+ <a-row style="padding: 0 20px">
+ <a-col :lg="24" :xl="12">
+ <a-list-item-meta
+ title='{{ i18n "pages.xray.directips" }}'/>
+ </a-col>
+ <a-col :lg="24" :xl="12">
+ <template>
+ <a-select mode="tags" style="width: 100%"
+ v-model="directIPs"
+ :dropdown-class-name="themeSwitcher.currentTheme">
+ <a-select-option :value="p.value" :label="p.label"
+ v-for="p in settingsData.IPsOptions"> [[ p.label ]]
+ </a-select-option>
+ </a-select>
+ </template>
+ </a-col>
+ </a-row>
+ </a-list-item>
+ <a-list-item>
+ <a-row style="padding: 0 20px">
+ <a-col :lg="24" :xl="12">
+ <a-list-item-meta
+ title='{{ i18n "pages.xray.directdomains" }}'/>
+ </a-col>
+ <a-col :lg="24" :xl="12">
+ <template>
+ <a-select mode="tags" style="width: 100%"
+ v-model="directDomains"
+ :dropdown-class-name="themeSwitcher.currentTheme">
+ <a-select-option :value="p.value" :label="p.label"
+ v-for="p in settingsData.DomainsOptions"> [[ p.label ]]
+ </a-select-option>
+ </a-select>
+ </template>
+ </a-col>
+ </a-row>
</a-list-item>
- </a-collapse-panel>
- <a-collapse-panel header='{{ i18n "pages.xray.ipv4Configs"}}'>
<a-row :xs="24" :sm="24" :lg="12">
- <a-alert type="warning" style="text-align: center;">
+ <a-alert type="warning" style="text-align: center; margin-top: 20px;">
<template slot="message">
<a-icon type="exclamation-circle" theme="filled" style="color: #FFA031"></a-icon>
- {{ i18n "pages.xray.ipv4ConfigsDesc" }}
+ {{ i18n "pages.xray.ipv4RoutingDesc" }}
</template>
</a-alert>
</a-row>
<a-list-item>
- <setting-list-item type="switch" title='{{ i18n "pages.xray.GoogleIPv4"}}' desc='{{ i18n "pages.xray.GoogleIPv4Desc"}}' v-model="GoogleIPv4Settings"></setting-list-item>
- <setting-list-item type="switch" title='{{ i18n "pages.xray.NetflixIPv4"}}' desc='{{ i18n "pages.xray.NetflixIPv4Desc"}}' v-model="NetflixIPv4Settings"></setting-list-item>
+ <a-row style="padding: 0 20px">
+ <a-col :lg="24" :xl="12">
+ <a-list-item-meta
+ title='{{ i18n "pages.xray.ipv4Routing" }}'/>
+ </a-col>
+ <a-col :lg="24" :xl="12">
+ <template>
+ <a-select mode="tags" style="width: 100%"
+ v-model="ipv4Domains"
+ :dropdown-class-name="themeSwitcher.currentTheme">
+ <a-select-option :value="p.value" :label="p.label"
+ v-for="p in settingsData.ServicesOptions"> [[ p.label ]]
+ </a-select-option>
+ </a-select>
+ </template>
+ </a-col>
+ </a-row>
</a-list-item>
- </a-collapse-panel>
- <a-collapse-panel header='{{ i18n "pages.xray.warpConfigs"}}'>
<a-row :xs="24" :sm="24" :lg="12">
- <a-alert type="warning" style="text-align: center;">
+ <a-alert type="warning" style="text-align: center; margin-top: 20px;">
<template slot="message">
<a-icon type="exclamation-circle" theme="filled" style="color: #FFA031"></a-icon>
- {{ i18n "pages.xray.warpConfigsDesc" }}
+ {{ i18n "pages.xray.warpRoutingDesc" }}
</template>
</a-alert>
</a-row>
<a-list-item>
<template v-if="WarpExist">
- <setting-list-item type="switch" title='{{ i18n "pages.xray.GoogleWARP"}}' desc='{{ i18n "pages.xray.GoogleWARPDesc"}}' v-model="GoogleWARPSettings"></setting-list-item>
- <setting-list-item type="switch" title='{{ i18n "pages.xray.OpenAIWARP"}}' desc='{{ i18n "pages.xray.OpenAIWARPDesc"}}' v-model="OpenAIWARPSettings"></setting-list-item>
- <setting-list-item type="switch" title='{{ i18n "pages.xray.NetflixWARP"}}' desc='{{ i18n "pages.xray.NetflixWARPDesc"}}' v-model="NetflixWARPSettings"></setting-list-item>
- <setting-list-item type="switch" title='{{ i18n "pages.xray.SpotifyWARP"}}' desc='{{ i18n "pages.xray.SpotifyWARPDesc"}}' v-model="SpotifyWARPSettings"></setting-list-item>
- <setting-list-item type="switch" title='{{ i18n "pages.xray.MetaWARP"}}' desc='{{ i18n "pages.xray.MetaWARPDesc"}}' v-model="MetaWARPSettings"></setting-list-item>
- <setting-list-item type="switch" title='{{ i18n "pages.xray.AppleWARP"}}' desc='{{ i18n "pages.xray.AppleWARPDesc"}}' v-model="AppleWARPSettings"></setting-list-item>
- <setting-list-item type="switch" title='{{ i18n "pages.xray.RedditWARP"}}' desc='{{ i18n "pages.xray.RedditWARPDesc"}}' v-model="RedditWARPSettings"></setting-list-item>
+ <a-list-item>
+ <a-row style="padding: 0 20px">
+ <a-col :lg="24" :xl="12">
+ <a-list-item-meta
+ title='{{ i18n "pages.xray.warpRouting" }}'/>
+ </a-col>
+ <a-col :lg="24" :xl="12">
+ <template>
+ <a-select mode="tags" style="width: 100%"
+ v-model="warpDomains"
+ :dropdown-class-name="themeSwitcher.currentTheme">
+ <a-select-option :value="p.value" :label="p.label"
+ v-for="p in settingsData.ServicesOptions"> [[ p.label ]]
+ </a-select-option>
+ </a-select>
+ </template>
+ </a-col>
+ </a-row>
+ </a-list-item>
</template>
<a-button style="margin-left: 20px;" v-else type="primary" icon="cloud" @click="showWarp()">WARP</a-button>
</a-list-item>
@@ -859,52 +897,40 @@
protocols: {
bittorrent: ["bittorrent"],
},
- ips: {
- local: ["geoip:private"],
- cn: ["geoip:cn"],
- ir: ["ext:geoip_IR.dat:ir"],
- ru: ["geoip:ru"],
- vn: ["ext:geoip_VN.dat:vn"],
- },
- domains: {
- ads: [
- "geosite:category-ads-all",
- "ext:geosite_IR.dat:category-ads-all"
- ],
- security: [
- "ext:geosite_IR.dat:malware",
- "ext:geosite_IR.dat:phishing",
- "ext:geosite_IR.dat:cryptominers"
- ],
- speedtest: ["geosite:speedtest"],
- openai: ["geosite:openai"],
- google: ["geosite:google"],
- spotify: ["geosite:spotify"],
- netflix: ["geosite:netflix"],
- meta: ["geosite:meta"],
- apple: ["geosite:apple"],
- reddit: ["geosite:reddit"],
- cn: [
- "regexp:.*\\.cn$",
- "geosite:cn"
- ],
- ru: [
- "regexp:.*\\.ru$",
- "geosite:category-ru" //https://github.com/v2fly/domain-list-community/blob/master/data/category-ru
-
- ],
- ir: [
- "regexp:.*\\.ir$",
- "ext:geosite_IR.dat:ir",
- "geosite:category-ir", // https://github.com/v2fly/domain-list-community/blob/master/data/category-ir
- "regexp:.*\\.xn--mgba3a4f16a$" // .ایران
- ],
- vn: [
- "regexp:.*\\.vn$",
- "ext:geosite_VN.dat:vn",
- "ext:geosite_VN.dat:ads"
- ]
- },
+ IPsOptions: [
+ { label: 'Private IP', value: 'geoip:private' },
+ { label: '🇮🇷 Iran', value: 'ext:geoip_IR.dat:ir' },
+ { label: '🇨🇳 China', value: 'geoip:cn' },
+ { label: '🇷🇺 Russia', value: 'geoip:ru' },
+ { label: '🇻🇳 Vietnam', value: 'ext:geoip_VN.dat:vn' },
+ ],
+ DomainsOptions: [
+ { label: 'Ads All', value: 'geosite:category-ads-all' },
+ { label: 'Ads IR', value: 'ext:geosite_IR.dat:category-ads-all' },
+ { label: 'Ads VN', value: 'ext:geosite_VN.dat:ads' },
+ { label: 'Sec-IR malware', value: 'geosite_IR.dat:malware' },
+ { label: 'Sec-IR phishing', value: 'geosite_IR.dat:phishing' },
+ { label: 'Sec-IR cryptominers', value: 'geosite_IR.dat:cryptominers' },
+ { label: '🇮🇷 Iran', value: 'ext:geosite_IR.dat:ir' },
+ { label: '🇮🇷 .ir', value: 'regexp:.*\\.ir$' },
+ { label: '🇮🇷 .ایران', value: 'regexp:.*\\.xn--mgba3a4f16a$' },
+ { label: '🇨🇳 China', value: 'geosite:cn' },
+ { label: '🇨🇳 .cn', value: 'regexp:.*\\.cn$' },
+ { label: '🇷🇺 Russia', value: 'geosite:category-ru' }, //https://github.com/v2fly/domain-list-community/blob/master/data/category-ru
+ { label: '🇷🇺 .ru', value: 'regexp:.*\\.ru' },
+ { label: '🇻🇳 Vietnam', value: 'ext:geosite_VN.dat:vn' },
+ { label: '🇻🇳 .vn', value: 'regexp:.*\\.vn$' },
+ ],
+ ServicesOptions: [
+ { label: 'Apple', value: 'geosite:apple' },
+ { label: 'Meta', value: 'geosite:meta' },
+ { label: 'Google', value: 'geosite:google' },
+ { label: 'OpenAI', value: 'geosite:openai' },
+ { label: 'Spotify', value: 'geosite:spotify' },
+ { label: 'Netflix', value: 'geosite:netflix' },
+ { label: 'Reddit', value: 'geosite:reddit' },
+ { label: 'Speedtest', value: 'geosite:speedtest' },
+ ],
familyProtectDNS: {
"servers": [
"1.1.1.3", // https://developers.cloudflare.com/1.1.1.1/setup/
@@ -1861,54 +1887,6 @@
}
},
},
- privateIpSettings: {
- get: function () {
- return doAllItemsExist(this.settingsData.ips.local, this.blockedIPs);
- },
- set: function (newValue) {
- if (newValue) {
- this.blockedIPs = [...this.blockedIPs, ...this.settingsData.ips.local];
- } else {
- this.blockedIPs = this.blockedIPs.filter(data => !this.settingsData.ips.local.includes(data));
- }
- },
- },
- AdsSettings: {
- get: function () {
- return doAllItemsExist(this.settingsData.domains.ads, this.blockedDomains);
- },
- set: function (newValue) {
- if (newValue) {
- this.blockedDomains = [...this.blockedDomains, ...this.settingsData.domains.ads];
- } else {
- this.blockedDomains = this.blockedDomains.filter(data => !this.settingsData.domains.ads.includes(data));
- }
- },
- },
- SecuritySettings: {
- get: function () {
- return doAllItemsExist(this.settingsData.domains.security, this.blockedDomains);
- },
- set: function (newValue) {
- if (newValue) {
- this.blockedDomains = [...this.blockedDomains, ...this.settingsData.domains.security];
- } else {
- this.blockedDomains = this.blockedDomains.filter(data => !this.settingsData.domains.security.includes(data));
- }
- },
- },
- SpeedTestSettings: {
- get: function () {
- return doAllItemsExist(this.settingsData.domains.speedtest, this.blockedDomains);
- },
- set: function (newValue) {
- if (newValue) {
- this.blockedDomains = [...this.blockedDomains, ...this.settingsData.domains.speedtest];
- } else {
- this.blockedDomains = this.blockedDomains.filter(data => !this.settingsData.domains.speedtest.includes(data));
- }
- },
- },
familyProtectSettings: {
get: function () {
if (!this.templateSettings || !this.templateSettings.dns || !this.templateSettings.dns.servers) return false;
@@ -1924,311 +1902,11 @@
this.templateSettings = newTemplateSettings;
},
},
- GoogleIPv4Settings: {
- get: function () {
- return doAllItemsExist(this.settingsData.domains.google, this.ipv4Domains);
- },
- set: function (newValue) {
- if (newValue) {
- this.ipv4Domains = [...this.ipv4Domains, ...this.settingsData.domains.google];
- } else {
- this.ipv4Domains = this.ipv4Domains.filter(data => !this.settingsData.domains.google.includes(data));
- }
- },
- },
- NetflixIPv4Settings: {
- get: function () {
- return doAllItemsExist(this.settingsData.domains.netflix, this.ipv4Domains);
- },
- set: function (newValue) {
- if (newValue) {
- this.ipv4Domains = [...this.ipv4Domains, ...this.settingsData.domains.netflix];
- } else {
- this.ipv4Domains = this.ipv4Domains.filter(data => !this.settingsData.domains.netflix.includes(data));
- }
- },
- },
- IRIpSettings: {
- get: function () {
- return doAllItemsExist(this.settingsData.ips.ir, this.blockedIPs);
- },
- set: function (newValue) {
- if (newValue) {
- this.blockedIPs = [...this.blockedIPs, ...this.settingsData.ips.ir];
- } else {
- this.blockedIPs = this.blockedIPs.filter(data => !this.settingsData.ips.ir.includes(data));
- }
- }
- },
- IRDomainSettings: {
- get: function () {
- return doAllItemsExist(this.settingsData.domains.ir, this.blockedDomains);
- },
- set: function (newValue) {
- if (newValue) {
- this.blockedDomains = [...this.blockedDomains, ...this.settingsData.domains.ir];
- } else {
- this.blockedDomains = this.blockedDomains.filter(data => !this.settingsData.domains.ir.includes(data));
- }
- }
- },
- ChinaIpSettings: {
- get: function () {
- return doAllItemsExist(this.settingsData.ips.cn, this.blockedIPs);
- },
- set: function (newValue) {
- if (newValue) {
- this.blockedIPs = [...this.blockedIPs, ...this.settingsData.ips.cn];
- } else {
- this.blockedIPs = this.blockedIPs.filter(data => !this.settingsData.ips.cn.includes(data));
- }
- }
- },
- ChinaDomainSettings: {
- get: function () {
- return doAllItemsExist(this.settingsData.domains.cn, this.blockedDomains);
- },
- set: function (newValue) {
- if (newValue) {
- this.blockedDomains = [...this.blockedDomains, ...this.settingsData.domains.cn];
- } else {
- this.blockedDomains = this.blockedDomains.filter(data => !this.settingsData.domains.cn.includes(data));
- }
- }
- },
- RussiaIpSettings: {
- get: function () {
- return doAllItemsExist(this.settingsData.ips.ru, this.blockedIPs);
- },
- set: function (newValue) {
- if (newValue) {
- this.blockedIPs = [...this.blockedIPs, ...this.settingsData.ips.ru];
- } else {
- this.blockedIPs = this.blockedIPs.filter(data => !this.settingsData.ips.ru.includes(data));
- }
- }
- },
- RussiaDomainSettings: {
- get: function () {
- return doAllItemsExist(this.settingsData.domains.ru, this.blockedDomains);
- },
- set: function (newValue) {
- if (newValue) {
- this.blockedDomains = [...this.blockedDomains, ...this.settingsData.domains.ru];
- } else {
- this.blockedDomains = this.blockedDomains.filter(data => !this.settingsData.domains.ru.includes(data));
- }
- }
- },
- VNIpSettings: {
- get: function () {
- return doAllItemsExist(this.settingsData.ips.vn, this.blockedIPs);
- },
- set: function (newValue) {
- if (newValue) {
- this.blockedIPs = [...this.blockedIPs, ...this.settingsData.ips.vn];
- } else {
- this.blockedIPs = this.blockedIPs.filter(data => !this.settingsData.ips.vn.includes(data));
- }
- }
- },
- VNDomainSettings: {
- get: function () {
- return doAllItemsExist(this.settingsData.domains.vn, this.blockedDomains);
- },
- set: function (newValue) {
- if (newValue) {
- this.blockedDomains = [...this.blockedDomains, ...this.settingsData.domains.vn];
- } else {
- this.blockedDomains = this.blockedDomains.filter(data => !this.settingsData.domains.vn.includes(data));
- }
- }
- },
- IRIpDirectSettings: {
- get: function () {
- return doAllItemsExist(this.settingsData.ips.ir, this.directIPs);
- },
- set: function (newValue) {
- if (newValue) {
- this.directIPs = [...this.directIPs, ...this.settingsData.ips.ir];
- } else {
- this.directIPs = this.directIPs.filter(data => !this.settingsData.ips.ir.includes(data));
- }
- }
- },
- IRDomainDirectSettings: {
- get: function () {
- return doAllItemsExist(this.settingsData.domains.ir, this.directDomains);
- },
- set: function (newValue) {
- if (newValue) {
- this.directDomains = [...this.directDomains, ...this.settingsData.domains.ir];
- } else {
- this.directDomains = this.directDomains.filter(data => !this.settingsData.domains.ir.includes(data));
- }
- }
- },
- ChinaIpDirectSettings: {
- get: function () {
- return doAllItemsExist(this.settingsData.ips.cn, this.directIPs);
- },
- set: function (newValue) {
- if (newValue) {
- this.directIPs = [...this.directIPs, ...this.settingsData.ips.cn];
- } else {
- this.directIPs = this.directIPs.filter(data => !this.settingsData.ips.cn.includes(data));
- }
- }
- },
- ChinaDomainDirectSettings: {
- get: function () {
- return doAllItemsExist(this.settingsData.domains.cn, this.directDomains);
- },
- set: function (newValue) {
- if (newValue) {
- this.directDomains = [...this.directDomains, ...this.settingsData.domains.cn];
- } else {
- this.directDomains = this.directDomains.filter(data => !this.settingsData.domains.cn.includes(data));
- }
- }
- },
- RussiaIpDirectSettings: {
- get: function () {
- return doAllItemsExist(this.settingsData.ips.ru, this.directIPs);
- },
- set: function (newValue) {
- if (newValue) {
- this.directIPs = [...this.directIPs, ...this.settingsData.ips.ru];
- } else {
- this.directIPs = this.directIPs.filter(data => !this.settingsData.ips.ru.includes(data));
- }
- }
- },
- RussiaDomainDirectSettings: {
- get: function () {
- return doAllItemsExist(this.settingsData.domains.ru, this.directDomains);
- },
- set: function (newValue) {
- if (newValue) {
- this.directDomains = [...this.directDomains, ...this.settingsData.domains.ru];
- } else {
- this.directDomains = this.directDomains.filter(data => !this.settingsData.domains.ru.includes(data));
- }
- }
- },
- VNIpDirectSettings: {
- get: function () {
- return doAllItemsExist(this.settingsData.ips.vn, this.directIPs);
- },
- set: function (newValue) {
- if (newValue) {
- this.directIPs = [...this.directIPs, ...this.settingsData.ips.vn];
- } else {
- this.directIPs = this.directIPs.filter(data => !this.settingsData.ips.vn.includes(data));
- }
- }
- },
- VNDomainDirectSettings: {
- get: function () {
- return doAllItemsExist(this.settingsData.domains.vn, this.directDomains);
- },
- set: function (newValue) {
- if (newValue) {
- this.directDomains = [...this.directDomains, ...this.settingsData.domains.vn];
- } else {
- this.directDomains = this.directDomains.filter(data => !this.settingsData.domains.vn.includes(data));
- }
- }
- },
WarpExist: {
get: function() {
return this.templateSettings ? this.templateSettings.outbounds.findIndex((o) => o.tag == "warp")>=0 : false;
},
},
- GoogleWARPSettings: {
- get: function () {
- return doAllItemsExist(this.settingsData.domains.google, this.warpDomains);
- },
- set: function (newValue) {
- if (newValue) {
- this.warpDomains = [...this.warpDomains, ...this.settingsData.domains.google];
- } else {
- this.warpDomains = this.warpDomains.filter(data => !this.settingsData.domains.google.includes(data));
- }
- },
- },
- OpenAIWARPSettings: {
- get: function () {
- return doAllItemsExist(this.settingsData.domains.openai, this.warpDomains);
- },
- set: function (newValue) {
- if (newValue) {
- this.warpDomains = [...this.warpDomains, ...this.settingsData.domains.openai];
- } else {
- this.warpDomains = this.warpDomains.filter(data => !this.settingsData.domains.openai.includes(data));
- }
- },
- },
- NetflixWARPSettings: {
- get: function () {
- return doAllItemsExist(this.settingsData.domains.netflix, this.warpDomains);
- },
- set: function (newValue) {
- if (newValue) {
- this.warpDomains = [...this.warpDomains, ...this.settingsData.domains.netflix];
- } else {
- this.warpDomains = this.warpDomains.filter(data => !this.settingsData.domains.netflix.includes(data));
- }
- },
- },
- MetaWARPSettings: {
- get: function () {
- return doAllItemsExist(this.settingsData.domains.meta, this.warpDomains);
- },
- set: function (newValue) {
- if (newValue) {
- this.warpDomains = [...this.warpDomains, ...this.settingsData.domains.meta];
- } else {
- this.warpDomains = this.warpDomains.filter(data => !this.settingsData.domains.meta.includes(data));
- }
- },
- },
- AppleWARPSettings: {
- get: function () {
- return doAllItemsExist(this.settingsData.domains.apple, this.warpDomains);
- },
- set: function (newValue) {
- if (newValue) {
- this.warpDomains = [...this.warpDomains, ...this.settingsData.domains.apple];
- } else {
- this.warpDomains = this.warpDomains.filter(data => !this.settingsData.domains.apple.includes(data));
- }
- },
- },