From ac47a44a002480a2df8e5be2362f5a7eaf8a069b Mon Sep 17 00:00:00 2001 From: CN_SZTL Date: Sun, 25 Oct 2020 14:43:39 +0800 Subject: [PATCH] luci-app-unblockneteasemusic-go: bump to v1.14 --- .../luci-app-unblockneteasemusic-go/Makefile | 6 +- .../luasrc/controller/unblockneteasemusic.lua | 5 +- .../luasrc/model/cbi/unblockneteasemusic.lua | 57 ----------- .../model/cbi/unblockneteasemusic_senior.lua | 94 +++++++++++++++++++ .../root/etc/config/unblockneteasemusic | 4 + .../hotplug.d/iface/99-unblockneteasemusic | 6 -- .../root/etc/init.d/unblockneteasemusic | 63 ++++++++----- .../share/UnblockNeteaseMusic/log_check.sh | 4 +- .../UnblockNeteaseMusic/version_check.sh | 62 ++++++++++++ 9 files changed, 205 insertions(+), 96 deletions(-) create mode 100644 package/lean/luci-app-unblockneteasemusic-go/luasrc/model/cbi/unblockneteasemusic_senior.lua create mode 100755 package/lean/luci-app-unblockneteasemusic-go/root/usr/share/UnblockNeteaseMusic/version_check.sh diff --git a/package/lean/luci-app-unblockneteasemusic-go/Makefile b/package/lean/luci-app-unblockneteasemusic-go/Makefile index 8b11c61c59..f7b3a54d3a 100644 --- a/package/lean/luci-app-unblockneteasemusic-go/Makefile +++ b/package/lean/luci-app-unblockneteasemusic-go/Makefile @@ -1,11 +1,11 @@ # Copyright (C) 2020 Silvan include $(TOPDIR)/rules.mk -LUCI_TITLE:=LuCI support for UnblockNeteaseMusic Go -LUCI_DEPENDS:=+bash +busybox +coreutils +coreutils-nohup +curl +dnsmasq-full +openssl-util +ipset +UnblockNeteaseMusic-Go +LUCI_TITLE:=LuCI support for UnblockNeteaseMusic-Go +LUCI_DEPENDS:=+bash +busybox +unzip +coreutils +coreutils-nohup +curl +dnsmasq-full +ipset +luci-compat +openssl-util +UnblockNeteaseMusic-Go LUCI_PKGARCH:=all PKG_NAME:=luci-app-unblockneteasemusic-go -PKG_VERSION:=1.9 +PKG_VERSION:=1.14 PKG_RELEASE:=1 PKG_MAINTAINER:=https://github.com/cnsilvan/luci-app-unblockneteasemusic diff --git a/package/lean/luci-app-unblockneteasemusic-go/luasrc/controller/unblockneteasemusic.lua b/package/lean/luci-app-unblockneteasemusic-go/luasrc/controller/unblockneteasemusic.lua index 06bd1fbd99..023e60dca1 100644 --- a/package/lean/luci-app-unblockneteasemusic-go/luasrc/controller/unblockneteasemusic.lua +++ b/package/lean/luci-app-unblockneteasemusic-go/luasrc/controller/unblockneteasemusic.lua @@ -9,10 +9,11 @@ function index() return end - entry({"admin", "services", "unblockneteasemusic"},firstchild(), _("解除网易云音乐播放限制"), 50).dependent = false + entry({"admin", "services", "unblockneteasemusic"},firstchild(), _("解除云音乐播放限制"), 50).dependent = false entry({"admin", "services", "unblockneteasemusic", "general"},cbi("unblockneteasemusic"), _("基本设定"), 1) - entry({"admin", "services", "unblockneteasemusic", "log"},form("unblockneteasemusic_log"), _("日志"), 2) + entry({"admin", "services", "unblockneteasemusic", "senior"},cbi("unblockneteasemusic_senior"), _("高级设定"), 2) + entry({"admin", "services", "unblockneteasemusic", "log"},form("unblockneteasemusic_log"), _("日志"), 3) entry({"admin", "services", "unblockneteasemusic", "status"},call("act_status")).leaf=true end diff --git a/package/lean/luci-app-unblockneteasemusic-go/luasrc/model/cbi/unblockneteasemusic.lua b/package/lean/luci-app-unblockneteasemusic-go/luasrc/model/cbi/unblockneteasemusic.lua index 77e3d2d32c..f28636fc89 100644 --- a/package/lean/luci-app-unblockneteasemusic-go/luasrc/model/cbi/unblockneteasemusic.lua +++ b/package/lean/luci-app-unblockneteasemusic-go/luasrc/model/cbi/unblockneteasemusic.lua @@ -1,4 +1,3 @@ -local http = luci.http mp = Map("unblockneteasemusic", translate("解除网易云音乐播放限制 (Golang)")) mp.description = translate("原理:采用 [酷我/酷狗/咪咕] 音源(后续有空补充),替换网易云音乐 灰色 歌曲链接
具体使用方法参见:https://github.com/cnsilvan/luci-app-unblockneteasemusic
提示:客户端网易云音乐能用就别升级app,最新版本不一定能用") @@ -48,63 +47,7 @@ hijack.description = translate("如果使用Hosts劫持,请将HTTP/HTTPS端口 hijack.default = "dont_hijack" hijack.rmempty = false -search_limit = s:option(Value, "search_limit", translate("搜索结果限制")) -search_limit.description = translate("在搜索页面显示其他平台搜索结果个数,可填(0-3)") -search_limit.default = "0" -search_limit.rmempty = false -daemon_enable = s:option(Flag, "daemon_enable", translate("启用进程守护")) -daemon_enable.description = translate("开启后,附属程序会自动检测主程序运行状态,在主程序退出时自动重启") -daemon_enable.default = 0 -daemon_enable.rmempty = false -endpoint_enable = s:option(Flag, "endpoint_enable", translate("启用地址转换")) -endpoint_enable.description = translate("开启后,设备需要信任证书,经测试ios设备需要开启,android设备使用咪咕源下载时需要开启,其他情况无法使用时再开启尝试") -endpoint_enable.default = 0 -endpoint_enable.rmempty = false -force_best_quality = s:option(Flag, "force_best_quality", translate("强制音质优先")) -force_best_quality.description = translate("开启后,客户端选择音质将失效") -force_best_quality.default = 0 -force_best_quality.rmempty = false - -delete = s:option(Button,"_delete", translate("删除根证书")) -delete.description = translate("删除证书,以便下次启动时生成,可用于解决过期证书等问题") -delete.inputstyle = "reload" -delete.write = function() - delete_() -end -download = s:option(Button,"_download", translate("下载根证书")) -download.description = translate("请在客户端信任该证书。该证书由你设备自动生成,安全可靠
IOS信任证书步骤:1. 安装证书--设置-描述文件-安装 2. 通用-关于本机-证书信任设置-启动完全信任") -download.inputstyle = "reload" -download.write = function() - download_() -end - -function download_() - local sFile, block - sFile=nixio.open("/usr/share/UnblockNeteaseMusic/ca.crt","r") - http.header('Content-Disposition','attachment; filename="ca.crt"') - http.prepare_content("application/octet-stream") - while true do - block=sFile:read(nixio.const.buffersize) - if(not block)or(#block==0)then - break - else - http.write(block) - end - end - sFile:close() - http.close() -end -function delete_() - local sPath, fd - sPath = "/usr/share/UnblockNeteaseMusic/server.crt" - fd = os.remove(sPath) - if not fd then - delete.description = string.format('删除证书,以便下次启动时生成,可用于解决过期证书等问题
%s', translate("Couldn't delete file: ") .. sPath) - return - end - delete.description = translate("删除证书,以便下次启动时生成,可用于解决过期证书等问题") -end return mp diff --git a/package/lean/luci-app-unblockneteasemusic-go/luasrc/model/cbi/unblockneteasemusic_senior.lua b/package/lean/luci-app-unblockneteasemusic-go/luasrc/model/cbi/unblockneteasemusic_senior.lua new file mode 100644 index 0000000000..a0848d95d7 --- /dev/null +++ b/package/lean/luci-app-unblockneteasemusic-go/luasrc/model/cbi/unblockneteasemusic_senior.lua @@ -0,0 +1,94 @@ +local http = luci.http + +mp = Map("unblockneteasemusic", translate("解除网易云音乐播放限制 (Golang)")) +mp.description = translate("原理:采用 [酷我/酷狗/咕咪] 音源(后续有空补充),替换网易云音乐 灰色 歌曲链接
具体使用方法参见:https://github.com/cnsilvan/luci-app-unblockneteasemusic
提示:客户端网易云音乐能用就别升级app,最新版本不一定能用") +mp:section(SimpleSection).template = "unblockneteasemusic/unblockneteasemusic_status" + +s = mp:section(TypedSection, "unblockneteasemusic") +s.anonymous=true +s.addremove=false + +daemon_enable = s:option(Flag, "daemon_enable", translate("启用进程守护")) +daemon_enable.description = translate("开启后,附属程序会自动检测主程序运行状态,在主程序退出时自动重启") +daemon_enable.default = 0 +daemon_enable.rmempty = false + +search_limit = s:option(Value, "search_limit", translate("搜索结果限制")) +search_limit.description = translate("在搜索页面显示其他平台搜索结果个数,可填(0-3)") +search_limit.default = "0" +search_limit.rmempty = false + +endpoint_enable = s:option(Flag, "endpoint_enable", translate("启用地址转换")) +endpoint_enable.description = translate("开启后,设备需要信任证书,经测试ios设备需要开启,android设备使用咪咕源下载时需要开启,其他情况无法使用时再开启尝试") +endpoint_enable.default = 0 +endpoint_enable.rmempty = false + +force_best_quality = s:option(Flag, "force_best_quality", translate("强制音质优先")) +force_best_quality.description = translate("开启后,客户端选择音质将失效") +force_best_quality.default = 0 +force_best_quality.rmempty = false + +auto_update = s:option(Flag, "auto_update", translate("核心库自动更新")) +auto_update.description = translate("") +auto_update.default = 0 +auto_update.rmempty = false + +delete = s:option(Button,"_delete", translate("删除根证书")) +delete.description = translate("删除证书,以便下次启动时生成,可用于解决过期证书等问题") +delete.inputstyle = "reload" +delete.write = function() + delete_() +end +download = s:option(Button,"_download", translate("下载根证书")) +download.description = translate("请在客户端信任该证书。该证书由你设备自动生成,安全可靠
IOS信任证书步骤:1. 安装证书--设置-描述文件-安装 2. 通用-关于本机-证书信任设置-启动完全信任") +download.inputstyle = "reload" +download.write = function() + download_() +end + + +local currentTagCMD="UnblockNeteaseMusic -v |grep Version|awk '{print $2}'" +local currentRuntimeCMD="UnblockNeteaseMusic -v |grep runtime|awk -F\\( '{print $2}'|awk '{print $3,$4}'|sed -E 's/\)//g'|sed 's/[ \t]*$//g'" + +function excute_cmd(cmd) + local t = io.popen(cmd) + local ret = t:read("*all") + t:close() + return ret +end +function currentVersion() + local current=excute_cmd(currentTagCMD) + local runtime=excute_cmd(currentRuntimeCMD) + auto_update.description=string.format("当前版本:%s(%s)",current,runtime) +end +currentVersion() + +function download_() + local sFile, block + sFile=nixio.open("/usr/share/UnblockNeteaseMusic/ca.crt","r") + http.header('Content-Disposition','attachment; filename="ca.crt"') + http.prepare_content("application/octet-stream") + while true do + block=sFile:read(nixio.const.buffersize) + if(not block)or(#block==0)then + break + else + http.write(block) + end + end + sFile:close() + http.close() +end +function delete_() + local sPath, fd + sPath = "/usr/share/UnblockNeteaseMusic/server.crt" + fd = os.remove(sPath) + if not fd then + delete.description = string.format('删除证书,以便下次启动时生成,可用于解决过期证书等问题
%s', translate("Couldn't delete file: ") .. sPath) + return + end + delete.description = translate("删除证书,以便下次启动时生成,可用于解决过期证书等问题") +end + + +return mp diff --git a/package/lean/luci-app-unblockneteasemusic-go/root/etc/config/unblockneteasemusic b/package/lean/luci-app-unblockneteasemusic-go/root/etc/config/unblockneteasemusic index 4933e6a7da..377de8f351 100644 --- a/package/lean/luci-app-unblockneteasemusic-go/root/etc/config/unblockneteasemusic +++ b/package/lean/luci-app-unblockneteasemusic-go/root/etc/config/unblockneteasemusic @@ -6,3 +6,7 @@ config unblockneteasemusic option music_source 'default' option hijack_ways 'use_ipset' option daemon_enable '0' + option search_limit '0' + option endpoint_enable '0' + option force_best_quality '0' + option auto_update '0' diff --git a/package/lean/luci-app-unblockneteasemusic-go/root/etc/hotplug.d/iface/99-unblockneteasemusic b/package/lean/luci-app-unblockneteasemusic-go/root/etc/hotplug.d/iface/99-unblockneteasemusic index b8fb321325..3f0b2f4b76 100755 --- a/package/lean/luci-app-unblockneteasemusic-go/root/etc/hotplug.d/iface/99-unblockneteasemusic +++ b/package/lean/luci-app-unblockneteasemusic-go/root/etc/hotplug.d/iface/99-unblockneteasemusic @@ -6,9 +6,3 @@ if [ "$(uci get unblockneteasemusic.@unblockneteasemusic[0].enable)" == "1" ]; t echo "$(date -R) ifup--尝试重启应用..." >>"${log_file}" /etc/init.d/unblockneteasemusic restart fi -# curl -s "http://httpdns.n.netease.com/httpdns/v2/d?domain=music.163.com,interface.music.163.com,interface3.music.163.com,apm.music.163.com,apm3.music.163.com,clientlog.music.163.com,clientlog3.music.163.com" | grep -Eo '[0-9]+?\.[0-9]+?\.[0-9]+?\.[0-9]+?' | sort | uniq | awk '{print "ipset add unblockneteasemusic4 "$1}' | bash >"/dev/null" 2>&1 -# domains="music.163.com" -# for domain in $domains; do -# ip=$(ping6 ${domain} -c 1 | sed '1{s/[^(]*(//;s/).*//;q}') -# ipset add unblockneteasemusic6 $ip -# done diff --git a/package/lean/luci-app-unblockneteasemusic-go/root/etc/init.d/unblockneteasemusic b/package/lean/luci-app-unblockneteasemusic-go/root/etc/init.d/unblockneteasemusic index 657774c049..e719469f4d 100755 --- a/package/lean/luci-app-unblockneteasemusic-go/root/etc/init.d/unblockneteasemusic +++ b/package/lean/luci-app-unblockneteasemusic-go/root/etc/init.d/unblockneteasemusic @@ -13,6 +13,8 @@ music_customize_source="$(uci get unblockneteasemusic.@unblockneteasemusic[0].mu hijack_ways="$(uci get unblockneteasemusic.@unblockneteasemusic[0].hijack_ways)" endpoint="$(uci get unblockneteasemusic.@unblockneteasemusic[0].endpoint_enable)" force_best_quality="$(uci get unblockneteasemusic.@unblockneteasemusic[0].force_best_quality)" +search_limit="$(uci get unblockneteasemusic.@unblockneteasemusic[0].search_limit)" +auto_update="$(uci get unblockneteasemusic.@unblockneteasemusic[0].auto_update)" extFile="/usr/share/UnblockNeteaseMusic/extFile.txt" serverCrt="/usr/share/UnblockNeteaseMusic/server.crt" serverKey="/usr/share/UnblockNeteaseMusic/server.key" @@ -50,22 +52,31 @@ set_ipset() { iptables -t nat -A cloud_unblockneteasemusic -p tcp --dport 80 -j REDIRECT --to-ports "${http_port}" iptables -t nat -A cloud_unblockneteasemusic -p tcp --dport 443 -j REDIRECT --to-ports "${https_port}" iptables -t nat -I PREROUTING -p tcp -m set --match-set unblockneteasemusic dst -j cloud_unblockneteasemusic - # ipv6 - if ! ipset list unblockneteasemusic6 >"/dev/null"; then ipset create unblockneteasemusic6 hash:ip family inet6; fi - domains="music.163.com" - for domain in $domains; do - ip=$(ping6 ${domain} -c 1 | sed '1{s/[^(]*(//;s/).*//;q}') - ipset add unblockneteasemusic6 $ip - done - ipset add unblockneteasemusic unblockneteasemusic6 - ip6tables -t nat -N cloud_unblockneteasemusic - ip6tables -t nat -A cloud_unblockneteasemusic -d ::/8 -j RETURN - ip6tables -t nat -A cloud_unblockneteasemusic -d FE80::/10 -j RETURN - ip6tables -t nat -A cloud_unblockneteasemusic -d FC00::/7 -j RETURN - ip6tables -t nat -A cloud_unblockneteasemusic -d FEC0::/10 -j RETURN - ip6tables -t nat -A cloud_unblockneteasemusic -p tcp --dport 80 -j REDIRECT --to-ports "${http_port}" - ip6tables -t nat -A cloud_unblockneteasemusic -p tcp --dport 443 -j REDIRECT --to-ports "${https_port}" - ip6tables -t nat -I PREROUTING -p tcp -m set --match-set unblockneteasemusic dst -j cloud_unblockneteasemusic + ip6tables -h + if [ $? -eq 0 ]; then + # ipv6 + if ! ipset list unblockneteasemusic6 >"/dev/null"; then ipset create unblockneteasemusic6 hash:ip family inet6; fi + domains="music.163.com" + for domain in $domains; do + ip=$(ping6 ${domain} -c 1 | sed '1{s/[^(]*(//;s/).*//;q}') + if [ -n "$ip" ]; then + ipset add unblockneteasemusic6 $ip + else + echo "ping6 bad address,please check IPv6 DNS forwards.if IPv6 DNS forwards is enabled, please restart" >>"${logFile}" + fi + done + ipset add unblockneteasemusic unblockneteasemusic6 + ip6tables -t nat -N cloud_unblockneteasemusic + ip6tables -t nat -A cloud_unblockneteasemusic -d ::/8 -j RETURN + ip6tables -t nat -A cloud_unblockneteasemusic -d FE80::/10 -j RETURN + ip6tables -t nat -A cloud_unblockneteasemusic -d FC00::/7 -j RETURN + ip6tables -t nat -A cloud_unblockneteasemusic -d FEC0::/10 -j RETURN + ip6tables -t nat -A cloud_unblockneteasemusic -p tcp --dport 80 -j REDIRECT --to-ports "${http_port}" + ip6tables -t nat -A cloud_unblockneteasemusic -p tcp --dport 443 -j REDIRECT --to-ports "${https_port}" + ip6tables -t nat -I PREROUTING -p tcp -m set --match-set unblockneteasemusic dst -j cloud_unblockneteasemusic + else + echo "ip6tables is not supported" >>"${logFile}" + fi mkdir -p /var/etc cat <<-EOF >>"/var/etc/unblockneteasemusic.include" /etc/init.d/unblockneteasemusic restart @@ -74,12 +85,15 @@ set_ipset() { iptables -t nat -D PREROUTING -p tcp -m set --match-set unblockneteasemusic dst -j cloud_unblockneteasemusic iptables -t nat -F cloud_unblockneteasemusic iptables -t nat -X cloud_unblockneteasemusic - ip6tables -t nat -D PREROUTING -p tcp -m set --match-set unblockneteasemusic dst -j cloud_unblockneteasemusic - ip6tables -t nat -F cloud_unblockneteasemusic - ip6tables -t nat -X cloud_unblockneteasemusic ipset destroy unblockneteasemusic ipset destroy unblockneteasemusic4 - ipset destroy unblockneteasemusic6 + ip6tables -h + if [ $? -eq 0 ]; then + ip6tables -t nat -D PREROUTING -p tcp -m set --match-set unblockneteasemusic dst -j cloud_unblockneteasemusic + ip6tables -t nat -F cloud_unblockneteasemusic + ip6tables -t nat -X cloud_unblockneteasemusic + ipset destroy unblockneteasemusic6 + fi echo "" >"/var/etc/unblockneteasemusic.include" rm -f "/tmp/dnsmasq.d/dnsmasq-unblockneteasemusic.conf" /etc/init.d/dnsmasq reload >"/dev/null" 2>&1 @@ -108,15 +122,10 @@ set_hosts() { } createCertificate() { echo "create certificate..." >>"${logFile}" - # 生成 CA 私钥 openssl genrsa -out "${caKey}" 2048 - # 生成 CA 证书 openssl req -x509 -new -nodes -key "${caKey}" -sha256 -days 825 -out "${caCrt}" -subj "/C=CN/CN=UnblockNeteaseMusic Root CA/O=UnblockNeteaseMusic" - # 生成服务器私钥 openssl genrsa -out "${serverKey}" 2048 - # 生成证书签发请求 openssl req -new -sha256 -key "${serverKey}" -out "${serverCsr}" -subj "/C=CN/L=Hangzhou/O=NetEase (Hangzhou) Network Co., Ltd/OU=IT Dept./CN=*.music.163.com" - # 使用 CA 签发服务器证书 touch "${extFile}" echo "authorityKeyIdentifier=keyid,issuer basicConstraints=CA:FALSE @@ -124,6 +133,7 @@ keyUsage=digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment extendedKeyUsage=serverAuth,OCSPSigning subjectAltName=DNS:music.163.com,DNS:*.music.163.com" >"${extFile}" openssl x509 -req -extfile "${extFile}" -days 825 -in "${serverCsr}" -CA "${caCrt}" -CAkey "${caKey}" -CAcreateserial -out "${serverCrt}" + rm -f "${extFile}" } start() { stop >>"${logFile}" 2>&1 @@ -151,10 +161,11 @@ start() { set_hosts >"/dev/null" 2>&1 fi else - echo "$(date -R) 网络连接异常" >>"${logFile}" + echo "$(date -R) network connection error" >>"${logFile}" fi sed -i '/UnblockNeteaseMusic/d' /etc/crontabs/root echo "*/1 * * * * /usr/share/UnblockNeteaseMusic/log_check.sh" >>"/etc/crontabs/root" + echo "0 5 * * * /usr/share/UnblockNeteaseMusic/version_check.sh" >>"/etc/crontabs/root" /etc/init.d/cron restart >"/dev/null" 2>&1 } diff --git a/package/lean/luci-app-unblockneteasemusic-go/root/usr/share/UnblockNeteaseMusic/log_check.sh b/package/lean/luci-app-unblockneteasemusic-go/root/usr/share/UnblockNeteaseMusic/log_check.sh index 8e910cd708..7311aa8573 100755 --- a/package/lean/luci-app-unblockneteasemusic-go/root/usr/share/UnblockNeteaseMusic/log_check.sh +++ b/package/lean/luci-app-unblockneteasemusic-go/root/usr/share/UnblockNeteaseMusic/log_check.sh @@ -1,12 +1,12 @@ #!/bin/bash -log_max_size="128" #使用KB计算 +log_max_size="128" #KB log_file="/tmp/unblockneteasemusic.log" ((log_size = "$(ls -l "${log_file}" | awk -F ' ' '{print $5}')" / "1024")) (("${log_size}" >= "${log_max_size}")) && echo "" >"${log_file}" if [ "$(uci get unblockneteasemusic.@unblockneteasemusic[0].daemon_enable)" == "1" ]; then if [ -z "$(ps | grep "UnblockNeteaseMusic" | grep -v "grep")" ]; then - echo "$(date -R) 尝试重启应用..." >>"${log_file}" + echo "$(date -R) try restart..." >>"${log_file}" /etc/init.d/unblockneteasemusic restart fi fi diff --git a/package/lean/luci-app-unblockneteasemusic-go/root/usr/share/UnblockNeteaseMusic/version_check.sh b/package/lean/luci-app-unblockneteasemusic-go/root/usr/share/UnblockNeteaseMusic/version_check.sh new file mode 100755 index 0000000000..be0a5ad3c3 --- /dev/null +++ b/package/lean/luci-app-unblockneteasemusic-go/root/usr/share/UnblockNeteaseMusic/version_check.sh @@ -0,0 +1,62 @@ +#!/bin/bash +log_file="/tmp/unblockneteasemusic.log" +json_file="/tmp/unblockneteasemusic_latest.json" +if [ "$(uci get unblockneteasemusic.@unblockneteasemusic[0].auto_update)" == "1" ]; then + echo "$(date -R) check latest version ..." >>"${log_file}" + curl -s -o "${json_file}" https://api.github.com/repos/cnsilvan/UnblockNeteaseMusic/releases/latest + if [ $? -ne 0 ]; then + echo "$(date -R) curl api.github.com failed" >>"${log_file}" + exit 1 + fi + currentTagCMD="$(UnblockNeteaseMusic -v | grep Version | awk '{print $2}')" + currentRuntimeCMD="$(UnblockNeteaseMusic -v | grep runtime | awk -F\( '{print $2}' | awk '{print $3,$4}' | sed -E 's/\)//g'| sed 's/[ \t]*$//g')" + latestTagCMD="$(cat ${json_file} | grep '\"tag_name\":' | sed -E 's/.*\"([^\"]+)\".*/\1/')" + GOOSS="$(echo $currentRuntimeCMD | awk '{print $1}')" + GOOS="linux" + GOARCH="amd64" + suffix="$(echo $currentRuntimeCMD | awk '{print $2}')" + if [ ! -n "$suffix" ]; then + suffix=".zip" + fi + if [ "$suffix" == "hardfloat" ]; then + suffix=".zip" + fi + if [ -n "$(echo $GOOSS | awk -F/ '{print $1}')" ]; then + GOOS="$(echo $GOOSS | awk -F/ '{print $1}')" + fi + if [ -n "$(echo $GOOSS | awk -F/ '{print $2}')" ]; then + GOARCH="$(echo $GOOSS | awk -F/ '{print $2}')" + fi + downloadUrl="$(cat ${json_file} | grep '\"browser_download_url\":' | grep ${GOOS} | grep ${GOARCH} | grep ${suffix} | sed -E 's/.*\"([^\"]+)\".*/\1/')" + if [ ! -n "${downloadUrl}" ]; then + echo "$(date -R) not found ${currentRuntimeCMD} on GitHub,please go to https://github.com/cnsilvan/luci-app-unblockneteasemusic/issues to open a issue " >>"${log_file}" + exit 1 + fi + if [ "${currentTagCMD}" == "${latestTagCMD}" ]; then + echo "$(date -R) current version: ${currentTagCMD}(${currentRuntimeCMD}) is the latest version" >>"${log_file}" + else + echo "$(date -R) start downloading the latest version[ ${currentTagCMD}(${currentRuntimeCMD}) >> ${latestTagCMD}(${currentRuntimeCMD}) ]..." >>"${log_file}" + echo "$(date -R) ${downloadUrl}" >>"${log_file}" + curl -LJO ${downloadUrl} + if [ $? -eq 0 ]; then + echo "$(date -R) download successful" >>"${log_file}" + unzip $(find . -type f -name "*UnblockNeteaseMusic*.zip") -d ./UnblockNeteaseMusic/ + rm -f $(find . -type f -name "*UnblockNeteaseMusic*.zip") + chmod +x ./UnblockNeteaseMusic/UnblockNeteaseMusic + if [ -n "$(./UnblockNeteaseMusic/UnblockNeteaseMusic -v | grep Version | awk '{print $2}')" ]; then + mv ./UnblockNeteaseMusic/UnblockNeteaseMusic /usr/bin/ + rm -rf ./UnblockNeteaseMusic/ + echo "$(date -R) update successful" >>"${log_file}" + /etc/init.d/unblockneteasemusic restart + else + rm -rf ./UnblockNeteaseMusic/ + echo "$(date -R) update failed. please check if the downloaded version is correct" >>"${log_file}" + fi + else + echo "$(date -R) download failed" >>"${log_file}" + + fi + + fi + +fi