luci-app-unblockneteasemusic-mini: add package

This commit is contained in:
CN_SZTL 2019-11-02 15:20:37 +08:00
parent 8570663df0
commit 0f6f432be5
No known key found for this signature in database
GPG Key ID: 6850B6345C862176
7 changed files with 194 additions and 0 deletions

View 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.0
PKG_RELEASE:=1
LUCI_TITLE:=LuCI support for UnblockNeteaseMusic
LUCI_DEPENDS:=+busybox +dnsmasq-full +ipset +iptables +wget
LUCI_PKGARCH:=all
PKG_MAINTAINER:=[CTCGFW]Project-OpenWrt
include $(TOPDIR)/feeds/luci/luci.mk
# call BuildPackage - OpenWrt buildroot signature

View File

@ -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"), _("解除网易云音乐播放限制"), 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

View File

@ -0,0 +1,21 @@
-- Created By [CTCGFW]Project-OpenWrt
-- https://github.com/project-openwrt
mp = Map("unblockneteasemusic-mini", translate("解除网易云音乐播放限制"))
mp.description = translate("原理:采用 [QQ/虾米/百度/酷狗/酷我/咕咪/JOOX] 等音源,替换网易云音乐 无版权/收费 歌曲链接<br/>由 [CTCGFW]Project-OpenWrt 提供服务器支持,来源: 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
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

View File

@ -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>

View File

@ -0,0 +1,3 @@
config unblockneteasemusic-mini
option enable '0'

View File

@ -0,0 +1,87 @@
#!/bin/sh /etc/rc.common
# Created By [CTCGFW]Project OpenWRT
# https://github.com/project-openwrt
START=99
STOP=10
enable="$(uci get unblockneteasemusic-mini.@unblockneteasemusic-mini[0].enable)"
unblock_server_addr="server-sh.unblockneteasemusic.router.ctcgfw.generalcdn.top"
unblock_server_ip="$(ping "server-sh.unblockneteasemusic.router.ctcgfw.generalcdn.top" -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"
set_ipset(){
if [ "${set_type}" = "start" ]; then
mkdir -p "/tmp/dnsmasq.d"
rm -f "/tmp/dnsmasq.d/dnsmasq-unblockneteasemusic.conf"
cat <<-EOF > "/tmp/dnsmasq.d/dnsmasq-unblockneteasemusic-mini.conf"
dhcp-option=252,http://${unblock_server_addr}:${unblock_server_http_port}/proxy.pac
ipset=/.music.163.com/music
ipset=/interface.music.163.com/music
ipset=/interface3.music.163.com/music
ipset=/apm.music.163.com/music
ipset=/apm3.music.163.com/music
EOF
/etc/init.d/dnsmasq restart >/dev/null 2>&1
if ! ipset list music >/dev/null; then ipset create music hash:ip; fi
wget -O- "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}' |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}
iptables -t nat -I PREROUTING -p tcp -m set --match-set music dst -j unblock_netease_music
mkdir -p /var/etc
cat <<-EOF >> "/var/etc/unblockneteasemusic-mini.include"
if ! ipset list music >/dev/null; then ipset create music hash:ip; fi
wget -O- "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}' |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}
iptables -t nat -I PREROUTING -p tcp -m set --match-set music dst -j unblock_netease_music
EOF
elif [ "${set_type}" = "stop" ]; then
iptables -t nat -D PREROUTING -p tcp -m set --match-set music dst -j unblock_netease_music
iptables -t nat -F unblock_netease_music
iptables -t nat -X unblock_netease_music
ipset destroy music
echo "" > "/var/etc/unblockneteasemusic-mini.include"
rm -f "/tmp/dnsmasq.d/dnsmasq-unblockneteasemusic-mini.conf"
/etc/init.d/dnsmasq restart >/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
}

View File

@ -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