diff --git a/package/lean/UnblockNeteaseMusicGo/001-endpoint.patch b/package/lean/UnblockNeteaseMusicGo/001-endpoint.patch
new file mode 100644
index 0000000000..cabe603c05
--- /dev/null
+++ b/package/lean/UnblockNeteaseMusicGo/001-endpoint.patch
@@ -0,0 +1,13 @@
+--- a/processor/processor.go
++++ b/processor/processor.go
+@@ -390,7 +390,7 @@
+ //data["url"] = uri.Scheme + "://" + uri.Host + uri.EscapedPath()
+ //data["url"] = uri.String()
+ if *config.EndPoint{
+- data["url"]="https://music.163.com/unblockmusic/"+uri.String()
++ data["url"]="http://music.163.com/unblockmusic/"+uri.String()
+ }else{
+ data["url"] = uri.String()
+ }
+
+
diff --git a/package/lean/UnblockNeteaseMusicGo/Makefile b/package/lean/UnblockNeteaseMusicGo/Makefile
index e569f3311a..a8eafc39ab 100644
--- a/package/lean/UnblockNeteaseMusicGo/Makefile
+++ b/package/lean/UnblockNeteaseMusicGo/Makefile
@@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=UnblockNeteaseMusicGo
PKG_VERSION:=0.1.6
-PKG_RELEASE:=1
+PKG_RELEASE:=5
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/cnsilvan/UnblockNeteaseMusic.git
@@ -30,16 +30,17 @@ define Package/$(PKG_NAME)
CATEGORY:=Network
TITLE:=Revive unavailable songs for Netease Cloud Music (Golang)
URL:=https://github.com/cnsilvan/UnblockNeteaseMusic
- DEPENDS:=@!HAS_FPU $(GO_ARCH_DEPENDS)
+ DEPENDS:=$(GO_ARCH_DEPENDS)
endef
+
define Package/$(PKG_NAME)/description
Revive unavailable songs for Netease Cloud Music (Golang)
endef
+
define Build/Prepare
- # tar -xzf $(DL_DIR)/$(PKG_SOURCE) -C $(PKG_BUILD_DIR)
- # unzip -d $(PKG_BUILD_DIR) $(DL_DIR)/$(PKG_SOURCE)
- # $(call Build/Prepare/Default)
tar -zxvf $(DL_DIR)/$(PKG_SOURCE) -C $(BUILD_DIR)/$(PKG_NAME) --strip-components 1
+ $(CP) ./001-endpoint.patch $(BUILD_DIR)/$(PKG_NAME)/
+ patch -d $(BUILD_DIR)/$(PKG_NAME) -p1 < 001-endpoint.patch
endef
define Build/Configure
@@ -57,7 +58,8 @@ endef
define Package/$(PKG_NAME)/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(GO_PKG_BUILD_BIN_DIR)/UnblockNeteaseMusic $(1)/usr/bin/UnblockNeteaseMusic
- $(INSTALL_DIR) $(1)/usr/share/UnblockNeteaseMusic
+ $(INSTALL_DIR) $(1)/usr/share/UnblockNeteaseMusicGo
+ $(CP) ./files/* $(1)/usr/share/UnblockNeteaseMusicGo/
endef
$(eval $(call GoBinPackage,$(PKG_NAME)))
diff --git a/package/lean/UnblockNeteaseMusicGo/files/ca.crt b/package/lean/UnblockNeteaseMusicGo/files/ca.crt
new file mode 100644
index 0000000000..4101eb3451
--- /dev/null
+++ b/package/lean/UnblockNeteaseMusicGo/files/ca.crt
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+MIIDdzCCAl+gAwIBAgIJAKX8LdIETDklMA0GCSqGSIb3DQEBCwUAMFIxCzAJBgNV
+BAYTAkNOMSQwIgYDVQQDDBtVbmJsb2NrTmV0ZWFzZU11c2ljIFJvb3QgQ0ExHTAb
+BgNVBAoMFEdpdEh1Yi5jb20gQG5vbmRhbmVlMB4XDTE5MDUxODE2MDU0NVoXDTI0
+MDUxNjE2MDU0NVowUjELMAkGA1UEBhMCQ04xJDAiBgNVBAMMG1VuYmxvY2tOZXRl
+YXNlTXVzaWMgUm9vdCBDQTEdMBsGA1UECgwUR2l0SHViLmNvbSBAbm9uZGFuZWUw
+ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD23K6Ti2TfLJToCmpCAVgE
+Xb8+qTMfrifCpnKlJ+hrL+4KI1j4vSqTOOatqmxGSXZdF/j2kJuI40YThaokcgYx
+GFcPcEftSCYGWy8o20u2hzTkkW3KW9wlsDRIXICFXVIsHeSDwz+aVSudkyJHjfaS
+aLNb5pPovE7MRj8tDbp55scaSqhEcOe3m1ZlwlCeeXvD7RLKr3xhBKbGEqlJAjFq
+RNGzuqylqyJVBLScNHC7Lcf4n6pKr1yPGOeLePOUrIwtj0ynHUcBfeMuCVCsIKL8
+vy/oNwlDrZaAMfu5QQslzEf87KY1QgtI6Ppii+tzbmVx1ZxnlaCKqiuwlgBoi/5r
+AgMBAAGjUDBOMB0GA1UdDgQWBBRDhbGjnXEUouE9wNFS2k9PtgYYjDAfBgNVHSME
+GDAWgBRDhbGjnXEUouE9wNFS2k9PtgYYjDAMBgNVHRMEBTADAQH/MA0GCSqGSIb3
+DQEBCwUAA4IBAQDRUh5+JFLEALXQkhPfwrVf4sCXTwLMwVujTPo3NMbhpWiP4cnn
+XHGCD5V57bBwjeD6NSrczDIdnN9uTJyFmLNVFMZBguEIeZfLUJLJ6w1ZhfgciX1D
+9djyyo6eclkHvi+aPZKfzgMmc5BvHcjyUyS5MzI23kUW6WXUDn3IDIUKrfaH9Mjc
+/d4DDZVKQCYrLoBL+XO7pEHUY0u9XZVYWEavQ5tSN8XY1SDrO0yGUpRWET0ltubE
+zV7W0LOhuoVCiemboc5H8+njBjCis8obAo1XMmDZzW189L9GPFxHNWlka+KlajZB
+tMo90PooZYEOw1rTUrzHb+VZY/tYIAAomGZ0
+-----END CERTIFICATE-----
diff --git a/package/lean/UnblockNeteaseMusicGo/files/server.crt b/package/lean/UnblockNeteaseMusicGo/files/server.crt
new file mode 100644
index 0000000000..b58111aee7
--- /dev/null
+++ b/package/lean/UnblockNeteaseMusicGo/files/server.crt
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+MIIDfTCCAmWgAwIBAgIJAKTlW9B59i1HMA0GCSqGSIb3DQEBCwUAMFIxCzAJBgNV
+BAYTAkNOMSQwIgYDVQQDDBtVbmJsb2NrTmV0ZWFzZU11c2ljIFJvb3QgQ0ExHTAb
+BgNVBAoMFEdpdEh1Yi5jb20gQG5vbmRhbmVlMB4XDTE5MDUxODE2MDYxOFoXDTIw
+MDUxNzE2MDYxOFowezELMAkGA1UEBhMCQ04xETAPBgNVBAcMCEhhbmd6aG91MSww
+KgYDVQQKDCNOZXRFYXNlIChIYW5nemhvdSkgTmV0d29yayBDby4sIEx0ZDERMA8G
+A1UECwwISVQgRGVwdC4xGDAWBgNVBAMMDyoubXVzaWMuMTYzLmNvbTCCASIwDQYJ
+KoZIhvcNAQEBBQADggEPADCCAQoCggEBALobECypwEoe8VqM/FJvBRR3p2T+ZWdi
+MSPrwfiRJr5p7OMtWBlLveCBV85+R3feidYbQTXlvVTdToY+GN6mFE1x6zG2dvLD
+s4UuRnipmvGcFYhIRTX8J4AJiN8VMtW0TNXscRMudpz/FAVtsRrggRaThYg4f/rI
+oAPMqKMsS4JoYhxs9ED6E6/tpj3XmSg1ekaXhgacYSYHeyxizZwoOFVCLH3TG5sF
+sD6CYNnukYol8bR+VRpvHftIYss5Yz+DyyhYEAMJm1CfQo+xoGR3D0ozbT3hUnzm
+fEoOhmSp3sALrFVE4iJSuajoh2/3xhmcyi3xZdWyq4F8hpb+URyaoW0CAwEAAaMt
+MCswKQYDVR0RBCIwIIINbXVzaWMuMTYzLmNvbYIPKi5tdXNpYy4xNjMuY29tMA0G
+CSqGSIb3DQEBCwUAA4IBAQB32SVz5jHUYv3ZG7SNF/LFJ904/LI8QlTe9R+Abb9z
+bpXmQeo4pvNNOk3LgcTyuSIPQSHEFn32hk/MedB6Q2cKaGVKQq7Usne1jsV0JirG
+wMx3PTcKPnX+XexRY8s6v6cNKSx5YlMQNFeH7p8MgKqdM/UX/dNCxT04X/ClmP1K
+/rKqonXn4i3wmWprl7Q7Z1wqt0ygQRkNJKqdYKTu4oQcPON8/dRcseYdJzSoK2/G
+H6cOJwKrRLzuUqQlphe6wyUsyTIbIJiFu1a1Gml6zB4lhLZhL89H2lYwdS8wWlc+
+M+wYi+XTM/ylNHEIoKsOe2nscnwi/hTfHJOPPchHbEuM
+-----END CERTIFICATE-----
diff --git a/package/lean/UnblockNeteaseMusicGo/files/server.key b/package/lean/UnblockNeteaseMusicGo/files/server.key
new file mode 100644
index 0000000000..ce16c73adc
--- /dev/null
+++ b/package/lean/UnblockNeteaseMusicGo/files/server.key
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEowIBAAKCAQEAuhsQLKnASh7xWoz8Um8FFHenZP5lZ2IxI+vB+JEmvmns4y1Y
+GUu94IFXzn5Hd96J1htBNeW9VN1Ohj4Y3qYUTXHrMbZ28sOzhS5GeKma8ZwViEhF
+NfwngAmI3xUy1bRM1exxEy52nP8UBW2xGuCBFpOFiDh/+sigA8yooyxLgmhiHGz0
+QPoTr+2mPdeZKDV6RpeGBpxhJgd7LGLNnCg4VUIsfdMbmwWwPoJg2e6RiiXxtH5V
+Gm8d+0hiyzljP4PLKFgQAwmbUJ9Cj7GgZHcPSjNtPeFSfOZ8Sg6GZKnewAusVUTi
+IlK5qOiHb/fGGZzKLfFl1bKrgXyGlv5RHJqhbQIDAQABAoIBAEmAvtalBMlBh1mY
+LV/xcTQwPfDpeOtoILhrOOUPjxnNhD4FfrIe9BNjgmaQAXIadp4VjZ/X6PtHnOfw
+RqpJNeOQhq/PvRMMsC59pF+rvQKH/wkgYhV8Ta2IFoLlQHqfB2nGRLKquzYumJ28
+QSK4YMOl6CtxBTrrWiemAUTRDdGm8tARiipJH1SEJrS6d/NoRoJx2vixFgD2eS6X
+bjnhGjIzvX/w5FWjctqj+SFITP1UI62b6DyWsPOkoosKNteK+Ulz+K6ZFvOx7day
+XgUoTcVpwCVr2dVGhJtOrbKPcl1jYCYHJAHwzUZND4x4yftm1mnnsi3bthYqbtHQ
+vxLE9YECgYEA9hiZxwiVvLjSe1xT/D75HbB8S1XSnwzpMmqgzStguxCQ0Qg5yiLI
+UKRDY8UZvEDV4i2bQGy7mk8lFvX1q2z7Q30+dtT9r2N9a6ujMk5RMfo2BZg/poI6
+yDWe2tKUg9cTwfgni4TutLOYkpz3VDPIQHs3k2mpNh7f+8X4RIybDqkCgYEAwZhp
+uWMV38Bb0WytswHXL1dRuwBskKqALUBY61dtXkyBuocj8AuRRxfxfZpgJRrHFxDX
+O9bQ2nxpVlwKsR6DJDUdxU3+kvwyPfseU5XUBey8WdkuAKD7cKZOHMhFVWccks0U
+YJzykNrxB+rGTiwVKa0MOhipuJ7boerwwaN2SyUCgYBP9Ow5o4tq9q3EUNoksZ0k
+zUuE+oxlCr/VlplKL9bM0HQMxlxoVWa59LTEfKyA4pvbUbAIfYtydlZ5oE5CdTUp
+105tM4R88Jk2W1y5ooJ093OH29CKW/OXSvyi4hpIv592vRa0GOupoFRpBkDBhdWB
+RcdnyMOmht+FIOwp8XkLiQKBgAUK3j4Y6ZnxXbLfvMp70soF4TgYs7s05a/IDEjc
+9xlMrthX6sS22GrcocqeucBdqS/dnW2Ok9QNB4VbUl/4pnvL8mGQPYBAl2Jr5wdQ
+ULxyxRkmAf+8MbBmdIRlZwDpdaIRO2Wk0OCbA0osgEvK9CYovrfIqqsHYDsgbnLs
+ugkNAoGBAJok06BN05caPXXLQ2pMwI/7mjcZFjcOMxSloYi7LFkxlyvoTqReAeSa
+yOb6W/7obS1X8ms/EAkqiyzJuPtNZJCW/nvV0iCoZ/NxLuyHnFaO344GBAweol+S
+Jx0MY8KuDCyeGErc2xdz/yr3ld2PSTq71dhBluGyba2YX+peJ2Yv
+-----END RSA PRIVATE KEY-----
diff --git a/package/lean/luci-app-unblockmusic/Config.in b/package/lean/luci-app-unblockmusic/Config.in
new file mode 100644
index 0000000000..9b4fd64f7e
--- /dev/null
+++ b/package/lean/luci-app-unblockmusic/Config.in
@@ -0,0 +1,13 @@
+choice
+ prompt "Select UnblockNeteaseMusic APP"
+ default UnblockNeteaseMusic_Go
+
+config UnblockNeteaseMusic_Go
+ bool "Go"
+
+config UnblockNeteaseMusic_NodeJS
+ bool "NodeJS"
+
+endchoice
+
+
diff --git a/package/lean/luci-app-unblockmusic/Makefile b/package/lean/luci-app-unblockmusic/Makefile
index ea051a8ffe..3b0d71a81b 100644
--- a/package/lean/luci-app-unblockmusic/Makefile
+++ b/package/lean/luci-app-unblockmusic/Makefile
@@ -8,12 +8,22 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=luci-app-unblockmusic
PKG_VERSION:=2.3.1
-PKG_RELEASE:=22
+PKG_RELEASE:=28
+
+PKG_CONFIG_DEPENDS := \
+ CONFIG_UnblockNeteaseMusic_Go \
+ CONFIG_UnblockNeteaseMusic_NodeJS
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/$(PKG_NAME)/config
+ source "$(SOURCE)/Config.in"
+endef
PKG_LICENSE:=Apache-2.0
LUCI_TITLE:=LuCI support for Unblock NeteaseCloudMusic
-LUCI_DEPENDS:=+UnblockNeteaseMusic +dnsmasq-full +ipset +wget +coreutils +coreutils-nohup
+LUCI_DEPENDS:=+dnsmasq-full +ipset +wget +UnblockNeteaseMusic_NodeJS:UnblockNeteaseMusic +UnblockNeteaseMusic_Go:UnblockNeteaseMusicGo
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 082a5f1fe3..f2a3bcc1f4 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 UnblockNeteaseMusic/app.js | grep -v grep >/dev/null")==0
+ e.running=luci.sys.call("busybox ps -w | grep UnblockNeteaseMusic | 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 2599d27abb..8c1e29f4a9 100644
--- a/package/lean/luci-app-unblockmusic/luasrc/model/cbi/unblockmusic.lua
+++ b/package/lean/luci-app-unblockmusic/luasrc/model/cbi/unblockmusic.lua
@@ -1,3 +1,4 @@
+local fs = require "nixio.fs"
mp = Map("unblockmusic", translate("解锁网易云灰色歌曲"))
mp.description = translate("采用 [QQ/虾米/百度/酷狗/酷我/咕咪/JOOX]等音源,替换网易云变灰歌曲链接")
@@ -13,7 +14,16 @@ enabled.default = 0
enabled.rmempty = false
enabled.description = translate("启用后,路由器自动分流解锁,大部分设备无需设置代理")
-speedtype = s:option(ListValue, "musicapptype", translate("音源选择"))
+apptype = s:option(ListValue, "apptype", translate("解锁程序选择"))
+if nixio.fs.access("/usr/bin/UnblockNeteaseMusic") then
+apptype:value("go", translate("Golang 版本"))
+end
+if nixio.fs.access("/usr/share/UnblockNeteaseMusic/app.js") then
+apptype:value("nodejs", translate("NodeJS 版本"))
+end
+apptype:value("cloud", translate("云解锁([CTCGFW]Project OpenWrt 服务器)"))
+
+speedtype = s:option(Value, "musicapptype", translate("音源选择"))
speedtype:value("default", translate("默认"))
speedtype:value("netease", translate("网易云音乐"))
speedtype:value("qq", translate("QQ音乐"))
@@ -23,47 +33,40 @@ speedtype:value("kugou", translate("酷狗音乐"))
speedtype:value("kuwo", translate("酷我音乐(高音质/FLACの解锁可能性)"))
speedtype:value("migu", translate("咕咪音乐"))
speedtype:value("joox", translate("JOOX音乐"))
+speedtype.default = "kuwo"
+speedtype:depends("apptype", "nodejs")
+speedtype:depends("apptype", "go")
-o = s:option(Button,"certificate",translate("HTTPS 证书"))
-o.inputtitle = translate("下载 CA 根证书")
-o.description = translate("新版安卓/iOS客户端可能需要安装 CA根证书并信任
苹果系统需要在“设置 -> 通用 -> 关于本机 -> 证书信任设置”中,信任 UnblockNeteaseMusic Root CA )")
-o.inputstyle = "apply"
-o.write = function()
- Download()
-end
+cloudserver = s:option(Value, "cloudserver", translate("服务器位置"))
+cloudserver:value("cdn-shanghai.service.project-openwrt.eu.org:30000:30001", translate("[CTCGFW] 腾讯云上海(高音质)"))
+cloudserver:value("hyird.xyz:30000:30001", translate("[hyird] 阿里云北京(高音质)"))
+cloudserver:value("39.96.56.58:30000:30000", translate("[Sunsky] 阿里云北京(高音质)"))
+cloudserver:value("cdn-henan.service.project-openwrt.eu.org:33221:33222",translate("[CTCGFW] 移动河南(无损音质)"))
+cloudserver.description = translate("自定义服务器格式为 IP[域名]:HTTP端口:HTTPS端口")
+cloudserver.default = "cdn-shanghai.service.project-openwrt.eu.org:30000:30001"
+cloudserver.rmempty = true
+cloudserver:depends("apptype", "cloud")
-function Download()
- local t,e
- t=nixio.open("/usr/share/UnblockNeteaseMusic/ca.crt","r")
- luci.http.header('Content-Disposition','attachment; filename="ca.crt"')
- luci.http.prepare_content("application/octet-stream")
- while true do
- e=t:read(nixio.const.buffersize)
- if(not e)or(#e==0)then
- break
- else
- luci.http.write(e)
- end
- end
- t:close()
- luci.http.close()
-end
+download_certificate=s:option(DummyValue,"opennewwindow",translate("HTTPS 证书"))
+download_certificate.description = translate("
Mac/iOS客户端需要安装 CA根证书并信任
iOS系统需要在“设置 -> 通用 -> 关于本机 -> 证书信任设置”中,信任 UnblockNeteaseMusic Root CA
Linux 设备请在启用时加入 --ignore-certificate-errors 参数 )")
o = s:option(Flag, "autoupdate")
o.title = translate("自动检查更新主程序")
o.default = 0
o.rmempty = false
o.description = translate("每天自动检测并更新到最新版本")
+o:depends("apptype", "nodejs")
-local ver = luci.sys.exec("cat /usr/share/UnblockNeteaseMusic/core_ver")
+local ver = fs.readfile("/usr/share/UnblockNeteaseMusic/core_ver") or "0.00"
o = s:option(Button, "restart",translate("手动更新"))
o.inputtitle = translate("更新核心版本")
-o.description = string.format(translate("目前运行主程序版本") .. ": %s ", ver)
+o.description = string.format(translate("NodeJS 解锁主程序版本") .. ": %s ", ver)
o.inputstyle = "reload"
o.write = function()
luci.sys.exec("/usr/share/UnblockNeteaseMusic/update_core.sh luci_update 2>&1")
luci.http.redirect(luci.dispatcher.build_url("admin", "services", "unblockmusic"))
end
+o:depends("apptype", "nodejs")
return mp
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 b5ff538702..fdd6293416 100644
--- a/package/lean/luci-app-unblockmusic/luasrc/model/cbi/unblockmusiclog.lua
+++ b/package/lean/luci-app-unblockmusic/luasrc/model/cbi/unblockmusiclog.lua
@@ -7,7 +7,7 @@ t = f:field(TextValue, "conf")
t.rmempty = true
t.rows = 20
function t.cfgvalue()
- luci.sys.exec("grep -B 1 'http' /tmp/unblockmusic.log | grep -v 'running' > /tmp/music.log")
+ luci.sys.exec("grep -B 1 'http' /tmp/unblockmusic.log | grep -v -e'running' -e'TLS Server' -e'Transport' -e'POST' -e'github' -e'consumed' -e'starting'-e'TLS handshake' > /tmp/music.log")
return fs.readfile(conffile) or ""
end
t.readonly="readonly"
diff --git a/package/lean/luci-app-unblockmusic/root/etc/config/unblockmusic b/package/lean/luci-app-unblockmusic/root/etc/config/unblockmusic
index 763f613d41..c9f790b453 100644
--- a/package/lean/luci-app-unblockmusic/root/etc/config/unblockmusic
+++ b/package/lean/luci-app-unblockmusic/root/etc/config/unblockmusic
@@ -1,7 +1,8 @@
config unblockmusic
- option musicapptype 'default'
- option autoupdate '1'
+ option musicapptype 'kuwo'
+ option autoupdate '0'
option endpoint 'http://music.163.com'
option enabled '0'
+ option apptype 'go'
diff --git a/package/lean/luci-app-unblockmusic/root/etc/hotplug.d/iface/099-unblockmusic b/package/lean/luci-app-unblockmusic/root/etc/hotplug.d/iface/099-unblockmusic
index 4fbe7ddc48..31908f9ac5 100755
--- a/package/lean/luci-app-unblockmusic/root/etc/hotplug.d/iface/099-unblockmusic
+++ b/package/lean/luci-app-unblockmusic/root/etc/hotplug.d/iface/099-unblockmusic
@@ -1,8 +1,7 @@
#!/bin/sh
[ "$ACTION" = ifup ] || exit 0
-[ "$INTERFACE" = "wan" ] || exit 0
ipset -! -N music hash:ip
sleep 10
-wget-ssl -t 99 -T 10 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 -O- | grep -Eo '[0-9]+?\.[0-9]+?\.[0-9]+?\.[0-9]+?' | sort | uniq | awk '{print "ipset -! add music "$1}' | sh
+wget-ssl -q -t 99 -T 10 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 -O- | grep -Eo '[0-9]+?\.[0-9]+?\.[0-9]+?\.[0-9]+?' | sort | uniq | awk '{print "ipset -! add music "$1}' | sh
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 650805ff2c..cc9e5cfcf9 100755
--- a/package/lean/luci-app-unblockmusic/root/etc/init.d/unblockmusic
+++ b/package/lean/luci-app-unblockmusic/root/etc/init.d/unblockmusic
@@ -3,9 +3,41 @@
START=97
STOP=10
-enable=$(uci get unblockmusic.@unblockmusic[0].enabled)
-TYPE=$(uci get unblockmusic.@unblockmusic[0].musicapptype)
-AUTOUPDATE=$(uci get unblockmusic.@unblockmusic[0].autoupdate)
+NAME=unblockmusic
+
+uci_get_by_type() {
+ local ret=$(uci get $NAME.@$1[0].$2 2>/dev/null)
+ echo ${ret:=$3}
+}
+
+check_host() {
+ local host=$1
+ if echo $host | grep -E "^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$" >/dev/null; then
+ hostip=$host
+ elif [ "$host" != "${host#*:[0-9a-fA-F]}" ]; then
+ hostip=$host
+ else
+ hostip=$(ping $host -W 1 -s 1 -c 1 | grep PING | cut -d'(' -f 2 | cut -d')' -f1)
+ if echo $hostip | grep -E "^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$" >/dev/null; then
+ hostip=$hostip
+ else
+ hostip="127.0.0.1"
+ fi
+ fi
+ echo -e $hostip
+}
+
+ENABLE=$(uci_get_by_type unblockmusic enabled 0)
+TYPE=$(uci_get_by_type unblockmusic musicapptype default)
+AUTOUPDATE=$(uci_get_by_type unblockmusic autoupdate 0)
+APPTYPE=$(uci_get_by_type unblockmusic apptype go)
+
+CLOUD=$(uci_get_by_type unblockmusic cloudserver "127.0.0.1:5200:5201")
+cloudadd=$(echo "$CLOUD" | awk -F ':' '{print $1}')
+cloudhttp=$(echo "$CLOUD" | awk -F ':' '{print $2}')
+cloudhttps=$(echo "$CLOUD" | awk -F ':' '{print $3}')
+
+cloudip=$(check_host $cloudadd)
CRON_FILE=/etc/crontabs/root
@@ -14,25 +46,30 @@ ipt_n="iptables -t nat"
add_rule()
{
ipset -! -N music hash:ip
- $ipt_n -N cloud_music
- $ipt_n -A cloud_music -d 0.0.0.0/8 -j RETURN
- $ipt_n -A cloud_music -d 10.0.0.0/8 -j RETURN
- $ipt_n -A cloud_music -d 127.0.0.0/8 -j RETURN
- $ipt_n -A cloud_music -d 169.254.0.0/16 -j RETURN
- $ipt_n -A cloud_music -d 172.16.0.0/12 -j RETURN
- $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 --dport 80 -j REDIRECT --to-ports 5200
- $ipt_n -A cloud_music -p tcp --dport 443 -j REDIRECT --to-ports 5201
- $ipt_n -I PREROUTING -p tcp -m set --match-set music dst -j cloud_music
+ $ipt_n -N CLOUD_MUSIC
+ $ipt_n -A CLOUD_MUSIC -d 0.0.0.0/8 -j RETURN
+ $ipt_n -A CLOUD_MUSIC -d 10.0.0.0/8 -j RETURN
+ $ipt_n -A CLOUD_MUSIC -d 127.0.0.0/8 -j RETURN
+ $ipt_n -A CLOUD_MUSIC -d 169.254.0.0/16 -j RETURN
+ $ipt_n -A CLOUD_MUSIC -d 172.16.0.0/12 -j RETURN
+ $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
+ if [ "$APPTYPE" != "cloud" ]; then
+ $ipt_n -A CLOUD_MUSIC -p tcp --dport 80 -j REDIRECT --to-ports 5200
+ $ipt_n -A CLOUD_MUSIC -p tcp --dport 443 -j REDIRECT --to-ports 5201
+ else
+ $ipt_n -A CLOUD_MUSIC -p tcp --dport 80 -j DNAT --to $cloudip:$cloudhttp
+ $ipt_n -A CLOUD_MUSIC -p tcp --dport 443 -j DNAT --to $cloudip:$cloudhttps
+ fi
+ $ipt_n -I PREROUTING -p tcp -m set --match-set music dst -j CLOUD_MUSIC
iptables -I OUTPUT -d 223.252.199.10 -j DROP
}
del_rule(){
- $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
+ $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
iptables -D OUTPUT -d 223.252.199.10 -j DROP 2>/dev/null
rm -f /tmp/dnsmasq.d/dnsmasq-163.conf
@@ -78,28 +115,41 @@ start()
{
stop
- [ $enable -eq "0" ] && exit 0
-
+ [ $ENABLE -eq "0" ] && exit 0
+
rm -f /tmp/unblockmusic.log
echo "$(date -R) # Start UnblockNeteaseMusic" >/tmp/unblockmusic.log
- if [ $TYPE = "default" ]; then
+ if [ "$TYPE" = "default" ]; then
musictype=" "
else
musictype="-o $TYPE"
fi
-
- nohup env "ENABLE_FLAC=true" node /usr/share/UnblockNeteaseMusic/app.js -e http://music.163.com -p 5200:5201 $musictype >>/tmp/unblockmusic.log 2>&1 &
+
+ if [ "$APPTYPE" == "nodejs" ]; then
+ export ENABLE_FLAC=true
+ node /usr/share/UnblockNeteaseMusic/app.js -e http://music.163.com -p 5200:5201 $musictype >>/tmp/unblockmusic.log 2>&1 &
+ add_cron
+ echo "$(date -R) # UnblockNeteaseMusic Nodejs Version (http:5200, https:5201)" >>/tmp/unblockmusic.log
+ elif [ "$APPTYPE" == "go" ]; then
+ UnblockNeteaseMusic -p 5200 -sp 5201 -c /usr/share/UnblockNeteaseMusicGo/server.crt -k /usr/share/UnblockNeteaseMusicGo/server.key -m 0 -e >>/tmp/unblockmusic.log 2>&1 &
+ echo "$(date -R) # UnblockNeteaseMusic Golang Version (http:5200, https:5201)" >>/tmp/unblockmusic.log
+ else
+ kill -9 $(busybox ps -w | grep 'sleep 60m' | grep -v grep | awk '{print $1}') >/dev/null 2>&1
+ /usr/bin/UnblockNeteaseMusicCloud >/dev/null 2>&1 &
+ echo "$(date -R) # UnblockNeteaseMusic Cloud Version - Server: $cloudip (http:$cloudhttp, https:$cloudhttp)" >>/tmp/unblockmusic.log
+ fi
set_firewall
- add_cron
-
- /usr/share/UnblockNeteaseMusic/logcheck.sh >/dev/null 2>&1 &
+
+ if [ "$APPTYPE" != "cloud" ]; then
+ /usr/share/UnblockNeteaseMusic/logcheck.sh >/dev/null 2>&1 &
+ fi
}
stop()
{
- 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 UnblockNeteaseMusic | 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
diff --git a/package/lean/luci-app-unblockmusic/root/lib/upgrade/keep.d/unblockmusic b/package/lean/luci-app-unblockmusic/root/lib/upgrade/keep.d/unblockmusic
index 4f44321e28..97e69bd4ea 100644
--- a/package/lean/luci-app-unblockmusic/root/lib/upgrade/keep.d/unblockmusic
+++ b/package/lean/luci-app-unblockmusic/root/lib/upgrade/keep.d/unblockmusic
@@ -1,3 +1,6 @@
/usr/share/UnblockNeteaseMusic/ca.crt
/usr/share/UnblockNeteaseMusic/server.crt
-/usr/share/UnblockNeteaseMusic/server.key
\ No newline at end of file
+/usr/share/UnblockNeteaseMusic/server.key
+/usr/share/UnblockNeteaseMusicGo/ca.crt
+/usr/share/UnblockNeteaseMusicGo/server.crt
+/usr/share/UnblockNeteaseMusicGo/server.key
\ No newline at end of file
diff --git a/package/lean/luci-app-unblockmusic/root/usr/bin/UnblockNeteaseMusicCloud b/package/lean/luci-app-unblockmusic/root/usr/bin/UnblockNeteaseMusicCloud
new file mode 100755
index 0000000000..02027f62de
--- /dev/null
+++ b/package/lean/luci-app-unblockmusic/root/usr/bin/UnblockNeteaseMusicCloud
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+while true
+do
+ ipset -! -N music hash:ip
+ wget-ssl -q -t 99 -T 10 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 -O- | grep -Eo '[0-9]+?\.[0-9]+?\.[0-9]+?\.[0-9]+?' | sort | uniq | awk '{print "ipset -! add music "$1}' | sh
+ sleep 60m
+done
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 c0612ceb31..78dc4d5897 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
@@ -7,7 +7,7 @@ log_size=0
while true
do
sleep 10m
- icount=`busybox ps -w | grep UnblockNeteaseMusic/app.js |grep -v grep`
+ icount=`busybox ps -w | grep UnblockNeteaseMusic |grep -v grep`
[ -z "$icount" ] && /etc/init.d/unblockmusic restart
log_size=$(expr $(ls -l $log_file | awk '{print $5}') / 1024)
[ $log_size -ge $log_max_size ] && echo "$(date -R) # Start UnblockNeteaseMusic" >/tmp/unblockmusic.log
diff --git a/package/lean/luci-app-unblockneteasemusic-go/Makefile b/package/lean/luci-app-unblockneteasemusic-go/Makefile
deleted file mode 100644
index ffe15e7083..0000000000
--- a/package/lean/luci-app-unblockneteasemusic-go/Makefile
+++ /dev/null
@@ -1,15 +0,0 @@
-# Copyright (C) 2020 Silvan
-include $(TOPDIR)/rules.mk
-
-LUCI_TITLE:=LuCI support for UnblockNeteaseMusic Go
-LUCI_DEPENDS:=+coreutils-nohup +dnsmasq-full +ipset +UnblockNeteaseMusicGo
-LUCI_PKGARCH:=all
-PKG_NAME:=luci-app-unblockneteasemusic-go
-PKG_VERSION:=1.1
-PKG_RELEASE:=2
-
-PKG_MAINTAINER:=https://github.com/cnsilvan/luci-app-unblockneteasemusic
-
-include $(TOPDIR)/feeds/luci/luci.mk
-
-# call BuildPackage - OpenWrt buildroot signature
diff --git a/package/lean/luci-app-unblockneteasemusic-go/luasrc/controller/unblockneteasemusic.lua b/package/lean/luci-app-unblockneteasemusic-go/luasrc/controller/unblockneteasemusic.lua
deleted file mode 100644
index 06bd1fbd99..0000000000
--- a/package/lean/luci-app-unblockneteasemusic-go/luasrc/controller/unblockneteasemusic.lua
+++ /dev/null
@@ -1,25 +0,0 @@
--- This is a free software, use it under GNU General Public License v3.0.
--- Created By Silvan
--- https://github.com/cnsilvan/luci-app-unblockneteasemusic
-
-module("luci.controller.unblockneteasemusic", package.seeall)
-
-function index()
- if not nixio.fs.access("/etc/config/unblockneteasemusic") then
- return
- end
-
- 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", "status"},call("act_status")).leaf=true
-end
-
-function act_status()
- local e={}
- e.running=luci.sys.call("pidof UnblockNeteaseMusic >/dev/null")==0
- luci.http.prepare_content("application/json")
- luci.http.write_json(e)
-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
deleted file mode 100644
index 97f055f22b..0000000000
--- a/package/lean/luci-app-unblockneteasemusic-go/luasrc/model/cbi/unblockneteasemusic.lua
+++ /dev/null
@@ -1,92 +0,0 @@
-local fs = require "luci.fs"
-local http = luci.http
-
-mp = Map("unblockneteasemusic", translate("解除网易云音乐播放限制 (Golang)"))
-mp.description = translate("原理:采用 [酷我/酷狗/咕咪] 音源(后续有空补充),替换网易云音乐 灰色 歌曲链接
具体使用方法参见:https://github.com/cnsilvan/luci-app-unblockneteasemusic
首次使用会自动生成证书,所以较慢")
-mp:section(SimpleSection).template = "unblockneteasemusic/unblockneteasemusic_status"
-
-s = mp:section(TypedSection, "unblockneteasemusic")
-s.anonymous=true
-s.addremove=false
-
-enable = s:option(Flag, "enable", translate("启用本插件"))
-enable.description = translate("启用本插件以解除网易云音乐播放限制")
-enable.default = 0
-enable.rmempty = false
-
-http_port = s:option(Value, "http_port", translate("[HTTP] 监听端口"))
-http_port.description = translate("本插件监听的HTTP端口,不可与其他程序/HTTPS共用一个端口")
-http_port.placeholder = "5210"
-http_port.default = "5210"
-http_port.datatype = "port"
-http_port.rmempty = false
-
-https_port = s:option(Value, "https_port", translate("[HTTPS] 监听端口"))
-https_port.description = translate("本插件监听的HTTPS端口,不可与其他程序/HTTP共用一个端口")
-https_port.placeholder = "5211"
-https_port.default = "5211"
-https_port.datatype = "port"
-https_port.rmempty = false
-
-music_source = s:option(ListValue, "music_source", translate("音源选择"))
-music_source:value("default", translate("默认"))
-music_source:value("customize", translate("自定义"))
-music_source.description = translate("默认为kuwo:kugou")
-music_source.default = "default"
-music_source.rmempty = false
-
-music_customize_source = s:option(Value, "music_customize_source", translate("自定义音源"))
-music_customize_source.description = translate("自定义音源设置,如kuwo:kugou:migu ,以:隔开,migu在某些运营商下无法使用可能会导致卡顿")
-music_customize_source.default = "kuwo:kugou"
-music_customize_source.rmempty = false
-music_customize_source:depends("music_source", "customize")
-
-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,路由器不建议使用Hosts劫持")
-hijack.default = "dont_hijack"
-hijack.rmempty = false
-
-daemon_enable = s:option(Flag, "daemon_enable", translate("启用进程守护"))
-daemon_enable.description = translate("开启后,附属程序会自动检测主程序运行状态,在主程序退出时自动重启")
-daemon_enable.default = 0
-daemon_enable.rmempty = false
-
-download = s:option(FileUpload,"", translate("下载根证书"))
-download.description = translate("请在客户端信任该证书。该证书由你设备自动生成,安全可靠")
-download.rmempty = false
-download.template = "unblockneteasemusic/unblockneteasemusic_download"
-function Download()
- local sPath, sFile, fd, block
- sPath = "/usr/share/UnblockNeteaseMusic/ca.crt"
- sFile = nixio.fs.basename(sPath)
- if luci.fs.isdirectory(sPath) then
- fd = io.popen('tar -C "%s" -cz .' % {sPath}, "r")
- sFile = sFile .. ".tar.gz"
- else
- fd = nixio.open(sPath, "r")
- end
- if not fd then
- download.description = string.format('请在客户端信任该证书。该证书由你设备自动生成,安全可靠
%s', translate("Couldn't open file: ") .. sPath)
- return
- end
- download.description = translate("请在客户端信任该证书。该证书由你设备自动生成,安全可靠")
- http.header('Content-Disposition', 'attachment; filename="%s"' % {sFile})
- http.prepare_content("application/octet-stream")
- while true do
- block = fd:read(nixio.const.buffersize)
- if (not block) or (#block ==0) then
- break
- else
- http.write(block)
- end
- end
- fd:close()
- http.close()
-end
-if luci.http.formvalue("download") then
- Download()
-end
-return mp
diff --git a/package/lean/luci-app-unblockneteasemusic-go/luasrc/model/cbi/unblockneteasemusic_log.lua b/package/lean/luci-app-unblockneteasemusic-go/luasrc/model/cbi/unblockneteasemusic_log.lua
deleted file mode 100644
index 65df21d852..0000000000
--- a/package/lean/luci-app-unblockneteasemusic-go/luasrc/model/cbi/unblockneteasemusic_log.lua
+++ /dev/null
@@ -1,14 +0,0 @@
-local fs = require "nixio.fs"
-local conffile = "/tmp/unblockneteasemusic.log"
-
-f = SimpleForm("logview")
-
-t = f:field(TextValue, "conf")
-t.rmempty = true
-t.rows = 15
-function t.cfgvalue()
- return fs.readfile(conffile) or ""
-end
-t.readonly="readonly"
-
-return f
diff --git a/package/lean/luci-app-unblockneteasemusic-go/luasrc/view/unblockneteasemusic/unblockneteasemusic_download.htm b/package/lean/luci-app-unblockneteasemusic-go/luasrc/view/unblockneteasemusic/unblockneteasemusic_download.htm
deleted file mode 100644
index 3d85f8a4da..0000000000
--- a/package/lean/luci-app-unblockneteasemusic-go/luasrc/view/unblockneteasemusic/unblockneteasemusic_download.htm
+++ /dev/null
@@ -1,3 +0,0 @@
-<%+cbi/valueheader%>
-
-<%+cbi/valuefooter%>
diff --git a/package/lean/luci-app-unblockneteasemusic-go/luasrc/view/unblockneteasemusic/unblockneteasemusic_status.htm b/package/lean/luci-app-unblockneteasemusic-go/luasrc/view/unblockneteasemusic/unblockneteasemusic_status.htm
deleted file mode 100644
index b9e979e090..0000000000
--- a/package/lean/luci-app-unblockneteasemusic-go/luasrc/view/unblockneteasemusic/unblockneteasemusic_status.htm
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-