From 27f59d8866e884f0fd3dbbe3b3bfd5c7844fa256 Mon Sep 17 00:00:00 2001 From: coolsnowwolf Date: Sun, 16 Feb 2020 18:06:26 +0800 Subject: [PATCH] luci-app-unblockmusic: resize and update --- package/lean/luci-app-unblockmusic/Makefile | 11 ++--- .../luasrc/controller/unblockmusic.lua | 2 +- .../luasrc/model/cbi/unblockmusic.lua | 13 +++-- .../luasrc/model/cbi/unblockmusiclog.lua | 5 +- .../root/etc/config/unblockmusic | 8 ++-- .../root/etc/init.d/unblockmusic | 48 +++++++++++-------- .../usr/share/UnblockNeteaseMusic/logcheck.sh | 10 +--- .../share/UnblockNeteaseMusic/update_core.sh | 8 ++-- 8 files changed, 53 insertions(+), 52 deletions(-) diff --git a/package/lean/luci-app-unblockmusic/Makefile b/package/lean/luci-app-unblockmusic/Makefile index f8cdfe9c7..96c86015a 100644 --- a/package/lean/luci-app-unblockmusic/Makefile +++ b/package/lean/luci-app-unblockmusic/Makefile @@ -1,22 +1,19 @@ -# Copyright (C) 2016 Openwrt.org +# Copyright (C) 2020 Openwrt.org # # This is free software, licensed under the Apache License, Version 2.0 . # -# licheng -# www.maxlicheng.com -# 2019-06-08 # include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-unblockmusic -PKG_VERSION:=2.2.0 -PKG_RELEASE:=11 +PKG_VERSION:=2.3.1 +PKG_RELEASE:=3 PKG_LICENSE:=Apache-2.0 LUCI_TITLE:=LuCI support for Unblock NeteaseCloudMusic -LUCI_DEPENDS:=+UnblockNeteaseMusic +bash +dnsmasq-full +ipset +LUCI_DEPENDS:=+UnblockNeteaseMusic +dnsmasq-full +ipset LUCI_PKGARCH:=all PKG_MAINTAINER:=lean diff --git a/package/lean/luci-app-unblockmusic/luasrc/controller/unblockmusic.lua b/package/lean/luci-app-unblockmusic/luasrc/controller/unblockmusic.lua index 231f0bf21..082a5f1fe 100644 --- a/package/lean/luci-app-unblockmusic/luasrc/controller/unblockmusic.lua +++ b/package/lean/luci-app-unblockmusic/luasrc/controller/unblockmusic.lua @@ -16,7 +16,7 @@ end function act_status() local e={} - e.running=luci.sys.call("busybox ps -w | grep app.js | grep -v grep >/dev/null")==0 + e.running=luci.sys.call("busybox ps -w | grep UnblockNeteaseMusic/app.js | grep -v grep >/dev/null")==0 luci.http.prepare_content("application/json") luci.http.write_json(e) end diff --git a/package/lean/luci-app-unblockmusic/luasrc/model/cbi/unblockmusic.lua b/package/lean/luci-app-unblockmusic/luasrc/model/cbi/unblockmusic.lua index 436b19a85..db8463764 100644 --- a/package/lean/luci-app-unblockmusic/luasrc/model/cbi/unblockmusic.lua +++ b/package/lean/luci-app-unblockmusic/luasrc/model/cbi/unblockmusic.lua @@ -8,10 +8,15 @@ s = mp:section(TypedSection, "unblockmusic") s.anonymous=true s.addremove=false -enabled = s:option(Flag, "enabled", translate("启用解锁")) +enabled = s:option(Flag, "enabled", translate("启用")) enabled.default = 0 enabled.rmempty = false -enabled.description = translate("启用后,路由器自动分流解锁,大部分设备无需设置代理。
苹果系列设备需要设置 WIFI/有线代理方式为 自动 ,并安装 CA根证书并信任。") +enabled.description = translate("启用后,路由器自动分流解锁,大部分设备无需设置代理") + +proxy = s:option(Flag, "proxy", translate("开启独立的HTTP代理服务")) +proxy.default = 0 +proxy.rmempty = false +proxy.description = translate("某些PC版本客户端不能自动解锁,需要手动设置 HTTP代理 为 路由器IP:5200端口 ") speedtype = s:option(ListValue, "musicapptype", translate("音源选择")) speedtype:value("default", translate("默认")) @@ -31,7 +36,7 @@ endpoint.description = translate("默认为 https://music.163.com") o = s:option(Button,"certificate",translate("HTTPS 证书")) o.inputtitle = translate("下载 CA 根证书") -o.description = translate("iOS 13 系统需要在“设置 -> 通用 -> 关于本机 -> 证书信任设置” 中,信任 UnblockNeteaseMusic Root CA )") +o.description = translate("新版安卓/iOS客户端可能需要安装 CA根证书并信任
苹果系统需要在“设置 -> 通用 -> 关于本机 -> 证书信任设置”中,信任 UnblockNeteaseMusic Root CA )") o.inputstyle = "apply" o.write = function() Download() @@ -71,4 +76,4 @@ o.write = function() luci.http.redirect(luci.dispatcher.build_url("admin", "services", "unblockmusic")) end -return mp +return mp \ No newline at end of file diff --git a/package/lean/luci-app-unblockmusic/luasrc/model/cbi/unblockmusiclog.lua b/package/lean/luci-app-unblockmusic/luasrc/model/cbi/unblockmusiclog.lua index 1be151743..b5ff53870 100644 --- a/package/lean/luci-app-unblockmusic/luasrc/model/cbi/unblockmusiclog.lua +++ b/package/lean/luci-app-unblockmusic/luasrc/model/cbi/unblockmusiclog.lua @@ -1,5 +1,4 @@ local fs = require "nixio.fs" -local conffile = "/tmp/unblockmusic.log" local conffile = "/tmp/music.log" f = SimpleForm("logview") @@ -8,9 +7,9 @@ t = f:field(TextValue, "conf") t.rmempty = true t.rows = 20 function t.cfgvalue() - luci.sys.exec("grep -B 1 'http' /tmp/unblockmusic.log > /tmp/music.log") + luci.sys.exec("grep -B 1 'http' /tmp/unblockmusic.log | grep -v 'running' > /tmp/music.log") return fs.readfile(conffile) or "" end t.readonly="readonly" -return f +return f \ No newline at end of file diff --git a/package/lean/luci-app-unblockmusic/root/etc/config/unblockmusic b/package/lean/luci-app-unblockmusic/root/etc/config/unblockmusic index 1102183f6..efd41ad8a 100644 --- a/package/lean/luci-app-unblockmusic/root/etc/config/unblockmusic +++ b/package/lean/luci-app-unblockmusic/root/etc/config/unblockmusic @@ -1,10 +1,8 @@ config unblockmusic - option enabled '0' option musicapptype 'default' - option port '5200' - option enable_ipset '1' - option endpoint 'https://music.163.com' option autoupdate '1' - + option endpoint 'https://music.163.com' + option proxy '1' + option enabled '0' diff --git a/package/lean/luci-app-unblockmusic/root/etc/init.d/unblockmusic b/package/lean/luci-app-unblockmusic/root/etc/init.d/unblockmusic index 9ff4963a2..6d03d0698 100755 --- a/package/lean/luci-app-unblockmusic/root/etc/init.d/unblockmusic +++ b/package/lean/luci-app-unblockmusic/root/etc/init.d/unblockmusic @@ -5,7 +5,7 @@ STOP=10 enable=$(uci get unblockmusic.@unblockmusic[0].enabled) TYPE=$(uci get unblockmusic.@unblockmusic[0].musicapptype) -ROUTE_IP=$(uci get network.lan.ipaddr) +PROXY=$(uci get unblockmusic.@unblockmusic[0].proxy) ENDPOINT=$(uci get unblockmusic.@unblockmusic[0].endpoint) AUTOUPDATE=$(uci get unblockmusic.@unblockmusic[0].autoupdate) @@ -25,25 +25,28 @@ add_rule() $ipt_n -A cloud_music -d 192.168.0.0/16 -j RETURN $ipt_n -A cloud_music -d 224.0.0.0/4 -j RETURN $ipt_n -A cloud_music -d 240.0.0.0/4 -j RETURN - $ipt_n -A cloud_music -p tcp -j REDIRECT --to-ports 5200 - $ipt_n -I PREROUTING -p tcp --dport 80 -m set --match-set music dst -j cloud_music + $ipt_n -A cloud_music -p tcp --dport 80 -j REDIRECT --to-ports 5201 + $ipt_n -A cloud_music -p tcp --dport 443 -j REDIRECT --to-ports 5202 + $ipt_n -I PREROUTING -p tcp -m set --match-set music dst -j cloud_music } del_rule(){ - $ipt_n -D PREROUTING -p tcp --dport 80 -m set --match-set music dst -j cloud_music 2>/dev/null + $ipt_n -D PREROUTING -p tcp -m set --match-set music dst -j cloud_music 2>/dev/null $ipt_n -F cloud_music 2>/dev/null $ipt_n -X cloud_music 2>/dev/null rm -f /tmp/dnsmasq.d/dnsmasq-163.conf - /etc/init.d/dnsmasq restart >/dev/null 2>&1 + /etc/init.d/dnsmasq reload >/dev/null 2>&1 } set_firewall(){ rm -f /tmp/dnsmasq.d/dnsmasq-163.conf mkdir -p /tmp/dnsmasq.d - echo "dhcp-option=252,http://$ROUTE_IP:5201/proxy.pac" > /tmp/dnsmasq.d/dnsmasq-163.conf echo "ipset=/music.163.com/music" >> /tmp/dnsmasq.d/dnsmasq-163.conf echo "ipset=/interface.music.163.com/music" >> /tmp/dnsmasq.d/dnsmasq-163.conf + echo "ipset=/interface3.music.163.com/music" >> /tmp/dnsmasq.d/dnsmasq-163.conf + echo "ipset=/apm.music.163.com/music" >> /tmp/dnsmasq.d/dnsmasq-163.conf + echo "ipset=/apm3.music.163.com/music" >> /tmp/dnsmasq.d/dnsmasq-163.conf /etc/init.d/dnsmasq restart >/dev/null 2>&1 add_rule @@ -75,20 +78,27 @@ start() [ $enable -eq "0" ] && exit 0 - endponintset=""; + endponintset=" "; if [ -n "$ENDPOINT" ]; then endponintset="-e ${ENDPOINT}" fi - if [ $TYPE = "default" ]; then - node /usr/share/UnblockNeteaseMusic/app.js $endponintset -p 5201:5202 >/tmp/unblockmusic.log 2>&1 & - node /usr/share/UnblockNeteaseMusic/app.js -p 5200 >>/tmp/unblockmusic.log 2>&1 & - else - node /usr/share/UnblockNeteaseMusic/app.js $endponintset -p 5201:5202 -o $TYPE >/tmp/unblockmusic.log 2>&1 & - node /usr/share/UnblockNeteaseMusic/app.js -p 5200 -o $TYPE >>/tmp/unblockmusic.log 2>&1 & - fi + rm -f /tmp/unblockmusic.log + echo "$(date -R) # Start UnblockNeteaseMusic" >/tmp/unblockmusic.log + if [ $TYPE = "default" ]; then + musictype=" " + else + musictype="-o $TYPE" + fi + + node /usr/share/UnblockNeteaseMusic/app.js $endponintset -p 5201:5202 $musictype >>/tmp/unblockmusic.log 2>&1 & + + if [ $PROXY -eq "1" ]; then + node /usr/share/UnblockNeteaseMusic/app.js -p 5200 $musictype >>/tmp/unblockmusic.log 2>&1 & + fi + set_firewall add_cron @@ -96,15 +106,11 @@ start() } stop() -{ - kill -9 $(busybox ps -w | grep monitor | grep -v grep | awk '{print $1}') >/dev/null 2>&1 - kill -9 $(busybox ps -w | grep app.js | grep -v grep | awk '{print $1}') >/dev/null 2>&1 +{ + kill -9 $(busybox ps -w | grep UnblockNeteaseMusic/app.js | grep -v grep | awk '{print $1}') >/dev/null 2>&1 kill -9 $(busybox ps -w | grep logcheck.sh | grep -v grep | awk '{print $1}') >/dev/null 2>&1 rm -f /tmp/unblockmusic.log - + del_rule del_cron } - - - diff --git a/package/lean/luci-app-unblockmusic/root/usr/share/UnblockNeteaseMusic/logcheck.sh b/package/lean/luci-app-unblockmusic/root/usr/share/UnblockNeteaseMusic/logcheck.sh index 4d8eb1001..862d4c55f 100755 --- a/package/lean/luci-app-unblockmusic/root/usr/share/UnblockNeteaseMusic/logcheck.sh +++ b/package/lean/luci-app-unblockmusic/root/usr/share/UnblockNeteaseMusic/logcheck.sh @@ -1,17 +1,11 @@ -#!/bin/bash +#!/bin/sh -log_max_size="100" #使用KB计算 +log_max_size="10" #使用KB计算 log_file="/tmp/unblockmusic.log" while true do - sleep 30s - icount=`busybox ps -w | grep app.js |grep -v grep| wc -l` - if [ $icount -ne 2 ] ;then - /etc/init.d/unblockmusic restart - fi (( log_size = "$(ls -l "${log_file}" | awk -F ' ' '{print $5}')" / "1024" )) (( "${log_size}" >= "${log_max_size}" )) && echo "" > /tmp/unblockmusic.log sleep 10m done - diff --git a/package/lean/luci-app-unblockmusic/root/usr/share/UnblockNeteaseMusic/update_core.sh b/package/lean/luci-app-unblockmusic/root/usr/share/UnblockNeteaseMusic/update_core.sh index 649c5ac60..a391b4607 100755 --- a/package/lean/luci-app-unblockmusic/root/usr/share/UnblockNeteaseMusic/update_core.sh +++ b/package/lean/luci-app-unblockmusic/root/usr/share/UnblockNeteaseMusic/update_core.sh @@ -1,4 +1,4 @@ - +#!/bin/sh function check_if_already_running(){ running_tasks="$(ps |grep "unblockneteasemusic" |grep "update_core" |grep -v "grep" |awk '{print $1}' |wc -l)" @@ -10,7 +10,7 @@ function clean_log(){ } function check_latest_version(){ - latest_ver="$(wget-ssl --no-check-certificate -O- https://github.com/nondanee/UnblockNeteaseMusic/commits/master |tr -d '\n' |grep -Eo 'commit\/[0-9a-z]+' |sed -n 1p |sed 's#commit/##g')" + latest_ver="$(wget -O- https://github.com/nondanee/UnblockNeteaseMusic/commits/master |tr -d '\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/unblockmusic_update.log && exit 1 if [ ! -e "/usr/share/UnblockNeteaseMusic/local_ver" ]; then clean_log @@ -37,7 +37,9 @@ function update_core(){ wget-ssl --no-check-certificate -t 1 -T 10 -O /tmp/unblockneteasemusic/core/core.tar.gz "https://github.com/nondanee/UnblockNeteaseMusic/archive/master.tar.gz" >/dev/null 2>&1 tar -zxf "/tmp/unblockneteasemusic/core/core.tar.gz" -C "/tmp/unblockneteasemusic/core/" >/dev/null 2>&1 - rm -f /tmp/unblockneteasemusic/core/UnblockNeteaseMusic-master/ca.crt /tmp/unblockneteasemusic/core/UnblockNeteaseMusic-master/server.crt /tmp/unblockneteasemusic/core/UnblockNeteaseMusic-master/server.key + if [ -e "/usr/share/UnblockNeteaseMusic/ca.crt" ] && [ -e "/usr/share/UnblockNeteaseMusic/server.crt" ] && [ -e "/usr/share/UnblockNeteaseMusic/server.key" ] ; then + rm -f /tmp/unblockneteasemusic/core/UnblockNeteaseMusic-master/ca.crt /tmp/unblockneteasemusic/core/UnblockNeteaseMusic-master/server.crt /tmp/unblockneteasemusic/core/UnblockNeteaseMusic-master/server.key + fi cp -a /tmp/unblockneteasemusic/core/UnblockNeteaseMusic-master/* "/usr/share/UnblockNeteaseMusic/" rm -rf "/tmp/unblockneteasemusic" >/dev/null 2>&1