浏览代码

luci-app-ssr-plus: Add update time choose.

实际使用中,除非特殊情况下,订阅和数据库没必要日日更新。

Signed-off-by: Zxl hhyccc <[email protected]>
zxlhhyccc 10 月之前
父节点
当前提交
f3d73bfd64

+ 23 - 1
luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua

@@ -19,12 +19,34 @@ o = s:option(Flag, "auto_update", translate("Auto Update"))
 o.rmempty = false
 o.description = translate("Auto Update Server subscription, GFW list and CHN route")
 
-o = s:option(ListValue, "auto_update_time", translate("Update time (every day)"))
+o = s:option(ListValue, "auto_update_week_time", translate("Update Time (Every Week)"))
+o:value('*', translate("Every Day"))
+o:value("1", translate("Every Monday"))
+o:value("2", translate("Every Tuesday"))
+o:value("3", translate("Every Wednesday"))
+o:value("4", translate("Every Thursday"))
+o:value("5", translate("Every Friday"))
+o:value("6", translate("Every Saturday"))
+o:value("0", translate("Every Sunday"))
+o.default = "*"
+o.rmempty = false
+o:depends("auto_update", "1")
+
+o = s:option(ListValue, "auto_update_day_time", translate("Update time (every day)"))
 for t = 0, 23 do
 	o:value(t, t .. ":00")
 end
 o.default = 2
 o.rmempty = false
+o:depends("auto_update", "1")
+
+o = s:option(ListValue, "auto_update_min_time", translate("Update Interval (min)"))
+for i = 0, 59 do
+    o:value(i, i .. ":00")
+end
+o.default = 30
+o.rmempty = false
+o:depends("auto_update", "1")
 
 o = s:option(DynamicList, "subscribe_url", translate("Subscribe URL"))
 o.rmempty = true

+ 30 - 0
luci-app-ssr-plus/po/zh_Hans/ssr-plus.po

@@ -608,6 +608,36 @@ msgstr "格式为 IP:PORT(默认:禁用)"
 msgid "Update time (every day)"
 msgstr "更新时间(每天)"
 
+msgid "Update Time (Every Week)"
+msgstr "更新时间(每周)"
+
+msgid "Update Interval (min)"
+msgstr "更新间隔 (分钟)"
+
+msgid "Every Day"
+msgstr "每天"
+
+msgid "Every Monday"
+msgstr "每周一"
+
+msgid "Every Tuesday"
+msgstr "每周二"
+
+msgid "Every Wednesday"
+msgstr "每周三"
+
+msgid "Every Thursday"
+msgstr "每周四"
+
+msgid "Every Friday"
+msgstr "每周五"
+
+msgid "Every Saturday"
+msgstr "每周六"
+
+msgid "Every Sunday"
+msgstr "每周日"
+
 msgid "Auto Update Server subscription, GFW list and CHN route"
 msgstr "自动更新服务器订阅、GFW 列表和中国大陆 IP 段"
 

+ 2 - 2
luci-app-ssr-plus/root/etc/init.d/shadowsocksr

@@ -69,7 +69,7 @@ uci_get_by_name() {
 
 uci_get_by_type() {
 	local ret=$(uci get $NAME.@$1[0].$2 2>/dev/null)
-	echo ${ret:=$3}
+	echo "${ret:=$3}"
 }
 
 uci_set_by_name() {
@@ -123,7 +123,7 @@ echolog() {
 add_cron() {
 	touch $CRON_FILE
 	sed -i '/ssrplus.log/d' $CRON_FILE
-	[ $(uci_get_by_type server_subscribe auto_update 0) -eq 1 ] && echo "0 $(uci_get_by_type server_subscribe auto_update_time) * * * /usr/share/shadowsocksr/ssrplusupdate.sh >$LOG_FILE" >>$CRON_FILE
+	[ $(uci_get_by_type server_subscribe auto_update 0) -eq 1 ] && echo "$(uci_get_by_type server_subscribe auto_update_min_time) $(uci_get_by_type server_subscribe auto_update_day_time) * * $(uci_get_by_type server_subscribe auto_update_week_time) /usr/share/shadowsocksr/ssrplusupdate.sh >$LOG_FILE" >>$CRON_FILE
 	crontab $CRON_FILE
 }
 

+ 12 - 1
luci-app-ssr-plus/root/etc/uci-defaults/luci-ssr-plus

@@ -30,12 +30,23 @@ touch /etc/ssrplus/ad.conf
 touch /etc/config/shadowsocksr
 
 if [ -s "/etc/config/shadowsocksr" ]; then
+    if uci -q get shadowsocksr.@server_subscribe[0].auto_update_time > /dev/null; then
+        uci -q delete shadowsocksr.@server_subscribe[0].auto_update_time
+    fi
+
+    if ! uci -q get shadowsocksr.@server_subscribe[0].auto_update_week_time > /dev/null; then
+        uci -q set shadowsocksr.@server_subscribe[0].auto_update_week_time='*'
+        uci -q set shadowsocksr.@server_subscribe[0].auto_update_day_time='2'
+        uci -q set shadowsocksr.@server_subscribe[0].auto_update_min_time='0'
+    fi
+
     if ! uci -q get shadowsocksr.@global_xray_fragment[0] > /dev/null; then
         uci -q add shadowsocksr global_xray_fragment
         uci -q set shadowsocksr.@global_xray_fragment[0].fragment='0'
         uci -q set shadowsocksr.@global_xray_fragment[0].noise='0'
-        uci -q commit shadowsocksr
     fi
+
+    uci -q commit shadowsocksr
 fi
 
 [ -s "/etc/config/shadowsocksr" ] || /etc/init.d/shadowsocksr reset

+ 3 - 1
luci-app-ssr-plus/root/usr/share/shadowsocksr/shadowsocksr.config

@@ -22,8 +22,10 @@ config global
 
 config server_subscribe
 	option proxy '0'
-	option auto_update_time '2'
 	option auto_update '1'
+	option auto_update_week_time '*'
+	option auto_update_day_time '2'
+	option auto_update_min_time '0'
 	option filter_words '过期时间/剩余流量/QQ群/官网/防失联地址/回国'
 
 config access_control