From b6559481962dfa39a9d63fe8be4867e10936794d Mon Sep 17 00:00:00 2001 From: CN_SZTL Date: Sat, 2 Nov 2019 08:56:41 +0800 Subject: [PATCH] luci-app-unblockneteasemusic: bump to 2.3 --- .../luci-app-unblockneteasemusic/Makefile | 4 +-- .../luasrc/model/cbi/unblockneteasemusic.lua | 9 +++-- .../root/etc/init.d/unblockneteasemusic | 35 ++++++++++++++++--- 3 files changed, 39 insertions(+), 9 deletions(-) diff --git a/package/ctcgfw/luci-app-unblockneteasemusic/Makefile b/package/ctcgfw/luci-app-unblockneteasemusic/Makefile index 96eeb95aae..d338125537 100644 --- a/package/ctcgfw/luci-app-unblockneteasemusic/Makefile +++ b/package/ctcgfw/luci-app-unblockneteasemusic/Makefile @@ -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.2 -PKG_RELEASE:=2 +PKG_VERSION:=2.3 +PKG_RELEASE:=1 PKG_MAINTAINER:=[CTCGFW]Project-OpenWrt diff --git a/package/ctcgfw/luci-app-unblockneteasemusic/luasrc/model/cbi/unblockneteasemusic.lua b/package/ctcgfw/luci-app-unblockneteasemusic/luasrc/model/cbi/unblockneteasemusic.lua index 784884c029..473a85e275 100644 --- a/package/ctcgfw/luci-app-unblockneteasemusic/luasrc/model/cbi/unblockneteasemusic.lua +++ b/package/ctcgfw/luci-app-unblockneteasemusic/luasrc/model/cbi/unblockneteasemusic.lua @@ -40,6 +40,11 @@ music_source.description = translate("音源调用接口") music_source.default = "default" music_source.rmempty = false +youtube_key = s:option(Value, "youtube_key", translate("Youtube API Key")) +youtube_key.description = translate("API Key申请地址:https://developers.google.com/youtube/v3/getting-started#before-you-start") +youtube_key.datatype = "string" +youtube_key:depends("music_source", "youtube") + hijack = s:option(ListValue, "hijack_ways", translate("劫持方法")) hijack:value("dont_hijack", translate("不开启劫持")) hijack:value("use_ipset", translate("使用IPSet劫持")) @@ -59,13 +64,13 @@ advanced_mode.default = 0 advanced_mode.rmempty = false pub_access = s:option(Flag, "pub_access", translate("部署到公网")) -pub_access.description = translate("默认仅监听局域网,如需提供公开访问请勾选此选项;与此同时,建议勾选“启用严格模式”") +pub_access.description = translate("默认仅监听局域网,如需提供公开访问请勾选此选项") pub_access.default = 0 pub_access.rmempty = false pub_access:depends("advanced_mode", 1) strict_mode = s:option(Flag, "strict_mode", translate("启用严格模式")) -strict_mode.description = translate("若将服务部署到公网,则强烈建议使用严格模式,此模式下仅放行网易云音乐所属域名的请求") +strict_mode.description = translate("[慎用] 若将服务部署到公网,则强烈建议使用严格模式,此模式下仅放行网易云音乐所属域名的请求") strict_mode.default = 0 strict_mode.rmempty = false strict_mode:depends("advanced_mode", 1) diff --git a/package/ctcgfw/luci-app-unblockneteasemusic/root/etc/init.d/unblockneteasemusic b/package/ctcgfw/luci-app-unblockneteasemusic/root/etc/init.d/unblockneteasemusic index 5ca8a05b6b..19dd4bee1a 100755 --- a/package/ctcgfw/luci-app-unblockneteasemusic/root/etc/init.d/unblockneteasemusic +++ b/package/ctcgfw/luci-app-unblockneteasemusic/root/etc/init.d/unblockneteasemusic @@ -11,11 +11,11 @@ enable="$(uci get unblockneteasemusic.@unblockneteasemusic[0].enable)" http_port="$(uci get unblockneteasemusic.@unblockneteasemusic[0].http_port)" https_port="$(uci get unblockneteasemusic.@unblockneteasemusic[0].https_port)" music_source="$(uci get unblockneteasemusic.@unblockneteasemusic[0].music_source)" +youtube_key="$(uci get unblockneteasemusic.@unblockneteasemusic[0].youtube_key 2>/dev/null)" hijack_ways="$(uci get unblockneteasemusic.@unblockneteasemusic[0].hijack_ways)" 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 2>/dev/null)" [ -n "${netease_server_ip}" ] && netease_server_ip="-f ${netease_server_ip}" endpoint_url="$(uci get unblockneteasemusic.@unblockneteasemusic[0].endpoint_url 2>/dev/null)" @@ -51,7 +51,7 @@ set_ipset(){ iptables -t nat -I PREROUTING -p tcp -m set --match-set music dst -j cloud_music mkdir -p /var/etc - cat <<-EOF > "/var/etc/unblockneteasemusic.include" + cat <<-EOF >> "/var/etc/unblockneteasemusic.include" if ! ipset list music >/dev/null; then ipset create music hash:ip; 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 music "$1}' |bash >/dev/null 2>&1 iptables -t nat -N cloud_music @@ -114,28 +114,52 @@ set_hosts(){ fi } +set_ports(){ + if [ "${set_type}" = "start" ]; then + iptables -I INPUT -p tcp --dport "${http_port}" -j ACCEPT + iptables -I INPUT -p tcp --dport "${https_port}" -j ACCEPT + + mkdir -p /var/etc + cat <<-EOF >> "/var/etc/unblockneteasemusic.include" +iptables -I INPUT -p tcp --dport "${http_port}" -j ACCEPT +iptables -I INPUT -p tcp --dport "${https_port}" -j ACCEPT + EOF + elif [ "${set_type}" = "stop" ]; then + iptables -D INPUT -p tcp --dport "${http_port}" -j ACCEPT + iptables -D INPUT -p tcp --dport "${https_port}" -j ACCEPT + + echo "" > "/var/etc/unblockneteasemusic.include" + fi +} + start() { stop - [ "${enable}" -eq "0" ] && exit 0 + [ "${enable}" -ne "1" ] && exit 0 [ ! -e "/usr/share/unblockneteasemusic/core/app.js" ] && rm -f /usr/share/unblockneteasemusic/local_ver && bash /usr/share/unblockneteasemusic/update_core.sh [ ! -e "/usr/share/unblockneteasemusic/core/app.js" ] && echo "Core Not Found, please download it before starting." >>/tmp/unblockneteasemusic.log && exit 1 + if [ "{music_source}" == "youtube" ];then + [ -z "${youtube_key}" ] && echo "Youtube API Key is not exsit, please enter it before starting." && exit 1 + sed -i '/const key = /d' "/usr/share/unblockneteasemusic/core/provider/youtube.js" + sed -i -e "1i const key = '${youtube_key}'" "/usr/share/unblockneteasemusic/core/provider/youtube.js" + fi + if [ "${music_source}" = "default" ]; then nohup node /usr/share/unblockneteasemusic/core/app.js -a "${addr}" -p "${http_port}":"${https_port}" ${netease_server_ip} ${proxy_server_ip} ${endpoint_url} ${strict_mode} >>/tmp/unblockneteasemusic.log 2>&1 & else nohup node /usr/share/unblockneteasemusic/core/app.js -a "${addr}" -p "${http_port}":"${https_port}" -o "${music_source}" ${netease_server_ip} ${proxy_server_ip} ${endpoint_url} ${strict_mode} >>/tmp/unblockneteasemusic.log 2>&1 & fi + set_type="start" if [ "*${hijack_ways}*" = "*use_ipset*" ]; then - set_type="start" set_ipset >/dev/null 2>&1 elif [ "*${hijack_ways}*" = "*use_hosts*" ]; then - set_type="start" set_hosts >/dev/null 2>&1 fi + [ "*$(uci get unblockneteasemusic.@unblockneteasemusic[0].pub_access 2>/dev/null)*" = "*1*" ] && set_ports >/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" @@ -155,4 +179,5 @@ stop() set_type="stop" set_ipset >/dev/null 2>&1 set_hosts >/dev/null 2>&1 + set_ports >/dev/null 2>&1 }