luci-app-unblockneteasemusic: bump to v2.1

This commit is contained in:
CN_SZTL 2019-10-03 15:40:21 +08:00
parent fe9d7e2d66
commit a7b0da1800
No known key found for this signature in database
GPG Key ID: 6850B6345C862176
7 changed files with 136 additions and 41 deletions

View File

@ -11,8 +11,8 @@ LUCI_TITLE:=LuCI support for UnblockNeteaseMusic
LUCI_DEPENDS:=+bash +busybox +coreutils-nohup +curl +dnsmasq-full +ipset +libopenssl +node
LUCI_PKGARCH:=all
PKG_NAME:=luci-app-unblockneteasemusic
PKG_VERSION:=2.0
PKG_RELEASE:=2
PKG_VERSION:=2.1
PKG_RELEASE:=1
PKG_MAINTAINER:=[CTCGFW]Project-OpenWrt

View File

@ -12,6 +12,15 @@ enabled.description = translate("启用本插件以解除网易云音乐播放
enabled.default = 0
enabled.rmempty = false
button_update_core = s:option (Button, "_button_update_core", translate("更新主程序"))
button_update_core.description = translate("更新完毕后会自动重启插件;更新插件需要一点时间,请不要反复点击按钮")
local latest_ver = luci.sys.exec("/bin/bash /usr/share/unblockneteasemusic/check_update.sh")
button_update_core.inputtitle = translate (latest_ver)
button_update_core.inputstyle = "apply"
function button_update_core.write (self, section, value)
luci.sys.call ("/bin/bash /usr/share/unblockneteasemusic/update_core.sh &")
end
account = s:option(Value, "http_port", translate("[HTTP] 监听端口"))
account.description = translate("本插件监听的HTTP端口不可与其他程序/HTTPS共用一个端口")
account.placeholder = "5200"
@ -47,6 +56,11 @@ hijack.description = translate("如果使用Hosts劫持请将HTTP/HTTPS端口
hijack.default = "dont_hijack"
hijack.rmempty = false
enabled = s:option(Flag, "auto_update", translate("启用自动更新"))
enabled.description = translate("启用后会在每天凌晨检测最新版本并自动更新")
enabled.default = 0
enabled.rmempty = false
enabled = s:option(Flag, "advanced_mode", translate("启用进阶设置"))
enabled.description = translate("仅推荐高级玩家使用")
enabled.default = 0
@ -72,7 +86,7 @@ account:depends("set_netease_server_ip", 1)
account:depends("advanced_mode", 1)
account = s:option(Value, "endpoint_url", translate("EndPoint"))
account.description = translate("具体说明参见https://github.com/nondanee/UnblockNeteaseMusic")
account.description = translate("具体说明参见https://github.com/nondanee/UnblockNeteaseMusic")
account.placeholder = "https://music.163.com"
account.datatype = "string"
account:depends("advanced_mode", 1)

View File

@ -12,26 +12,17 @@ http_port="$(uci get unblockneteasemusic.@unblockneteasemusic[0].http_port)"
https_port="$(uci get unblockneteasemusic.@unblockneteasemusic[0].https_port)"
type="$(uci get unblockneteasemusic.@unblockneteasemusic[0].musicapptype)"
hijack_ways="$(uci get unblockneteasemusic.@unblockneteasemusic[0].hijack_ways)"
[ "$(uci get unblockneteasemusic.@unblockneteasemusic[0].pub_access)" -ne "0" ] && addr="0.0.0.0" || addr="${lan_addr}"
[ "$(uci get unblockneteasemusic.@unblockneteasemusic[0].strict_mode)" -eq "1" ] && strict_mode="-s"
auto_update="$(uci get unblockneteasemusic.@unblockneteasemusic[0].auto_update)"
[ "*$(uci get unblockneteasemusic.@unblockneteasemusic[0].pub_access 2>/dev/null)*" = "*1*" ] && addr="0.0.0.0" || addr="${lan_addr}"
[ "*$(uci get unblockneteasemusic.@unblockneteasemusic[0].strict_mode 2>/dev/null)*" = "*1*" ] && strict_mode="-s"
netease_server_ip="$(uci get unblockneteasemusic.@unblockneteasemusic[0].netease_server_ip)"
netease_server_ip="$(uci get unblockneteasemusic.@unblockneteasemusic[0].netease_server_ip 2>/dev/null)"
[ -n "${netease_server_ip}" ] && netease_server_ip="-f ${netease_server_ip}"
endpoint_url="$(uci get unblockneteasemusic.@unblockneteasemusic[0].endpoint_url)"
endpoint_url="$(uci get unblockneteasemusic.@unblockneteasemusic[0].endpoint_url 2>/dev/null)"
[ -n "${endpoint_url}" ] && endpoint_url="-e ${endpoint_url}"
proxy_server_ip="$(uci get unblockneteasemusic.@unblockneteasemusic[0].proxy_server_ip)"
proxy_server_ip="$(uci get unblockneteasemusic.@unblockneteasemusic[0].proxy_server_ip 2>/dev/null)"
[ -n "${proxy_server_ip}" ] && proxy_server_ip="-u ${proxy_server_ip}"
update_core(){
mkdir -p "/usr/share/unblockneteasemusic/core" >/dev/null 2>&1
rm -rf /usr/share/unblockneteasemusic/core/* >/dev/null 2>&1
curl -L "https://github.com/nondanee/UnblockNeteaseMusic/archive/master.tar.gz" -o "/usr/share/unblockneteasemusic/core/core.tar.gz" >/dev/null 2>&1
tar -zxf "/usr/share/unblockneteasemusic/core/core.tar.gz" -C "/usr/share/unblockneteasemusic/core/" >/dev/null 2>&1
mv /usr/share/unblockneteasemusic/core/UnblockNeteaseMusic-master/* "/usr/share/unblockneteasemusic/core/"
rm -rf "/usr/share/unblockneteasemusic/core/core.tar.gz /usr/share/unblockneteasemusic/core/UnblockNeteaseMusic-master" >/dev/null 2>&1
[ ! -e "/usr/share/unblockneteasemusic/core/app.js" ] && echo "Failed to download core." && exit 1
}
set_ipset(){
if [ "${set_type}" = "start" ]; then
mkdir -p "/tmp/dnsmasq.d"
@ -124,35 +115,41 @@ start()
[ "${enable}" -eq "0" ] && exit 0
update_core
[ ! -e "/usr/share/unblockneteasemusic/core/app.js" ] && bash /usr/share/unblockneteasemusic/update_core.sh && [ $? -eq 1 ] && exit 1
if [ "${type}" = "default" ]; then
nohup node /usr/share/unblockneteasemusic/core/app.js -a "${addr}" -p "${http_port}":"${https_port}" ${netease_server_ip} ${proxy_server_ip} ${strict_mode} >/tmp/unblockneteasemusic.log 2>&1 &
nohup node /usr/share/unblockneteasemusic/core/app.js -a "${addr}" -p "${http_port}":"${https_port}" ${netease_server_ip} ${proxy_server_ip} ${strict_mode} >>/tmp/unblockneteasemusic.log 2>&1 &
elif [ "${type}" = "all" ]; then
nohup node /usr/share/unblockneteasemusic/core/app.js -a "${addr}" -p "${http_port}":"${https_port}" -o "kuwo migu qq xiami kugou joox" ${netease_server_ip} ${proxy_server_ip} ${strict_mode} >/tmp/unblockneteasemusic.log 2>&1 &
nohup node /usr/share/unblockneteasemusic/core/app.js -a "${addr}" -p "${http_port}":"${https_port}" -o "kuwo migu qq xiami kugou joox" ${netease_server_ip} ${proxy_server_ip} ${strict_mode} >>/tmp/unblockneteasemusic.log 2>&1 &
else
nohup node /usr/share/unblockneteasemusic/core/app.js -a "${addr}" -p "${http_port}":"${https_port}" -o "${type}" ${netease_server_ip} ${proxy_server_ip} ${strict_mode} >/tmp/unblockneteasemusic.log 2>&1 &
nohup node /usr/share/unblockneteasemusic/core/app.js -a "${addr}" -p "${http_port}":"${https_port}" -o "${type}" ${netease_server_ip} ${proxy_server_ip} ${strict_mode} >>/tmp/unblockneteasemusic.log 2>&1 &
fi
if [ "*${hijack_ways}*" = "*use_ipset*" ]; then
set_type="start"
set_ipset
set_ipset >/dev/null 2>&1
elif [ "*${hijack_ways}*" = "*use_hosts*" ]; then
set_type="start"
set_hosts
set_hosts >/dev/null 2>&1
fi
nohup /usr/share/unblockneteasemusic/logcheck.sh >/dev/null 2>&1 &
sed -i '/unblockneteasemusic/d' /etc/crontabs/root
[ "${auto_update}" -eq "1" ] && echo "30 3 * * * /usr/share/unblockneteasemusic/update_core.sh" >> "/etc/crontabs/root"
echo "*/5 * * * * /usr/share/unblockneteasemusic/log_check.sh" >> "/etc/crontabs/root"
/etc/init.d/cron restart >/dev/null 2>&1
}
stop()
{
{ ps |grep "unblockneteasemusic" |grep "app.js" |grep -v "grep" |awk '{print $1}' |xargs kill -9; } >/dev/null 2>&1
{ ps |grep "unblockneteasemusic" |grep "logcheck.sh" |grep -v "grep" |awk '{print $1}' |xargs kill -9; } >/dev/null 2>&1
sed -i '/unblockneteasemusic/d' /etc/crontabs/root
/etc/init.d/cron restart >/dev/null 2>&1
rm -f /tmp/unblockneteasemusic.log
set_type="stop"
set_ipset
set_hosts
set_ipset >/dev/null 2>&1
set_hosts >/dev/null 2>&1
}

View File

@ -0,0 +1,21 @@
#!/bin/bash
# Created By [CTCGFW]Project OpenWRT
# https://github.com/project-openwrt
commit_info="$(curl -s https://github.com/nondanee/UnblockNeteaseMusic/commits/master)"
latest_ver="$(echo -e "${commit_info}" |tr '\n' ' ' | grep -Eo 'commit\/[0-9a-z]+' |sed -n 1p |sed 's#commit/##g')"
latest_ver_mini="$(echo -e "${commit_info}" |tr -d '\n' | grep -Eo 'BtnGroup-item"> [0-9a-z]+' |sed -n 1p |sed 's#BtnGroup-item"> ##g')"
[ -z "${commit_info}" ] && echo "无法检测最新版本,请稍后重试" && exit 1
[ -z "${latest_ver}" ] && echo "无法检测最新版本,请稍后重试" && exit 1
[ -z "${latest_ver_mini}" ] && echo "无法检测最新版本,请稍后重试" && exit 1
if [ ! -e "/usr/share/unblockneteasemusic/local_ver" ]; then
echo "最新版本:${latest_ver_mini},点此更新"
else
if [ "$(cat /usr/share/unblockneteasemusic/local_ver)" != "${latest_ver}" ]; then
echo "最新版本:${latest_ver_mini},点此更新"
else
echo "目前已是最新版本,无需更新"
fi
fi

View File

@ -0,0 +1,9 @@
#!/bin/bash
# Created By [CTCGFW]Project OpenWRT
# https://github.com/project-openwrt
log_max_size="4" #使用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}"

View File

@ -1,13 +0,0 @@
#!/bin/bash
# Created By [CTCGFW]Project OpenWRT
# https://github.com/project-openwrt
log_max_size="4" #使用KB计算
log_file="/tmp/unblockneteasemusic.log"
while true
do
(( log_size = "$(ls -l "${log_file}" | awk -F ' ' '{print $5}')" / "1024" ))
(( "${log_size}" >= "${log_max_size}" )) && echo "" > "${log_file}"
sleep 5m
done

View File

@ -0,0 +1,67 @@
#!/bin/bash
# Created By [CTCGFW]Project OpenWRT
# https://github.com/project-openwrt
function check_if_enable(){
[ "$(uci get unblockneteasemusic.@unblockneteasemusic[0].enabled)" -eq "0" ] && exit 2
}
function check_if_already_running(){
running_tasks="$(ps |grep "unblockneteasemusic" |grep "update_core" |grep -v "grep" |awk '{print $1}' |wc -l)"
[ "${running_tasks}" -gt "2" ] && echo -e "\nA task is already running." >>/tmp/unblockneteasemusic.log && exit 2
}
function clean_log(){
echo "" > /tmp/unblockneteasemusic.log
}
function check_latest_version(){
latest_ver="$(curl -s https://github.com/nondanee/UnblockNeteaseMusic/commits/master |tr '\n' ' ' | grep -Eo 'commit\/[0-9a-z]+' |sed -n 1p |sed 's#commit/##g')"
[ -z "${latest_ver}" ] && echo -e "\nFailed to check latest version, please try again later." >>/tmp/unblockneteasemusic.log && exit 1
if [ ! -e "/usr/share/unblockneteasemusic/local_ver" ]; then
clean_log
echo -e "Local version: NOT FOUND, cloud version: ${latest_ver}." >>/tmp/unblockneteasemusic.log
update_core
else
if [ "$(cat /usr/share/unblockneteasemusic/local_ver)" != "${latest_ver}" ]; then
clean_log
echo -e "Local version: $(cat /usr/share/unblockneteasemusic/local_ver 2>/dev/null), cloud version: ${latest_ver}." >>/tmp/unblockneteasemusic.log
update_core
else
echo -e "\nLocal version: $(cat /usr/share/unblockneteasemusic/local_ver 2>/dev/null), cloud version: ${latest_ver}." >>/tmp/unblockneteasemusic.log
echo -e "You're already using the latest version." >>/tmp/unblockneteasemusic.log
exit 3
fi
fi
}
function update_core(){
echo -e "Updating core..." >>/tmp/unblockneteasemusic.log
mkdir -p "/usr/share/unblockneteasemusic/core" >/dev/null 2>&1
rm -rf /usr/share/unblockneteasemusic/core/* >/dev/null 2>&1
curl -L "https://github.com/nondanee/UnblockNeteaseMusic/archive/master.tar.gz" -o "/usr/share/unblockneteasemusic/core/core.tar.gz" >/dev/null 2>&1
tar -zxf "/usr/share/unblockneteasemusic/core/core.tar.gz" -C "/usr/share/unblockneteasemusic/core/" >/dev/null 2>&1
mv /usr/share/unblockneteasemusic/core/UnblockNeteaseMusic-master/* "/usr/share/unblockneteasemusic/core/"
rm -rf "/usr/share/unblockneteasemusic/core/core.tar.gz /usr/share/unblockneteasemusic/core/UnblockNeteaseMusic-master" >/dev/null 2>&1
if [ ! -e "/usr/share/unblockneteasemusic/core/app.js" ]; then
echo -e "Failed to download core." >>/tmp/unblockneteasemusic.log
exit 1
else
echo -e "${latest_ver}" > /usr/share/unblockneteasemusic/local_ver
/etc/init.d/unblockneteasemusic restart
fi
echo -e "Succeeded in updating core." >/tmp/unblockneteasemusic.log
echo -e "Local version: $(cat /usr/share/unblockneteasemusic/local_ver 2>/dev/null), cloud version: ${latest_ver}.\n" >>/tmp/unblockneteasemusic.log
}
function main(){
check_if_enable
check_if_already_running
check_latest_version
}
main