luci-app-mosdns: config_custom: Add custom Geodata database entry export

This commit is contained in:
sbwml 2023-03-30 00:25:37 +08:00
parent c5d78865dc
commit 2511b9c6f0
3 changed files with 35 additions and 1 deletions

View File

@ -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") .. '<br />' .. 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") .. '<br />' .. translate("Export directory: /var/mosdns"))
o:depends("configfile", "/etc/mosdns/config_custom.yaml")
return m

View File

@ -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"

View File

@ -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
}