From 2511b9c6f0195f40b3f980d069224b71b2b5b595 Mon Sep 17 00:00:00 2001 From: sbwml Date: Thu, 30 Mar 2023 00:25:37 +0800 Subject: [PATCH] luci-app-mosdns: `config_custom`: Add custom Geodata database entry export --- .../luasrc/model/cbi/mosdns/basic.lua | 8 ++++++++ luci-app-mosdns/po/zh-cn/mosdns.po | 18 ++++++++++++++++++ .../root/usr/share/mosdns/mosdns.sh | 10 +++++++++- 3 files changed, 35 insertions(+), 1 deletion(-) diff --git a/luci-app-mosdns/luasrc/model/cbi/mosdns/basic.lua b/luci-app-mosdns/luasrc/model/cbi/mosdns/basic.lua index 3d693c6..cccafb0 100644 --- a/luci-app-mosdns/luasrc/model/cbi/mosdns/basic.lua +++ b/luci-app-mosdns/luasrc/model/cbi/mosdns/basic.lua @@ -205,4 +205,12 @@ o.rawhtml = true o.template = "mosdns/mosdns_flush_cache" o:depends("enabled_api", "1") +s:tab("geodata", translate("GeoData Export")) + +o = s:taboption("geodata", DynamicList, "geosite_tags", translate("GeoSite Tags"), translate("Enter the GeoSite.dat category to be exported, Allow add multiple tags") .. '
' .. translate("Export directory: /var/mosdns")) +o:depends("configfile", "/etc/mosdns/config_custom.yaml") + +o = s:taboption("geodata", DynamicList, "geoip_tags", translate("GeoIP Tags"), translate("Enter the GeoIP.dat category to be exported, Allow add multiple tags") .. '
' .. translate("Export directory: /var/mosdns")) +o:depends("configfile", "/etc/mosdns/config_custom.yaml") + return m diff --git a/luci-app-mosdns/po/zh-cn/mosdns.po b/luci-app-mosdns/po/zh-cn/mosdns.po index e4cb52c..c756ca3 100644 --- a/luci-app-mosdns/po/zh-cn/mosdns.po +++ b/luci-app-mosdns/po/zh-cn/mosdns.po @@ -288,3 +288,21 @@ msgstr "PTR 黑名单" msgid "These domains are blocked from PTR requests" msgstr "加入的域名将阻止 PTR 请求(每个域名一行,支持域名匹配规则)" + +msgid "GeoData Export" +msgstr "GeoData 导出" + +msgid "GeoSite Tags" +msgstr "GeoSite 标签" + +msgid "Enter the GeoSite.dat category to be exported, Allow add multiple tags" +msgstr "填写需要导出的 GeoSite.dat 类别条目,允许添加多个标签" + +msgid "GeoIP Tags" +msgstr "GeoIP 标签" + +msgid "Enter the GeoIP.dat category to be exported, Allow add multiple tags" +msgstr "输入需要导出的 GeoIP.dat 类别条目,允许添加多个标签" + +msgid "Export directory: /var/mosdns" +msgstr "导出目录:/var/mosdns" diff --git a/luci-app-mosdns/root/usr/share/mosdns/mosdns.sh b/luci-app-mosdns/root/usr/share/mosdns/mosdns.sh index 62b6590..d2495a0 100755 --- a/luci-app-mosdns/root/usr/share/mosdns/mosdns.sh +++ b/luci-app-mosdns/root/usr/share/mosdns/mosdns.sh @@ -106,11 +106,19 @@ v2dat_dump() { configfile=$(uci -q get mosdns.config.configfile) mkdir -p /var/mosdns rm -f /var/mosdns/geo*.txt - # default config if [ "$configfile" = "/etc/mosdns/config.yaml" ]; then + # default config v2dat unpack geoip -o /var/mosdns -f cn $v2dat_dir/geoip.dat v2dat unpack geosite -o /var/mosdns -f cn -f 'geolocation-!cn' $v2dat_dir/geosite.dat [ "$adblock" -eq 1 ] && [ "$ad_source" = "geosite.dat" ] && v2dat unpack geosite -o /var/mosdns -f category-ads-all $v2dat_dir/geosite.dat + else + # custom config + v2dat unpack geoip -o /var/mosdns -f cn $v2dat_dir/geoip.dat + v2dat unpack geosite -o /var/mosdns -f cn -f 'geolocation-!cn' $v2dat_dir/geosite.dat + geoip_tags=$(uci -q get mosdns.config.geoip_tags) + geosite_tags=$(uci -q get mosdns.config.geosite_tags) + [ -n "$geoip_tags" ] && v2dat unpack geoip -o /var/mosdns $(echo $geoip_tags | sed -r 's/\w+/-f &/g') $v2dat_dir/geoip.dat + [ -n "$geosite_tags" ] && v2dat unpack geosite -o /var/mosdns $(echo $geosite_tags | sed -r 's/\w+/-f &/g') $v2dat_dir/geosite.dat fi }