浏览代码

bump to v2.0

CN_SZTL 6 年之前
父节点
当前提交
73f1ef8543

+ 5 - 5
luci-app-unblockneteasemusic/Makefile → Makefile

@@ -2,19 +2,19 @@
 #
 # This is a free software, use it under GNU General Public License v3.0.
 #
-# Created By [CTCGFW]Project-OpenWRT
+# Created By [CTCGFW]Project-OpenWrt
 # https://github.com/project-openwrt
 
 include $(TOPDIR)/rules.mk
 
-LUCI_TITLE:=LuCI support for UnblockNeteaseMusic-nondanee
-LUCI_DEPENDS:=+UnblockNeteaseMusic-nondanee +bash +dnsmasq-full +ipset +coreutils-nohup
+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:=1.6
+PKG_VERSION:=2.0
 PKG_RELEASE:=1
 
-PKG_MAINTAINER:=<https://github.com/project-openwrt/UnblockNeteaseMusic>
+PKG_MAINTAINER:=[CTCGFW]Project-OpenWrt
 
 include $(TOPDIR)/feeds/luci/luci.mk
 

+ 8 - 8
README.md

@@ -10,10 +10,11 @@
 3. 支持HTTPS劫持,客户端信任证书后即可正常使用
 4. 支持将服务公开至公网(默认监听局域网),支持开启严格模式
 5. 支持设定代理,支持指定网易云音乐服务器IP(针对Hosts劫持法)
+6. 支持设定EndPoint,配置更加方便
 - PS:如果直接在本插件中开启Hosts劫持,则无需指定网易云音乐服务器IP
 
 ## 原理
-- 其原理是采用 [~~网易云旧链~~/QQ/虾米/百度/酷狗/酷我/咕咪/JOOX] 等音源,替换网易云 无版权/收费 歌曲链接
+- 其原理是采用 [QQ/虾米/百度/酷狗/酷我/咕咪/JOOX] 等音源,替换网易云 无版权/收费 歌曲链接
 - 通俗地理解就是通过脚本,将主流客户端的音乐链接汇集到一个客户端上
 
 ## 编译
@@ -21,7 +22,7 @@
     #进入OpenWRT/LEDE源码package目录
     cd package
     #克隆插件源码
-    git clone https://github.com/project-openwrt/UnblockNeteaseMusic.git
+    git clone https://github.com/project-openwrt/luci-app-unblockneteasemusic.git
     #返回上一层目录
     cd ..
     #配置
@@ -39,20 +40,19 @@
 5. 点击“保存&应用”
 - 现在您局域网下的设备,即可自动解除播放限制
 - ### 特别说明
