diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 1b2c2298..c8eb33dd 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -55,11 +55,13 @@ jobs: unzip Xray-linux-arm64-v8a.zip rm -f Xray-linux-arm64-v8a.zip fi - rm -f geoip.dat geosite.dat geoip_IR.dat geosite_IR.dat + rm -f geoip.dat geosite.dat geoip_IR.dat geosite_IR.dat geoip_VN.dat geosite_VN.dat wget https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geoip.dat wget https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geosite.dat wget -O geoip_IR.dat https://github.com/chocolate4u/Iran-v2ray-rules/releases/latest/download/geoip.dat wget -O geosite_IR.dat https://github.com/chocolate4u/Iran-v2ray-rules/releases/latest/download/geosite.dat + wget -O geoip_VN.dat https://github.com/vuong2023/vn-v2ray-rules/releases/latest/download/geoip.dat + wget -O geosite_VN.dat https://github.com/vuong2023/vn-v2ray-rules/releases/latest/download/geosite.dat mv xray xray-linux-${{ matrix.platform }} cd ../.. diff --git a/web/html/xui/xray.html b/web/html/xui/xray.html index 605f01b1..4a2ae38b 100644 --- a/web/html/xui/xray.html +++ b/web/html/xui/xray.html @@ -174,6 +174,8 @@ + + @@ -190,6 +192,8 @@ + + @@ -533,6 +537,7 @@ cn: ["geoip:cn"], ir: ["ext:geoip_IR.dat:ir"], ru: ["geoip:ru"], + vn: ["ext:geoip_VN.dat:vn"], }, domains: { ads: [ @@ -556,7 +561,12 @@ "regexp:.*\\.ir$", "regexp:.*\\.xn--mgba3a4f16a$", // .ایران "ext:geosite_IR.dat:ir" // have rules to bypass all .ir domains. - ] + ], + vn: [ + "regexp:.*\\.vn$", + "ext:geosite_VN.dat:vn", + "ext:geosite_VN.dat:ads" + ] }, familyProtectDNS: { "servers": [ @@ -1278,6 +1288,30 @@ } } }, + 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); @@ -1350,6 +1384,30 @@ } } }, + 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)); + } + } + }, GoogleWARPSettings: { get: function () { return doAllItemsExist(this.settingsData.domains.google, this.warpDomains); diff --git a/web/translation/translate.vi_VN.toml b/web/translation/translate.vi_VN.toml index 38e908a1..122357d8 100644 --- a/web/translation/translate.vi_VN.toml +++ b/web/translation/translate.vi_VN.toml @@ -343,6 +343,10 @@ "RussiaIpDesc" = "Thay đổi mẫu cấu hình để tránh kết nối đến dải IP của Nga." "RussiaDomain" = "Vô hiệu hóa kết nối đến tên miền của Nga" "RussiaDomainDesc" = "Thay đổi mẫu cấu hình để tránh kết nối đến các tên miền của Nga." +"VNIp" = "Vô hiệu hóa kết nối đến dải IP của Việt Nam" +"VNIpDesc" = "Thay đổi mẫu cấu hình để tránh kết nối đến dải IP của Việt Nam." +"VNDomain" = "Vô hiệu hóa kết nối đến tên miền của Việt Nam" +"VNDomainDesc" = "Thay đổi mẫu cấu hình để tránh kết nối đến các tên miền của Việt Nam." "DirectIRIp" = "Kết nối trực tiếp đến dải IP của Iran" "DirectIRIpDesc" = "Thay đổi mẫu cấu hình cho kết nối trực tiếp đến dải IP của Iran." "DirectIRDomain" = "Kết nối trực tiếp đến tên miền của Iran" @@ -355,6 +359,10 @@ "DirectRussiaIpDesc" = "Thay đổi mẫu cấu hình cho kết nối trực tiếp đến dải IP của Nga." "DirectRussiaDomain" = "Kết nối trực tiếp đến tên miền của Nga" "DirectRussiaDomainDesc" = "Thay đổi mẫu cấu hình cho kết nối trực tiếp đến các tên miền của Nga." +"DirectVNIp" = "Kết nối trực tiếp đến dải IP của Việt Nam" +"DirectVNIpDesc" = "Thay đổi mẫu cấu hình cho kết nối trực tiếp đến dải IP của Việt Nam" +"DirectVNDomain" = "Kết nối trực tiếp đến tên miền của Việt Nam" +"DirectVNDomainDesc" = "Thay đổi mẫu cấu hình cho kết nối trực tiếp đến các tên miền của Việt Nam." "GoogleIPv4" = "Sử dụng IPv4 cho Google" "GoogleIPv4Desc" = "Thêm định tuyến cho Google để kết nối qua IPv4." "NetflixIPv4" = "Sử dụng IPv4 cho Netflix" diff --git a/x-ui.sh b/x-ui.sh index 51c79cc1..fd411311 100644 --- a/x-ui.sh +++ b/x-ui.sh @@ -519,11 +519,13 @@ update_geo() { systemctl stop x-ui cd ${binFolder} - rm -f geoip.dat geosite.dat geoip_IR.dat geosite_IR.dat + rm -f geoip.dat geosite.dat geoip_IR.dat geosite_IR.dat geoip_VN.dat geosite_VN.dat wget -N https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geoip.dat wget -N https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geosite.dat wget -O geoip_IR.dat -N https://github.com/chocolate4u/Iran-v2ray-rules/releases/latest/download/geoip.dat wget -O geosite_IR.dat -N https://github.com/chocolate4u/Iran-v2ray-rules/releases/latest/download/geosite.dat + wget -O geoip_VN.dat https://github.com/vuong2023/vn-v2ray-rules/releases/latest/download/geoip.dat + wget -O geosite_VN.dat https://github.com/vuong2023/vn-v2ray-rules/releases/latest/download/geosite.dat systemctl start x-ui echo -e "${green}Geosite.dat + Geoip.dat + geoip_IR.dat + geosite_IR.dat have been updated successfully in bin folder '${binfolder}'!${plain}" before_show_menu