mirror of
https://github.com/coolsnowwolf/lede.git
synced 2025-04-16 14:23:38 +00:00
luci-app-unblockneteasemusic-mini: add package (#3218)
* luci-app-unblockneteasemusic-mini: add package * Update Makefile * Update unblockneteasemusic-mini Co-authored-by: coolsnowwolf <31687149+coolsnowwolf@users.noreply.github.com>
This commit is contained in:
parent
1f34a3c94b
commit
4605165ed2
21
package/lean/luci-app-unblockneteasemusic-mini/Makefile
Normal file
21
package/lean/luci-app-unblockneteasemusic-mini/Makefile
Normal file
@ -0,0 +1,21 @@
|
||||
# Copyright (C) 2016 Openwrt.org
|
||||
#
|
||||
# This is a free software, use it under GNU General Public License v3.0.
|
||||
#
|
||||
# Created By [CTCGFW]Project-OpenWrt
|
||||
# https://github.com/project-openwrt
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=luci-app-unblockneteasemusic-mini
|
||||
PKG_VERSION:=1.2
|
||||
PKG_RELEASE:=5
|
||||
LUCI_TITLE:=LuCI support for UnblockNeteaseMusic(Mini)
|
||||
LUCI_DEPENDS:=+dnsmasq-full +ipset +iptables +wget
|
||||
LUCI_PKGARCH:=all
|
||||
|
||||
PKG_MAINTAINER:=[CTCGFW]Project-OpenWrt
|
||||
|
||||
include $(TOPDIR)/feeds/luci/luci.mk
|
||||
|
||||
# call BuildPackage - OpenWrt buildroot signature
|
@ -0,0 +1,23 @@
|
||||
-- This is a free software, use it under GNU General Public License v3.0.
|
||||
-- Created By [CTCGFW]Project OpenWRT
|
||||
-- https://github.com/project-openwrt
|
||||
|
||||
module("luci.controller.unblockneteasemusic-mini", package.seeall)
|
||||
|
||||
function index()
|
||||
if not nixio.fs.access("/etc/config/unblockneteasemusic-mini") then
|
||||
return
|
||||
end
|
||||
|
||||
local page
|
||||
page = entry({"admin", "services", "unblockneteasemusic-mini"}, cbi("unblockneteasemusic-mini"), _("解除网易云音乐播放限制 (Mini)"), 100)
|
||||
page.dependent = true
|
||||
entry({"admin", "services", "unblockneteasemusic-mini", "status"},call("act_status")).leaf=true
|
||||
end
|
||||
|
||||
function act_status()
|
||||
local e={}
|
||||
e.running=luci.sys.call("iptables -t nat -L -v -n |grep unblock_netease_music |grep -v grep >/dev/null")==0
|
||||
luci.http.prepare_content("application/json")
|
||||
luci.http.write_json(e)
|
||||
end
|
@ -0,0 +1,29 @@
|
||||
-- Created By [CTCGFW]Project-OpenWrt
|
||||
-- https://github.com/project-openwrt
|
||||
|
||||
mp = Map("unblockneteasemusic-mini", translate("解除网易云音乐播放限制 (Mini)"))
|
||||
mp.description = translate("原理:采用 [QQ/酷狗/酷我/咕咪] 等音源,替换网易云音乐 无版权/收费 歌曲链接<br/>由 [CTCGFW]Project-OpenWrt & hyird 提供服务器支持<br/>详细说明参见:https://github.com/project-openwrt/luci-app-unblockneteasemusic-mini")
|
||||
|
||||
mp:section(SimpleSection).template = "unblockneteasemusic-mini/unblockneteasemusic_mini_status"
|
||||
|
||||
s = mp:section(TypedSection, "unblockneteasemusic-mini")
|
||||
s.anonymous=true
|
||||
s.addremove=false
|
||||
|
||||
enable = s:option(Flag, "enable", translate("启用本插件"))
|
||||
enable.description = translate("启用本插件以解除网易云音乐播放限制")
|
||||
enable.default = 0
|
||||
enable.rmempty = false
|
||||
|
||||
select_server = s:option(ListValue, "select_server", translate("服务端类型"))
|
||||
select_server:value("tencent_shanghai_nodejs", translate("腾讯云上海 Node.js 版本(高音质)"))
|
||||
select_server:value("aliyun_beijing_nodejs", translate("阿里云北京 Node.js 版本(高音质)"))
|
||||
select_server:value("tencent_shanghai_golang", translate("腾讯云上海 Golang 版本(低音质)"))
|
||||
select_server.description = translate("Node.js版使用QQ、酷我、咪咕音源,Golang版使用酷狗、酷我、咪咕音源")
|
||||
select_server.default = "tencent_shanghai_nodejs"
|
||||
select_server.rmempty = false
|
||||
|
||||
download_certificate=s:option(DummyValue,"opennewwindow",translate("<input type=\"button\" class=\"cbi-button cbi-button-apply\" value=\"下载CA根证书\" onclick=\"window.open('https://raw.githubusercontent.com/nondanee/UnblockNeteaseMusic/master/ca.crt')\" />"))
|
||||
download_certificate.description = translate("Linux/iOS/MacOSX设备在信任根证书后方可正常使用解锁功能。")
|
||||
|
||||
return mp
|
@ -0,0 +1,22 @@
|
||||
<script type="text/javascript">//<![CDATA[
|
||||
XHR.poll(3, '<%=url([[admin]], [[services]], [[unblockneteasemusic-mini]], [[status]])%>', null,
|
||||
function(x, data) {
|
||||
var tb = document.getElementById('unblockneteasemusic_mini_status');
|
||||
if (data && tb) {
|
||||
if (data.running) {
|
||||
var links = '<em><b><font color=green>UnblockNeteaseMusic-Mini <%:RUNNING%></font></b></em>';
|
||||
tb.innerHTML = links;
|
||||
} else {
|
||||
tb.innerHTML = '<em><b><font color=red>UnblockNeteaseMusic-Mini <%:NOT RUNNING%></font></b></em>';
|
||||
}
|
||||
}
|
||||
}
|
||||
);
|
||||
//]]>
|
||||
</script>
|
||||
<style>.mar-10 {margin-left: 50px; margin-right: 10px;}</style>
|
||||
<fieldset class="cbi-section">
|
||||
<p id="unblockneteasemusic_mini_status">
|
||||
<em><%:Collecting data...%></em>
|
||||
</p>
|
||||
</fieldset>
|
@ -0,0 +1,5 @@
|
||||
|
||||
config unblockneteasemusic-mini
|
||||
option enable '0'
|
||||
option select_server 'tencent_shanghai_nodejs'
|
||||
|
@ -0,0 +1,8 @@
|
||||
#!/bin/sh
|
||||
|
||||
[ "$ACTION" = ifup ] || exit 0
|
||||
[ "$INTERFACE" = "wan" ] || exit 0
|
||||
|
||||
ipset -! -N "neteasemusic" hash:ip
|
||||
sleep 10
|
||||
wget-ssl -t 5 -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 neteasemusic "$1}' |sh
|
@ -0,0 +1,91 @@
|
||||
#!/bin/sh /etc/rc.common
|
||||
# Created By [CTCGFW]Project OpenWRT
|
||||
# https://github.com/project-openwrt
|
||||
|
||||
START=80
|
||||
STOP=10
|
||||
|
||||
enable="$(uci get unblockneteasemusic-mini.@unblockneteasemusic-mini[0].enable)"
|
||||
select_server="$(uci get unblockneteasemusic-mini.@unblockneteasemusic-mini[0].select_server)"
|
||||
|
||||
if [ "${select_server}" = "tencent_shanghai_nodejs" ]; then
|
||||
unblock_server_addr="cdn-shanghai.service.project-openwrt.eu.org"
|
||||
unblock_server_ip="$(ping "cdn-shanghai.service.project-openwrt.eu.org" -c 1 | sed '1{s/[^(]*(//;s/).*//;q}')"
|
||||
[ -z "${unblock_server_ip}" ] && unblock_server_ip="122.51.88.18"
|
||||
unblock_server_http_port="30000"
|
||||
unblock_server_https_port="30001"
|
||||
elif [ "${select_server}" = "aliyun_beijing_nodejs" ]; then
|
||||
unblock_server_addr="hyird.xyz"
|
||||
unblock_server_ip="$(ping "hyird.xyz" -c 1 | sed '1{s/[^(]*(//;s/).*//;q}')"
|
||||
[ -z "${unblock_server_ip}" ] && unblock_server_ip="182.92.84.98"
|
||||
unblock_server_http_port="30000"
|
||||
unblock_server_https_port="30001"
|
||||
elif [ "${select_server}" = "tencent_shanghai_golang" ]; then
|
||||
unblock_server_addr="cdn-shanghai.service.project-openwrt.eu.org"
|
||||
unblock_server_ip="$(ping "cdn-shanghai.service.project-openwrt.eu.org" -c 1 | sed '1{s/[^(]*(//;s/).*//;q}')"
|
||||
[ -z "${unblock_server_ip}" ] && unblock_server_ip="122.51.88.18"
|
||||
unblock_server_http_port="30002"
|
||||
unblock_server_https_port="30003"
|
||||
fi
|
||||
|
||||
set_ipset(){
|
||||
if [ "${set_type}" = "start" ]; then
|
||||
mkdir -p "/tmp/dnsmasq.d"
|
||||
rm -f "/tmp/dnsmasq.d/dnsmasq-unblockneteasemusic-mini.conf"
|
||||
cat <<-EOF > "/tmp/dnsmasq.d/dnsmasq-unblockneteasemusic-mini.conf"
|
||||
ipset=/.music.163.com/neteasemusic
|
||||
ipset=/interface.music.163.com/neteasemusic
|
||||
ipset=/interface3.music.163.com/neteasemusic
|
||||
ipset=/apm.music.163.com/neteasemusic
|
||||
ipset=/apm3.music.163.com/neteasemusic
|
||||
ipset=/clientlog.music.163.com/neteasemusic
|
||||
ipset=/clientlog3.music.163.com/neteasemusic
|
||||
EOF
|
||||
/etc/init.d/dnsmasq restart >/dev/null 2>&1
|
||||
|
||||
if ! ipset list "neteasemusic" >/dev/null; then ipset create "neteasemusic" hash:ip; fi
|
||||
wget-ssl -t 5 -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 neteasemusic "$1}' |sh
|
||||
iptables -t nat -N "unblock_netease_music"
|
||||
iptables -t nat -A "unblock_netease_music" -d 0.0.0.0/8 -j RETURN
|
||||
iptables -t nat -A "unblock_netease_music" -d 10.0.0.0/8 -j RETURN
|
||||
iptables -t nat -A "unblock_netease_music" -d 127.0.0.0/8 -j RETURN
|
||||
iptables -t nat -A "unblock_netease_music" -d 169.254.0.0/16 -j RETURN
|
||||
iptables -t nat -A "unblock_netease_music" -d 172.16.0.0/12 -j RETURN
|
||||
iptables -t nat -A "unblock_netease_music" -d 192.168.0.0/16 -j RETURN
|
||||
iptables -t nat -A "unblock_netease_music" -d 224.0.0.0/4 -j RETURN
|
||||
iptables -t nat -A "unblock_netease_music" -d 240.0.0.0/4 -j RETURN
|
||||
iptables -t nat -A "unblock_netease_music" -p tcp --dport 80 -j DNAT --to ${unblock_server_ip}:${unblock_server_http_port}
|
||||
iptables -t nat -A "unblock_netease_music" -p tcp --dport 443 -j DNAT --to ${unblock_server_ip}:${unblock_server_https_port}
|
||||
[ -z "$(iptables -t nat -L "ADBYBY" | grep "UnblockMusic" | sed 's/\/.*//')" ] && iptables -t nat -I "ADBYBY" -m set --match-set "neteasemusic" dst -j RETURN -m comment --comment "AD for UnblockMusic"
|
||||
[ -z "$(iptables -t nat -L "KOOLPROXY" | grep "UnblockMusic" | sed 's/\/.*//')" ] && iptables -t nat -I "KOOLPROXY" -m set --match-set "neteasemusic" dst -j RETURN -m comment --comment "KP for UnblockMusic"
|
||||
iptables -t nat -I "PREROUTING" -p tcp -m set --match-set "neteasemusic" dst -j "unblock_netease_music"
|
||||
|
||||
mkdir -p /var/etc
|
||||
echo -e "/etc/init.d/luci-app-unblockneteasemusic-mini restart" > "/var/etc/unblockneteasemusic-mini.include"
|
||||
elif [ "${set_type}" = "stop" ]; then
|
||||
iptables -t nat -D "ADBYBY" -m set --match-set "neteasemusic" dst -j RETURN -m comment --comment "AD for UnblockMusic"
|
||||
iptables -t nat -D "KOOLPROXY" -m set --match-set "neteasemusic" dst -j RETURN -m comment --comment "KP for UnblockMusic"
|
||||
iptables -t nat -D "PREROUTING" -p tcp -m set --match-set "neteasemusic" dst -j "unblock_netease_music"
|
||||
iptables -t nat -F "unblock_netease_music"
|
||||
iptables -t nat -X "unblock_netease_music"
|
||||
|
||||
echo "" > "/var/etc/unblockneteasemusic-mini.include"
|
||||
rm -f "/tmp/dnsmasq.d/dnsmasq-unblockneteasemusic-mini.conf"
|
||||
/etc/init.d/dnsmasq reload >/dev/null 2>&1
|
||||
fi
|
||||
}
|
||||
|
||||
start()
|
||||
{
|
||||
stop
|
||||
|
||||
[ "${enable}" -ne "1" ] && exit 0
|
||||
set_type="start"
|
||||
set_ipset >/dev/null 2>&1
|
||||
}
|
||||
|
||||
stop()
|
||||
{
|
||||
set_type="stop"
|
||||
set_ipset >/dev/null 2>&1
|
||||
}
|
@ -0,0 +1,17 @@
|
||||
#!/bin/sh
|
||||
|
||||
uci -q batch <<-EOF >/dev/null
|
||||
delete ucitrack.@unblockneteasemusic-mini[-1]
|
||||
add ucitrack unblockneteasemusic-mini
|
||||
set ucitrack.@unblockneteasemusic-mini[-1].init=unblockneteasemusic-mini
|
||||
commit ucitrack
|
||||
delete firewall.unblockneteasemusic_mini
|
||||
set firewall.unblockneteasemusic_mini=include
|
||||
set firewall.unblockneteasemusic_mini.type=script
|
||||
set firewall.unblockneteasemusic_mini.path=/var/etc/unblockneteasemusic-mini.include
|
||||
set firewall.unblockneteasemusic_mini.reload=1
|
||||
commit firewall
|
||||
EOF
|
||||
|
||||
rm -f /tmp/luci-indexcache
|
||||
exit 0
|
Loading…
Reference in New Issue
Block a user