From c137e9c9222b1686451befe09d13ed3a593307eb Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 22 Jun 2023 14:01:04 +0800 Subject: [PATCH] update 2023-06-22 14:01:04 --- luci-app-alist/luasrc/controller/alist.lua | 4 +-- .../luasrc/model/cbi/alist/basic.lua | 29 +++++++++++++++++++ luci-app-alist/po/zh-cn/alist.po | 21 ++++++++++++++ luci-app-alist/root/etc/init.d/alist | 23 +++++++++++---- 4 files changed, 69 insertions(+), 8 deletions(-) diff --git a/luci-app-alist/luasrc/controller/alist.lua b/luci-app-alist/luasrc/controller/alist.lua index 4f192ec0..063aa37e 100644 --- a/luci-app-alist/luasrc/controller/alist.lua +++ b/luci-app-alist/luasrc/controller/alist.lua @@ -41,8 +41,8 @@ function clear_log() end function admin_info() - local username = luci.sys.exec("/usr/bin/alist --data /etc/alist password 2>&1 | tail -2 | awk 'NR==1 {print $2}'") - local password = luci.sys.exec("/usr/bin/alist --data /etc/alist password 2>&1 | tail -2 | awk 'NR==2 {print $2}'") + local username = luci.sys.exec("/usr/bin/alist --data $(uci -q get alist.@alist[0].data_dir) password 2>&1 | tail -2 | awk 'NR==1 {print $2}'") + local password = luci.sys.exec("/usr/bin/alist --data $(uci -q get alist.@alist[0].data_dir) password 2>&1 | tail -2 | awk 'NR==2 {print $2}'") luci.http.prepare_content("application/json") luci.http.write_json({username = username, password = password}) diff --git a/luci-app-alist/luasrc/model/cbi/alist/basic.lua b/luci-app-alist/luasrc/model/cbi/alist/basic.lua index b550b42a..5b7723b3 100644 --- a/luci-app-alist/luasrc/model/cbi/alist/basic.lua +++ b/luci-app-alist/luasrc/model/cbi/alist/basic.lua @@ -31,6 +31,31 @@ o = s:option(Value,"ssl_key", translate("SSL key"), translate("SSL key file path o.datatype = "file" o:depends("ssl", "1") +o = s:option(Flag, "mysql", translate("Enable MySQL")) +o.rmempty=false + +o = s:option(Value,"mysql_host", translate("MySQL Host")) +o.datatype = "string" +o:depends("mysql", "1") + +o = s:option(Value,"mysql_port", translate("MySQL Port")) +o.datatype = "and(port,min(1))" +o.default = "3306" +o:depends("mysql", "1") + +o = s:option(Value,"mysql_username", translate("MySQL Username")) +o.datatype = "string" +o:depends("mysql", "1") + +o = s:option(Value,"mysql_password", translate("MySQL Password")) +o.datatype = "string" +o.password = true +o:depends("mysql", "1") + +o = s:option(Value,"mysql_database", translate("Database Name")) +o.datatype = "string" +o:depends("mysql", "1") + o = s:option(Flag, "allow_wan", translate("Allow Access From Internet")) o.rmempty = false @@ -52,6 +77,10 @@ o.datatype = "and(uinteger,min(0))" o.default = "0" o.rmempty = false +o = s:option(Value, "data_dir", translate("Data directory")) +o.datatype = "string" +o.default = "/etc/alist" + o = s:option(Value, "temp_dir", translate("Cache directory")) o.datatype = "string" o.default = "/tmp/alist" diff --git a/luci-app-alist/po/zh-cn/alist.po b/luci-app-alist/po/zh-cn/alist.po index beebf07a..1f996d93 100644 --- a/luci-app-alist/po/zh-cn/alist.po +++ b/luci-app-alist/po/zh-cn/alist.po @@ -34,6 +34,9 @@ msgstr "SSL 密钥" msgid "SSL key file path" msgstr "SSL 密钥文件路径" +msgid "Data directory" +msgstr "数据目录" + msgid "Cache directory" msgstr "缓存目录" @@ -93,3 +96,21 @@ msgstr "Web 被反向代理到二级目录时,必须填写该选项以确保 W msgid "Delayed Start (seconds)" msgstr "开机延时启动(秒)" + +msgid "Enable MySQL" +msgstr "启用 MySQL" + +msgid "MySQL Host" +msgstr "主机" + +msgid "MySQL Port" +msgstr "端口" + +msgid "MySQL Username" +msgstr "用户名" + +msgid "MySQL Password" +msgstr "密码" + +msgid "Database Name" +msgstr "数据库名" diff --git a/luci-app-alist/root/etc/init.d/alist b/luci-app-alist/root/etc/init.d/alist index 6edf9865..c6de70fb 100755 --- a/luci-app-alist/root/etc/init.d/alist +++ b/luci-app-alist/root/etc/init.d/alist @@ -3,13 +3,13 @@ START=99 USE_PROCD=1 PROG=/usr/bin/alist -CONFIG_DIR=/etc/alist get_config() { config_get_bool enabled $1 enabled 1 config_get port $1 port 5244 config_get log $1 log 1 config_get site_url $1 site_url "" + config_get data_dir $1 data_dir "/etc/alist" config_get temp_dir $1 temp_dir "/tmp/alist" config_get ssl $1 ssl 0 config_get ssl_cert $1 ssl_cert "" @@ -18,6 +18,15 @@ get_config() { config_get allow_wan $1 allow_wan 0 config_get max_connections $1 max_connections 0 config_get delayed_start $1 delayed_start 0 + + # mysql + config_get mysql $1 mysql 0 + config_get mysql_host $1 mysql_host "" + config_get mysql_port $1 mysql_port "3306" + config_get mysql_username $1 mysql_username "" + config_get mysql_password $1 mysql_password "" + config_get mysql_database $1 mysql_database "" + config_load network config_get lan_addr lan ipaddr "0.0.0.0" if echo "${lan_addr}" | grep -Fq ' '; then @@ -50,11 +59,11 @@ start_service() { config_load alist config_foreach get_config alist [ $enabled != 1 ] && return 1 - mkdir -p $temp_dir + mkdir -p $temp_dir $data_dir [ "$ssl" -eq 1 ] && SSL=true || SSL=false [ "$log" -eq 1 ] && LOG=true || LOG=false if [ -e /proc/uptime ]; then - [ $(awk -F. '{print $1}' /proc/uptime) -lt "300" ] && delayed_start=$delayed_start || delayed_start=0 + [ $(awk -F. '{print $1}' /proc/uptime) -lt "120" ] && delayed_start=$delayed_start || delayed_start=0 else delayed_start=$delayed_start fi @@ -65,14 +74,16 @@ start_service() { listen_addr=$lan_addr external_access="deny" fi + # mysql + [ "$mysql" -eq 1 ] && database=mysql || database=sqlite3 set_firewall cat /dev/null > $temp_dir/alist.log - cat > $CONFIG_DIR/config.json < $data_dir/config.json <