-1. iOS/MacOS设备请将 WiFi/有线 代理方式设置为自动
+1. iOS/MacOSX设备请将 WiFi/有线 代理方式设置为自动
 2. 如需使用网页端,请额外安装Tampermonkey插件:[NeteaseMusic UI Unlocker](https://greasyfork.org/zh-CN/scripts/382285-neteasemusic-ui-unlocker)
 3. 推荐在客户端信任[UnblockNeteaseMusic证书](https://raw.githubusercontent.com/nondanee/UnblockNeteaseMusic/master/ca.crt),以方便HTTPS通讯;若您不放心,也可以[自行签发证书](https://github.com/nondanee/UnblockNeteaseMusic/issues/48#issuecomment-477870013)
 
 ## 效果图
 ### luci界面
-  ![Image text](https://raw.githubusercontent.com/project-openwrt/luci-app-unblockmusic/master/views/view1.jpg)
-  ![Image text](https://raw.githubusercontent.com/project-openwrt/luci-app-unblockmusic/master/views/view2.jpg)
-  ![Image text](https://raw.githubusercontent.com/project-openwrt/luci-app-unblockmusic/master/views/view3.jpg)
+  ![Image text](https://raw.githubusercontent.com/project-openwrt/luci-app-unblockneteasemusic/master/views/view1.jpg)
+  ![Image text](https://raw.githubusercontent.com/project-openwrt/luci-app-unblockneteasemusic/master/views/view2.jpg)
 ### UWP网易云音乐客户端
-  ![Image text](https://raw.githubusercontent.com/project-openwrt/luci-app-unblockmusic/master/views/view4.jpg)
+  ![Image text](https://raw.githubusercontent.com/project-openwrt/luci-app-unblockneteasemusic/master/views/view3.jpg)
 
 ## 协议
-### 本项目使用[GPLv3.0](https://github.com/project-openwrt/UnblockNeteaseMusic/blob/master/LICENSE)协议授权,在遵循此协议的前提下,你可以自由修改和分发
+### 本项目使用[GPLv3.0](https://github.com/project-openwrt/luci-app-unblockneteasemusic/blob/master/LICENSE)协议授权,在遵循此协议的前提下,你可以自由修改和分发
 #### 总而言之,根据协议,你可以:
 - ##### 仅自己使用,在不重新分发的情况下,没有任何限制
 - ##### 不修改源代码并重新分发,需要在明显的地方标注本项目源码地址,并沿用GPLv3.0协议

+ 0 - 52
UnblockNeteaseMusic-nondanee/Makefile

@@ -1,52 +0,0 @@
-#
-# Copyright (C) 2019 [CTCGFW]Project-OpenWRT
-#
-# This is free software, licensed under the GNU General Public License v3.
-# See /LICENSE for more information.
-#
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=UnblockNeteaseMusic-nondanee
-PKG_VERSION:=latest
-PKG_RELEASE:=1
-
-PKG_LICENSE:=GPLv3
-PKG_LICENSE_FILES:=LICENSE
-PKG_MAINTAINER:=[CTCGFW]Project-OpenWRT
-
-PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
-
-include $(INCLUDE_DIR)/package.mk
-
-define Package/$(PKG_NAME)
-	SECTION:=net
-	CATEGORY:=Network
-	TITLE:=Revive unavailable songs for Netease Cloud Music on OpenWRT
-	URL:=https://github.com/nondanee/UnblockNeteaseMusic
-	DEPENDS:=+node +libopenssl
-	PKGARCH:=all
-endef
-
-define Package/$(PKG_NAME)/description
-Revive unavailable songs for Netease Cloud Music on OpenWRT
-endef
-
-define Build/Prepare
-	rm -f $(DL_DIR)/$(PKG_NAME).tar.gz
-	wget https://github.com/nondanee/UnblockNeteaseMusic/archive/master.tar.gz -O $(DL_DIR)/$(PKG_NAME).tar.gz
-	tar -xzf $(DL_DIR)/$(PKG_NAME).tar.gz -C $(PKG_BUILD_DIR)
-endef
-
-define Build/Configure
-endef
-
-define Build/Compile
-endef
-
-define Package/$(PKG_NAME)/install
-	$(INSTALL_DIR) $(1)/usr/share/unblockneteasemusic
-	cp -fpR $(PKG_BUILD_DIR)/UnblockNeteaseMusic-master/* $(1)/usr/share/unblockneteasemusic/
-endef
-
-$(eval $(call BuildPackage,$(PKG_NAME)))

+ 0 - 0
luci-app-unblockneteasemusic/luasrc/controller/unblockneteasemusic.lua → luasrc/controller/unblockneteasemusic.lua


+ 17 - 32
luci-app-unblockneteasemusic/luasrc/model/cbi/unblockneteasemusic.lua → luasrc/model/cbi/unblockneteasemusic.lua

@@ -1,6 +1,5 @@
-
 mp = Map("unblockneteasemusic", translate("解除网易云音乐播放限制"))
-mp.description = translate("原理:采用 [网易云旧链/QQ/虾米/百度/酷狗/酷我/咕咪/JOOX] 等音源,替换网易云音乐 无版权/收费 歌曲链接<br/>具体使用方法参见:https://github.com/project-openwrt/UnblockNeteaseMusic")
+mp.description = translate("原理:采用 [QQ/虾米/百度/酷狗/酷我/咕咪/JOOX] 等音源,替换网易云音乐 无版权/收费 歌曲链接<br/>具体使用方法参见:https://github.com/project-openwrt/UnblockNeteaseMusic")
 
 mp:section(SimpleSection).template  = "unblockneteasemusic/unblockneteasemusic_status"
 
@@ -18,18 +17,16 @@ account.description = translate("本插件监听的HTTP端口,不可与其他
 account.placeholder = "5200"
 account.default = "5200"
 account.datatype = "port"
-account:depends("enabled", 1)
-
+enabled.rmempty = false
 account = s:option(Value, "https_port", translate("[HTTPS] 监听端口"))
-account.description = translate("[如HTTP端口设置为80,请将HTTPS端口设置为443] 本插件监听的HTTPS端口,不可与其他程序/HTTP共用一个端口")
+account.description = translate("本插件监听的HTTPS端口,不可与其他程序/HTTP共用一个端口")
 account.placeholder = "5201"
 account.default = "5201"
 account.datatype = "port"
-account:depends("enabled", 1)
+enabled.rmempty = false
 
 speedtype = s:option(ListValue, "musicapptype", translate("音源接口"))
 speedtype:value("default", translate("默认"))
-speedtype:value("netease", translate("网易云音乐"))
 speedtype:value("qq", translate("QQ音乐"))
 speedtype:value("xiami", translate("虾米音乐"))
 speedtype:value("baidu", translate("百度音乐"))
@@ -40,26 +37,20 @@ speedtype:value("joox", translate("JOOX音乐"))
 speedtype:value("all", translate("所有平台"))
 speedtype.description = translate("音源调用接口")
 speedtype.default = "default"
-speedtype:depends("enabled", 1)
-
-enabled = s:option(Flag, "enable_hijack", translate("启用劫持"))
-enabled.description = translate("开启后,网易云音乐相关请求会被强制劫持到本插件进行处理")
-account.default = 0
-enabled.rmempty = false
-enabled:depends("enabled", 1)
+speedtype.rmempty = false
 
 hijack = s:option(ListValue, "hijack_ways", translate("劫持方法"))
+hijack:value("dont_hijack", translate("不启用劫持功能"))
 hijack:value("use_ipset", translate("使用IPSet劫持"))
 hijack:value("use_hosts", translate("使用Hosts劫持"))
 hijack.description = translate("如果使用Hosts劫持,请将HTTP/HTTPS端口设置为80/443")
-hijack.default = "use_ipset"
-hijack:depends("enable_hijack", 1)
+hijack.default = "dont_hijack"
+hijack.rmempty = false
 
 enabled = s:option(Flag, "advanced_mode", translate("启用进阶设置"))
 enabled.description = translate("仅推荐高级玩家使用")
 enabled.default = 0
 enabled.rmempty = false
-enabled:depends("enabled", 1)
 
 enabled = s:option(Flag, "pub_access", translate("部署到公网"))
 enabled.description = translate("默认仅监听局域网,如需提供公开访问请勾选此选项;与此同时,建议勾选“启用严格模式”")
@@ -73,28 +64,22 @@ enabled.default = 0
 enabled.rmempty = false
 enabled:depends("advanced_mode", 1)
 
-enabled = s:option(Flag, "set_netease_server_ip", translate("自定义网易云服务器IP"))
-enabled.description = translate("如手动更改了Hosts文件则必选,否则将会导致连接死循环")
-enabled.default = 0
-enabled.rmempty = false
-enabled:depends("advanced_mode", 1)
-
-account = s:option(Value, "netease_server_ip", translate("网易云服务器IP"))
+account = s:option(Value, "netease_server_ip", translate("自定义网易云服务器IP"))
 account.description = translate("通过 ping music.163.com 即可获得IP地址,仅限填写一个")
-account.default = "59.111.181.38"
 account.placeholder = "59.111.181.38"
 account.datatype = "ipaddr"
 account:depends("set_netease_server_ip", 1)
+account:depends("advanced_mode", 1)
 
-enabled = s:option(Flag, "enable_proxy", translate("使用代理服务器"))
-enabled.description = translate("如您的OpenWRT/LEDE系统部署在海外,则此选项必选,否则可能无法正常使用")
-enabled.default = 0
-enabled.rmempty = false
-enabled:depends("advanced_mode", 1)
+account = s:option(Value, "endpoint_url", translate("EndPoint"))
+account.description = translate("具体说明请参见:https://github.com/nondanee/UnblockNeteaseMusic")
+account.datatype = "string"
+account:depends("advanced_mode", 1)
 
 account = s:option(Value, "proxy_server_ip", translate("代理服务器IP"))
-account.description = translate("具体格式请参考:https://github.com/nondanee/UnblockNeteaseMusic")
+account.description = translate("使用代理服务器获取音乐信息")
+account.placeholder = "http(s)://host:port"
 account.datatype = "string"
-account:depends("enable_proxy", 1)
+account:depends("advanced_mode", 1)
 
 return mp

+ 0 - 0
luci-app-unblockneteasemusic/luasrc/model/cbi/unblockneteasemusiclog.lua → luasrc/model/cbi/unblockneteasemusiclog.lua


+ 0 - 0
luci-app-unblockneteasemusic/luasrc/view/unblockneteasemusic/unblockneteasemusic_status.htm → luasrc/view/unblockneteasemusic/unblockneteasemusic_status.htm


+ 0 - 0
luci-app-unblockneteasemusic/root/etc/config/unblockneteasemusic → root/etc/config/unblockneteasemusic


+ 22 - 15
luci-app-unblockneteasemusic/root/etc/init.d/unblockneteasemusic → root/etc/init.d/unblockneteasemusic

@@ -11,13 +11,26 @@ enable="$(uci get unblockneteasemusic.@unblockneteasemusic[0].enabled)"
 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)"
-[ "$(uci get unblockneteasemusic.@unblockneteasemusic[0].enable_hijack)" -eq "1" ] && hijack_ways="$(uci get unblockneteasemusic.@unblockneteasemusic[0].hijack_ways)"
-
+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"
-[ "$(uci get unblockneteasemusic.@unblockneteasemusic[0].set_netease_server_ip)" -ne "0" ] && netease_server_ip="-f $(uci get unblockneteasemusic.@unblockneteasemusic[0].netease_server_ip)"
-[ "$(uci get unblockneteasemusic.@unblockneteasemusic[0].enable_proxy)" -ne "0" ] && proxy_server_ip="-u $(uci get unblockneteasemusic.@unblockneteasemusic[0].proxy_server_ip)"
 
+netease_server_ip="$(uci get unblockneteasemusic.@unblockneteasemusic[0].netease_server_ip)"
+[ -n "${netease_server_ip}" ] && netease_server_ip="-f ${netease_server_ip}"
+endpoint_url="$(uci get unblockneteasemusic.@unblockneteasemusic[0].endpoint_url)"
+[ -n "${endpoint_url}" ] && endpoint_url="-e ${endpoint_url}"
+proxy_server_ip="$(uci get unblockneteasemusic.@unblockneteasemusic[0].proxy_server_ip)"
+[ -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
@@ -32,14 +45,6 @@ set_ipset(){
 		cat > "/var/etc/unblockneteasemusic.include" <<-EOF
 if ! ipset list music >/dev/null; then ipset create music hash:ip; fi
 iptables -t nat -N cloud_music
-iptables -t nat -A cloud_music -d 0.0.0.0/8 -j RETURN
-iptables -t nat -A cloud_music -d 10.0.0.0/8 -j RETURN
-iptables -t nat -A cloud_music -d 127.0.0.0/8 -j RETURN
-iptables -t nat -A cloud_music -d 169.254.0.0/16 -j RETURN
-iptables -t nat -A cloud_music -d 172.16.0.0/12 -j RETURN
-iptables -t nat -A cloud_music -d 192.168.0.0/16 -j RETURN
-iptables -t nat -A cloud_music -d 224.0.0.0/4 -j RETURN
-iptables -t nat -A cloud_music -d 240.0.0.0/4 -j RETURN
 iptables -t nat -A cloud_music -p tcp --dport 80 -j REDIRECT --to-ports ${http_port}
 iptables -t nat -A cloud_music -p tcp --dport 443 -j REDIRECT --to-ports ${https_port}
 iptables -t nat -I PREROUTING -p tcp -m set --match-set music dst -j cloud_music
@@ -96,12 +101,14 @@ start()
 
 	[ "${enable}" -eq "0" ] && exit 0
 
+	update_core
+
 	if [ "${type}" = "default" ]; then
-		nohup node /usr/share/unblockneteasemusic/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/app.js -a ${addr} -p ${http_port}:${https_port} -o kuwo migu xiami kugou qq joox netease ${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/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

+ 0 - 0
luci-app-unblockneteasemusic/root/etc/uci-defaults/unblockneteasemusic → root/etc/uci-defaults/unblockneteasemusic


+ 0 - 0
luci-app-unblockneteasemusic/root/usr/share/unblockneteasemusic/logcheck.sh → root/usr/share/unblockneteasemusic/logcheck.sh


二进制
views/view1.jpg


二进制
views/view2.jpg


二进制
views/view3.jpg


二进制
views/view4.jpg