1
0
mirror of https://github.com/kenzok8/small-package synced 2025-09-20 19:11:30 +08:00

update-12.20

This commit is contained in:
github-actions[bot]
2021-12-20 09:05:27 +08:00
parent 5865204e1c
commit 32956d3d87
15 changed files with 8744 additions and 8510 deletions

View File

@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
PKG_ARCH_LINKEASE:=$(ARCH)
PKG_NAME:=linkease
PKG_VERSION:=0.3.66
PKG_VERSION:=0.5.1
PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-binary-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://fw.koolcenter.com/binary/LinkEase/LinuxStorage/
@ -56,6 +56,7 @@ endef
define Package/$(PKG_NAME)/install
$(INSTALL_DIR) $(1)/usr/sbin/linkease-plugins $(1)/etc/config $(1)/etc/init.d $(1)/etc/uci-defaults
$(INSTALL_BIN) $(PKG_BUILD_DIR)/linkease.$(PKG_ARCH_LINKEASE) $(1)/usr/sbin/linkease
$(INSTALL_BIN) $(PKG_BUILD_DIR)/heif-converter.$(PKG_ARCH_LINKEASE) $(1)/usr/sbin/heif-converter
$(INSTALL_BIN) ./files/aria2.sh $(1)/usr/sbin/linkease-plugins/aria2.sh
$(INSTALL_CONF) ./files/linkease.config $(1)/etc/config/linkease
$(INSTALL_BIN) ./files/linkease.init $(1)/etc/init.d/linkease

View File

@ -1,4 +1,4 @@
# Copyright (C) 2018-2020 Lienol <lawlienol@gmail.com>
# Copyright (C) 2018-2022 Lienol <lawlienol@gmail.com>
#
# This is free software, licensed under the GNU General Public License v3.
#
@ -6,10 +6,10 @@
include $(TOPDIR)/rules.mk
LUCI_TITLE:=LuCI support for KodExplorer
LUCI_DEPENDS:=+nginx-ssl +unzip +zoneinfo-asia +php7 +php7-fastcgi +php7-fpm +php7-mod-curl +php7-mod-dom +php7-mod-gd +php7-mod-iconv +php7-mod-json +php7-mod-mbstring +php7-mod-opcache +php7-mod-session +php7-mod-zip +php7-mod-sqlite3 +php7-mod-pdo +php7-mod-pdo-sqlite +php7-mod-pdo-mysql
LUCI_DEPENDS:=+nginx-ssl +unzip +zoneinfo-asia +php8 +php8-fastcgi +php8-fpm +php8-mod-curl +php8-mod-dom +php8-mod-gd +php8-mod-iconv +php8-mod-mbstring +php8-mod-opcache +php8-mod-session +php8-mod-zip +php8-mod-sqlite3 +php8-mod-pdo +php8-mod-pdo-sqlite +php8-mod-pdo-mysql
LUCI_PKGARCH:=all
PKG_RELEASE:=18
PKG_DATE:=20200729
PKG_VERSION:=20211215
PKG_RELEASE:=1
include $(TOPDIR)/feeds/luci/luci.mk

View File

@ -1,4 +1,4 @@
-- Copyright 2018-2020 Lienol <lawlienol@gmail.com>
-- Copyright 2018-2022 Lienol <lawlienol@gmail.com>
module("luci.controller.kodexplorer", package.seeall)
local http = require "luci.http"

View File

@ -1,10 +1,11 @@
config global
option port '8081'
option memory_limit '64M'
option upload_max_filesize '64M'
option project_directory '/mnt/sda1/kodexplorer'
list open_basedir '/'
option https '0'
option project_directory '/tmp/kodexplorer'
option ipv6 '0'
option memory_limit '64M'
option enable '0'
option ipv6 '1'

View File

@ -1,5 +1,5 @@
#!/bin/sh /etc/rc.common
# Copyright (C) 2018-2020 Lienol <lawlienol@gmail.com>
# Copyright (C) 2018-2022 Lienol <lawlienol@gmail.com>
START=99
@ -62,7 +62,7 @@ start() {
open_basedir=$(config_t_get global open_basedir "/")
open_basedir=$(echo $open_basedir | sed "s/ /:/g")
gen_php_config
/usr/bin/php-fpm -c $PHP_CONFIG -R -y $PHP_FPM_CONFIG
/usr/bin/php8-fpm -c $PHP_CONFIG -R -y $PHP_FPM_CONFIG
gen_nginx_config $NGINX_CONFIG
/usr/sbin/nginx -c $NGINX_CONFIG >/dev/null 2>&1 &
}

View File

@ -20,7 +20,7 @@ http {
server_name localhost;
root |project_directory|;
index index.html index.htm index.php;
location ~ \.php(.*) {
location ~ \.php(.*)$ {
fastcgi_pass unix:|SOCK|; # 通过 Unix 套接字执行 PHP
fastcgi_index index.php;
fastcgi_split_path_info ^(.+\.php)(.*)$;

View File

@ -9,7 +9,7 @@ implicit_flush = Off
unserialize_callback_func =
serialize_precision = 100
open_basedir = /tmp:|project_directory|:|open_basedir|
open_basedir = /tmp:|project_directory|:|open_basedir|:/usr/bin/
disable_functions =
disable_classes =
expose_php = On
@ -21,7 +21,6 @@ error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT
display_errors = On
display_startup_errors = Off
log_errors = Off
log_errors_max_len = 1024
ignore_repeated_errors = Off
ignore_repeated_source = Off
report_memleaks = On
@ -42,7 +41,7 @@ default_mimetype = "text/html"
;doc_root = "/www"
user_dir =
extension_dir = "/usr/lib/php"
extension_dir = "/usr/lib/php8"
enable_dl = On
cgi.fix_pathinfo=1

File diff suppressed because one or more lines are too long

View File

@ -636,6 +636,7 @@ adcash.com
adcast.deviantart.com
adcdn.goo.ne.jp
adcdn.hpplay.cn
adcel.co
adcell.de
adcenter.net
adcentriconline.com
@ -1453,6 +1454,7 @@ adslvseed.qq.com
adsmart.com
adsmart.net
adsmart.yicha.cn
adsmetadata.startappservice.com
adsmind.gdtimg.com
adsmind.ugdtimg.com
adsmogo.com
@ -1751,7 +1753,6 @@ ambitiousagreement.com
amdc.m.taobao.com
americash.com
amiok.org
amplitude.com
amps.yoyi.com.cn
amung.us
an.wikigifth.com
@ -1882,6 +1883,7 @@ api.doumob.com
api.dsp.madserving.com
api.dsp.yhd.com
api.e.mi.com
api.eu.amplitude.com
api.exc.mob.com
api.flurry.com
api.gi.igexin.com
@ -1893,6 +1895,7 @@ api.intensifier.de
api.itaoxiaoshuo.com
api.jsfc8.cn
api.kameleoon.com
api.lab.amplitude.com
api.leancloud.cn
api.mini.wps.cn
api.mlinks.co
@ -1929,6 +1932,7 @@ api.youxiaoad.com
api.zol.com
api0.tuisong.baidu.com
api1.tuisong.baidu.com
api2.amplitude.com
api2.analysys.cn
api2.play.cn
api2.tuisong.baidu.com
@ -1952,6 +1956,7 @@ apnmedia.ask.com
apns.ios.ijinshan.com
apollo.caixin.com
apolloprogram.io
app-analytics-v2.snapchat.com
app-analytics.snapchat.com
app-facade.youmi.net
app-g.39.net
@ -2254,6 +2259,7 @@ barnesandnoble.bfast.com
bartender.cc
base.api.my7v.com
basebanner.com
basketballbelieve.com
baskettexture.com
bat.bing.com
batbuilding.com
@ -2931,6 +2937,7 @@ cloudcdn.dopa.com
cloudcdn.dopa.com.cn
cloudcdn.yousee.com
cloudcoins.biz
cloudflare-dacdn.visualwebsiteoptimizer.com
cloudflareinsights.com
cloudservice12.kingsoft-office-service.com
cloudservice13.kingsoft-office-service.com
@ -3598,6 +3605,7 @@ duomai.com
duomeng.cn
duomilm.com
dup.baidustatic.com
dustywave.com
dvb.pandora.xiaomi.com
dvsend.china.com
dvser.china.com
@ -3793,6 +3801,7 @@ engage.dnsfilter.com
engage.webshrinker.com
engage.windows.com
engagebdr.com
engageya.com
engine.adzerk.net
engine.espace.netavenir.com
engine.lvehaisen.com
@ -3864,6 +3873,7 @@ everestads.net
everesttech.net
evergage.com
eversales.space
evidon.com
evyy.net
ewg9465443.y4j32.cn
ex.mobmore.com
@ -4379,7 +4389,6 @@ hit.webcentre.lycos.co.uk
hitbox.com
hitcounters.miarroba.com
hitfarm.com
hitiz.com
hitlist.ru
hitlog2.chosun.com
hitlounge.com
@ -4759,6 +4768,7 @@ info.static.startappservice.com
info.stockstar.com
info.wps.cn
info.yitsoftware.com
infoevent.startappservice.com
infolinks.com
information.com
ingameads.gameloft.com
@ -5139,7 +5149,6 @@ leadboltads.net
leadclick.com
leadingedgecash.com
leadplace.fr
leady.com
leadzupc.com
leaplunchroom.com
ledou.dl.uu.cc
@ -5598,6 +5607,7 @@ marketing.etouch.cn
marketing.hearstmagazines.nl
marketing.net.brillen.de
marketing.net.home24.de
marketing.net.occhiali24.it
marketing.nyi.net
marketing.osijek031.com
marketing.zhidian3g.cn
@ -5682,6 +5692,7 @@ media6degrees.com
mediaarea.eu
mediabridge.cc
mediacharger.com
mediafuse.com
mediageneral.com
mediaiqdigital.com
mediamath.com
@ -5937,6 +5948,7 @@ myads.company
myads.net
myads.telkomsel.com
myaffiliateprogram.com
mybbc-analytics.files.bbci.co.uk
mybestmv.com
mybetterdl.com
mybloglog.com
@ -6015,6 +6027,8 @@ netclickstats.com
netcommunities.com
netdirect.nl
netincap.com
netmera-web.com
netmera.com
netmng.com
netpool.netbookia.net
netshelter.net
@ -6825,6 +6839,7 @@ r3.visualwebsiteoptimizer.com
ra.gtimg.com
rabbit.meitustat.com
rabbit.tg.meitu.com
rabbitrifle.com
rabc1.iteye.com
rabc2.iteye.com
rad.reporo.net
@ -7691,6 +7706,7 @@ spcnv.i-mobile.co.jp
spdeliver.i-mobile.co.jp
spdmg-backend.i-mobile.co.jp
spdmg.i-mobile.co.jp
speakol.com
specially4u.net
specificmedia.co.uk
specificpop.com
@ -8098,6 +8114,7 @@ t.irtyd.com
t.iz55.com
t.ksrong.com
t.l.qq.com
t.leady.com
t.news.browns-restaurants.co.uk
t.pzclw.cn
t.qiuqiuqipai.com
@ -8385,6 +8402,7 @@ track.hexcan.com
track.hot-mob.com
track.hujiang.com
track.madserving.com
track.mailalert.io
track.mailerlite.com
track.mediav.com
track.ra.icast.cn

View File

@ -85,9 +85,7 @@ o.rmempty = true
o.description = font_red..bold_on..translate("Note: There is A Risk of Privacy Leakage in Online Convert")..bold_off..font_off
o:depends("sub_convert", "1")
o:value("https://api.dler.io/sub", translate("api.dler.io")..translate("(Default)"))
o:value("https://subcon.dlj.tf/sub", translate("subcon.dlj.tf")..translate("(Default)"))
o:value("https://subconverter-web.now.sh/sub", translate("subconverter-web.now.sh"))
o:value("https://subconverter.herokuapp.com/sub", translate("subconverter.herokuapp.com"))
o:value("https://subconverter.herokuapp.com/sub", translate("subconverter.herokuapp.com")..translate("(Default)"))
o:value("https://sub.id9.cc/sub", translate("sub.id9.cc"))
o:value("https://api.wcc.best/sub", translate("api.wcc.best"))
o.default = "https://api.dler.io/sub"

View File

@ -491,16 +491,6 @@ o.placeholder = "Disney|迪士尼"
o.description = translate("It Will Be Searched According To The Keywords When Auto Search Group Fails")
o:depends("stream_auto_select_disney", "1")
o = s:taboption("stream_enhance", Flag, "stream_auto_select_hbo", translate("HBO"))
o.default=0
o:depends("stream_auto_select", "1")
o = s:taboption("stream_enhance", Value, "stream_auto_select_group_key_hbo", translate("HBO Group Filter Keywords"))
o.default = "HBO"
o.placeholder = "HBO"
o.description = translate("It Will Be Searched According To The Keywords When Auto Search Group Fails")
o:depends("stream_auto_select_hbo", "1")
o = s:taboption("stream_enhance", Flag, "stream_auto_select_ytb", translate("YouTube Premium"))
o.default=0
o:depends("stream_auto_select", "1")
@ -511,6 +501,56 @@ o.placeholder = "YouTube|油管"
o.description = translate("It Will Be Searched According To The Keywords When Auto Search Group Fails")
o:depends("stream_auto_select_ytb", "1")
o = s:taboption("stream_enhance", Flag, "stream_auto_select_prime_video", translate("Amazon Prime Video"))
o.default=0
o:depends("stream_auto_select", "1")
o = s:taboption("stream_enhance", Value, "stream_auto_select_group_key_prime_video", translate("Amazon Prime Video Group Filter Keywords"))
o.default = "Amazon|Prime Video"
o.placeholder = "Amazon|Prime Video"
o.description = translate("It Will Be Searched According To The Keywords When Auto Search Group Fails")
o:depends("stream_auto_select_prime_video", "1")
o = s:taboption("stream_enhance", Flag, "stream_auto_select_hbo_now", translate("HBO Now"))
o.default=0
o:depends("stream_auto_select", "1")
o = s:taboption("stream_enhance", Value, "stream_auto_select_group_key_hbo_now", translate("HBO Now Group Filter Keywords"))
o.default = "HBO"
o.placeholder = "HBO"
o.description = translate("It Will Be Searched According To The Keywords When Auto Search Group Fails")
o:depends("stream_auto_select_hbo_now", "1")
o = s:taboption("stream_enhance", Flag, "stream_auto_select_hbo_max", translate("HBO Max"))
o.default=0
o:depends("stream_auto_select", "1")
o = s:taboption("stream_enhance", Value, "stream_auto_select_group_key_hbo_max", translate("HBO Max Group Filter Keywords"))
o.default = "HBO"
o.placeholder = "HBO"
o.description = translate("It Will Be Searched According To The Keywords When Auto Search Group Fails")
o:depends("stream_auto_select_hbo_max", "1")
o = s:taboption("stream_enhance", Flag, "stream_auto_select_hbo_go_asia", translate("HBO GO Aaia"))
o.default=0
o:depends("stream_auto_select", "1")
o = s:taboption("stream_enhance", Value, "stream_auto_select_group_key_hbo_go_asia", translate("HBO GO Aaia Group Filter Keywords"))
o.default = "HBO"
o.placeholder = "HBO"
o.description = translate("It Will Be Searched According To The Keywords When Auto Search Group Fails")
o:depends("stream_auto_select_hbo_go_asia", "1")
o = s:taboption("stream_enhance", Flag, "stream_auto_select_tvb_anywhere", translate("TVB Anywhere+"))
o.default=0
o:depends("stream_auto_select", "1")
o = s:taboption("stream_enhance", Value, "stream_auto_select_group_key_tvb_anywhere", translate("TVB Anywhere+ Group Filter Keywords"))
o.default = "TVB"
o.placeholder = "TVB"
o.description = translate("It Will Be Searched According To The Keywords When Auto Search Group Fails")
o:depends("stream_auto_select_tvb_anywhere", "1")
---- update Settings
o = s:taboption("rules_update", Flag, "other_rule_auto_update", translate("Auto Update"))
o.description = font_red..bold_on..translate("Auto Update Other Rules")..bold_off..font_off

View File

@ -2480,38 +2480,74 @@ msgstr "Netflix 策略组筛选关键字"
msgid "Disney Plus Group Filter Keywords"
msgstr "Disney Plus 策略组筛选关键字"
msgid "HBO Group Filter Keywords"
msgstr "HBO 策略组筛选关键字"
msgid "HBO Now Group Filter Keywords"
msgstr "HBO Now 策略组筛选关键字"
msgid "HBO Max Group Filter Keywords"
msgstr "HBO Max 策略组筛选关键字"
msgid "HBO GO Aaia Group Filter Keywords"
msgstr "HBO GO Aaia 策略组筛选关键字"
msgid "YouTube Premium Group Filter Keywords"
msgstr "YouTube Premium 策略组筛选关键字"
msgid "TVB Anywhere+ Group Filter Keywords"
msgstr "TVB Anywhere+ 策略组筛选关键字"
msgid "Amazon Prime Video Group Filter Keywords"
msgstr "Amazon Prime Video 策略组筛选关键字"
msgid "Tip: Start Auto Select Proxy For Netflix Unlock..."
msgstr "提示开始自动选择检测Netflix 解锁节点..."
msgid "Tip: Start Auto Select Proxy For Disney Plus Unlock..."
msgstr "提示开始自动选择检测Disney Plus 解锁节点..."
msgid "Tip: Start Auto Select Proxy For HBO Unlock..."
msgstr "提示开始自动选择检测HBO 解锁节点..."
msgid "Tip: Start Auto Select Proxy For HBO Now Unlock..."
msgstr "提示开始自动选择检测HBO Now 解锁节点..."
msgid "Tip: Start Auto Select Proxy For HBO Max Unlock..."
msgstr "提示开始自动选择检测HBO Max 解锁节点..."
msgid "Tip: Start Auto Select Proxy For HBO GO Aaia Unlock..."
msgstr "提示开始自动选择检测HBO GO Aaia 解锁节点..."
msgid "Tip: Start Auto Select Proxy For YouTube Premium Unlock..."
msgstr "提示开始自动选择检测YouTube Premium 解锁节点..."
msgid "Tip: Start Auto Select Proxy For TVB Anywhere+ Unlock..."
msgstr "提示开始自动选择检测TVB Anywhere+ 解锁节点..."
msgid "Tip: Start Auto Select Proxy For Amazon Prime Video Unlock..."
msgstr "提示开始自动选择检测Amazon Prime Video 解锁节点..."
msgid "Netflix Group:"
msgstr "Netflix 策略组:"
msgid "Disney Plus Group:"
msgstr "Disney Plus 策略组:"
msgid "HBO Group:"
msgstr "HBO 策略组:"
msgid "HBO Now Group:"
msgstr "HBO Now 策略组:"
msgid "HBO Max Group:"
msgstr "HBO Max 策略组:"
msgid "HBO GO Aaia Group:"
msgstr "HBO GO Aaia 策略组:"
msgid "TVB Anywhere+ Group:"
msgstr "TVB Anywhere+ 策略组:"
msgid "Amazon Prime Video Group:"
msgstr "Amazon Prime Video 策略组:"
msgid "YouTube Premium Group:"
msgstr "YouTube Premium 策略组:"
msgid "full support"
msgstr "完整解锁"
msgid "full support."
msgstr "完整解锁"
msgid "full support, area:"
msgstr "完整解锁,区域:"

View File

@ -53,7 +53,7 @@ if [ -n "$subscribe_url_param" ]; then
else
curl -sL --connect-timeout 10 --retry 2 https://api.dler.io/sub"$subscribe_url_param" -o "$CFG_FILE" >/dev/null 2>&1
if [ "$?" -ne 0 ]; then
curl -sL --connect-timeout 10 --retry 2 https://subcon.dlj.tf/sub"$subscribe_url_param" -o "$CFG_FILE" >/dev/null 2>&1
curl -sL --connect-timeout 10 --retry 2 https://subconverter.herokuapp.com/sub"$subscribe_url_param" -o "$CFG_FILE" >/dev/null 2>&1
fi
fi
else

View File

@ -19,7 +19,7 @@ if enable == 0 then os.exit(0) end
if not type then os.exit(0) end
function unlock_auto_select()
local key_group, region, now, proxy, group_match, proxy_default, auto_get_group, info, group_now
local key_group, region, now, proxy, group_match, proxy_default, auto_get_group, info, group_now, con
local port = uci:get("openclash", "config", "cn_port")
local passwd = uci:get("openclash", "config", "dashboard_password") or ""
local ip = luci.sys.exec("uci -q get network.lan.ipaddr |awk -F '/' '{print $1}' 2>/dev/null |tr -d '\n'")
@ -28,7 +28,7 @@ function unlock_auto_select()
local tested_proxy = {}
local gorup_i18 = "Group:"
local no_group_find = "failed to search based on keywords and automatically obtain the group, please confirm the validity of the keywords!"
local hbo_full_support = "full support"
local full_support_no_area = "full support."
local full_support = "full support, area:"
local only_original = "only support homemade!"
local no_unlock = "not support unlock!"
@ -54,11 +54,7 @@ function unlock_auto_select()
info = luci.sys.exec(string.format('curl -sL -m 3 --retry 2 -H "Content-Type: application/json" -H "Authorization: Bearer %s" -XGET http://%s:%s/proxies', passwd, ip, port))
if info then
info = json.parse(info)
if not info then os.exit(0) end
end
if not info.proxies then
os.exit(0)
if not info or not info.proxies then os.exit(0) end
end
--auto get group
@ -66,13 +62,21 @@ function unlock_auto_select()
luci.sys.call('curl -sL --limit-rate 1k https://www.netflix.com >/dev/null 2>&1 &')
elseif type == "Disney Plus" then
luci.sys.call('curl -sL --limit-rate 1k https://www.disneyplus.com >/dev/null 2>&1 &')
elseif type == "HBO" then
elseif type == "HBO Now" then
luci.sys.call('curl -sL --limit-rate 1k https://play.hbonow.com >/dev/null 2>&1 &')
elseif type == "HBO Max" then
luci.sys.call('curl -sL --limit-rate 1k https://www.hbomax.com >/dev/null 2>&1 &')
elseif type == "HBO GO Aaia" then
luci.sys.call('curl -sL --limit-rate 1k https://www.hbogoasia.com >/dev/null 2>&1 &')
elseif type == "YouTube Premium" then
luci.sys.call('curl -sL --limit-rate 1k https://m.youtube.com/premium >/dev/null 2>&1 &')
elseif type == "TVB Anywhere+" then
luci.sys.call('curl -sL --limit-rate 1k https://uapisfm.tvbanywhere.com.sg >/dev/null 2>&1 &')
elseif type == "Amazon Prime Video" then
luci.sys.call('curl -sL --limit-rate 1k https://www.primevideo.com >/dev/null 2>&1 &')
end
os.execute("sleep 1")
local con = luci.sys.exec(string.format('curl -sL -m 3 -H "Content-Type: application/json" -H "Authorization: Bearer %s" -XGET http://%s:%s/connections', passwd, ip, port))
con = luci.sys.exec(string.format('curl -sL -m 3 --retry 2 -H "Content-Type: application/json" -H "Authorization: Bearer %s" -XGET http://%s:%s/connections', passwd, ip, port))
if con then
con = json.parse(con)
end
@ -88,16 +92,36 @@ function unlock_auto_select()
auto_get_group = con.connections[i].chains[#(con.connections[i].chains)]
break
end
elseif type == "HBO" then
elseif type == "HBO Now" then
if string.match(con.connections[i].metadata.host, "play%.hbonow%.com") then
auto_get_group = con.connections[i].chains[#(con.connections[i].chains)]
break
end
elseif type == "HBO Max" then
if string.match(con.connections[i].metadata.host, "www%.hbomax%.com") then
auto_get_group = con.connections[i].chains[#(con.connections[i].chains)]
break
end
elseif type == "HBO GO Aaia" then
if string.match(con.connections[i].metadata.host, "www%.hbogoasia%.com") then
auto_get_group = con.connections[i].chains[#(con.connections[i].chains)]
break
end
elseif type == "YouTube Premium" then
if string.match(con.connections[i].metadata.host, "m%.youtube%.com") then
auto_get_group = con.connections[i].chains[#(con.connections[i].chains)]
break
end
elseif type == "TVB Anywhere+" then
if string.match(con.connections[i].metadata.host, "uapisfm%.tvbanywhere%.com%.sg") then
auto_get_group = con.connections[i].chains[#(con.connections[i].chains)]
break
end
elseif type == "Amazon Prime Video" then
if string.match(con.connections[i].metadata.host, "www%.primevideo%.com") then
auto_get_group = con.connections[i].chains[#(con.connections[i].chains)]
break
end
end
end
end
@ -107,10 +131,18 @@ function unlock_auto_select()
key_group = uci:get("openclash", "config", "stream_auto_select_group_key_netflix") or "netflix|奈飞"
elseif type == "Disney Plus" then
key_group = uci:get("openclash", "config", "stream_auto_select_group_key_disney") or "disney|迪士尼"
elseif type == "HBO" then
key_group = uci:get("openclash", "config", "stream_auto_select_group_key_hbo") or "hbo"
elseif type == "HBO Now" then
key_group = uci:get("openclash", "config", "stream_auto_select_group_key_hbo_now") or "hbo"
elseif type == "HBO Max" then
key_group = uci:get("openclash", "config", "stream_auto_select_group_key_hbo_max") or "hbo"
elseif type == "HBO GO Aaia" then
key_group = uci:get("openclash", "config", "stream_auto_select_group_key_hbo_go_asia") or "hbo"
elseif type == "YouTube Premium" then
key_group = uci:get("openclash", "config", "stream_auto_select_group_key_ytb") or "YouTobe|油管"
elseif type == "TVB Anywhere+" then
key_group = uci:get("openclash", "config", "stream_auto_select_group_key_tvb_anywhere") or "tvb"
elseif type == "Amazon Prime Video" then
key_group = uci:get("openclash", "config", "stream_auto_select_group_key_prime_video") or "Prime Video|Amazon"
end
string.gsub(key_group, '[^%|]+', function(w) table.insert(key_groups, w) end)
if #key_groups == 0 then table.insert(key_groups, type) end
@ -150,10 +182,10 @@ function unlock_auto_select()
region = proxy_unlock_test()
end
if status == 2 then
if type ~= "HBO" then
if region then
print(now..full_support..""..region.."")
else
print(now..hbo_full_support)
print(now..full_support_no_area)
end
break
elseif status == 1 then
@ -204,11 +236,11 @@ function unlock_auto_select()
luci.sys.exec(string.format("curl -sL -m 3 --retry 2 -w %%{http_code} -o /dev/null -H 'Authorization: Bearer %s' -H 'Content-Type:application/json' -X PUT -d '{\"name\":\"%s\"}' http://%s:%s/proxies/%s", passwd, proxy, ip, port, urlencode(group_name)))
region = proxy_unlock_test()
if status == 2 then
if type ~= "HBO" then
if region then
print(now..full_support..""..region.."")
print(os.date("%Y-%m-%d %H:%M:%S").." "..type.." "..gorup_i18..""..value.name..""..select_success..""..proxy..""..area_i18..""..region.."")
else
print(now..hbo_full_support)
print(now..full_support_no_area)
print(os.date("%Y-%m-%d %H:%M:%S").." "..type.." "..gorup_i18..""..value.name..""..select_success..""..proxy.."")
end
elseif status == 1 then
@ -249,11 +281,11 @@ function unlock_auto_select()
now = os.date("%Y-%m-%d %H:%M:%S").." "..type.." "..gorup_i18..""..group_show..""..now_name..""
end
if status == 2 then
if type ~= "HBO" then
if region then
print(now..full_support..""..region.."")
print(os.date("%Y-%m-%d %H:%M:%S").." "..type.." "..gorup_i18..""..value.name..""..select_success..""..get_group_now(info, now_name)..""..area_i18..""..region.."")
else
print(now..hbo_full_support)
print(now..full_support_no_area)
print(os.date("%Y-%m-%d %H:%M:%S").." "..type.." "..gorup_i18..""..value.name..""..select_success..""..get_group_now(info, now_name).."")
end
elseif status == 1 then
@ -289,11 +321,11 @@ function unlock_auto_select()
else
region = proxy_unlock_test()
if status == 2 then
if type ~= "HBO" then
if region then
print(now..full_support..""..region.."")
print(os.date("%Y-%m-%d %H:%M:%S").." "..type.." "..gorup_i18..""..value.name..""..select_success..""..get_group_now(info, value.name)..""..area_i18..""..region.."")
else
print(now..hbo_full_support)
print(now..full_support_no_area)
print(os.date("%Y-%m-%d %H:%M:%S").." "..type.." "..gorup_i18..""..value.name..""..select_success..""..get_group_now(info, value.name).."")
end
break
@ -325,10 +357,18 @@ function proxy_unlock_test()
region = netflix_unlock_test()
elseif type == "Disney Plus" then
region = disney_unlock_test()
elseif type == "HBO" then
region = hbo_unlock_test()
elseif type == "HBO Now" then
region = hbo_now_unlock_test()
elseif type == "HBO Max" then
region = hbo_max_unlock_test()
elseif type == "HBO GO Aaia" then
region = hbo_go_asia_unlock_test()
elseif type == "YouTube Premium" then
region = ytb_unlock_test()
elseif type == "TVB Anywhere+" then
region = tvb_anywhere_unlock_test()
elseif type == "Amazon Prime Video" then
region = prime_video_unlock_test()
end
return region
end
@ -464,7 +504,7 @@ function netflix_unlock_test()
status = 0
local url = "https://www.netflix.com/title/"..filmId
local headers = "User-Agent: "..UA
local info = luci.sys.exec(string.format('curl -sLI -m 10 --retry 2 -o /dev/null -w %%{json} -H "Content-Type: application/json" -H "%s" -XGET %s', headers, url))
local info = luci.sys.exec(string.format('curl -sLI -m 3 --retry 2 -o /dev/null -w %%{json} -H "Content-Type: application/json" -H "%s" -XGET %s', headers, url))
local result = {}
local region
if info then
@ -476,11 +516,12 @@ function netflix_unlock_test()
string.gsub(info.url_effective, '[^/]+', function(w) table.insert(result, w) end)
region = string.upper(string.match(result[3], "^%a+"))
if region == "TITLE" then region = "US" end
return region
elseif info.http_code == 404 then
status = 1
end
end
return region or "Unknow"
return
end
function disney_unlock_test()
@ -489,63 +530,104 @@ function disney_unlock_test()
local url2 = "https://www.disneyplus.com"
local headers = '-H "Accept-Language: en" -H "authorization: Bearer ZGlzbmV5JmJyb3dzZXImMS4wLjA.Cu56AgSfBTDag5NiRA81oLHkDZfu5L3CKadnefEAY84" -H "Content-Type: application/x-www-form-urlencoded"'
local auth = '"grant_type=urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Atoken-exchange&latitude=0&longitude=0&platform=browser&subject_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJiNDAzMjU0NS0yYmE2LTRiZGMtOGFlOS04ZWI3YTY2NzBjMTIiLCJhdWQiOiJ1cm46YmFtdGVjaDpzZXJ2aWNlOnRva2VuIiwibmJmIjoxNjIyNjM3OTE2LCJpc3MiOiJ1cm46YmFtdGVjaDpzZXJ2aWNlOmRldmljZSIsImV4cCI6MjQ4NjYzNzkxNiwiaWF0IjoxNjIyNjM3OTE2LCJqdGkiOiI0ZDUzMTIxMS0zMDJmLTQyNDctOWQ0ZC1lNDQ3MTFmMzNlZjkifQ.g-QUcXNzMJ8DwC9JqZbbkYUSKkB1p4JGW77OON5IwNUcTGTNRLyVIiR8mO6HFyShovsR38HRQGVa51b15iAmXg&subject_token_type=urn%3Abamtech%3Aparams%3Aoauth%3Atoken-type%3Adevice"'
local httpcode = luci.sys.exec(string.format("curl -sL -m 10 --retry 2 -o /dev/null -w %%{http_code} %s -H 'User-Agent: %s' -d %s -XPOST %s", headers, UA, auth, url))
local httpcode = luci.sys.exec(string.format("curl -sL -m 3 --retry 2 -o /dev/null -w %%{http_code} %s -H 'User-Agent: %s' -d %s -XPOST %s", headers, UA, auth, url))
local region
if tonumber(httpcode) == 200 then
local url_effective = luci.sys.exec(string.format("curl -sL -m 10 --retry 2 -o /dev/null -w %%{url_effective} -H 'Content-Type: application/json' -H 'User-Agent: %s' %s", UA, url2))
status = 1
local url_effective = luci.sys.exec(string.format("curl -sL -m 3 --retry 2 -o /dev/null -w %%{url_effective} -H 'Content-Type: application/json' -H 'User-Agent: %s' %s", UA, url2))
if url_effective == "https://disneyplus.disney.co.jp/" then
status = 2
region = "JP"
return region
elseif string.find(url_effective,"hotstar") then
return "Unknow"
return
end
local region = luci.sys.exec(string.format("curl -sL -m 10 --retry 2 -H 'Content-Type: application/json' -H 'User-Agent: %s' %s |grep 'Region: ' |awk '{print $2}' |tr -d '\n'", UA, url2))
local region = luci.sys.exec(string.format("curl -sL -m 3 --retry 2 -H 'Content-Type: application/json' -H 'User-Agent: %s' %s |grep 'Region: ' |awk '{print $2}' |tr -d '\n'", UA, url2))
if region and region ~= "" then
status = 2
return region
else
status = 1
return "Unknow"
end
else
return "Unknow"
end
return
end
function hbo_unlock_test()
function hbo_now_unlock_test()
status = 0
local url = "https://play.hbonow.com/"
local data = luci.sys.exec(string.format("curl -sL -m 10 --retry 2 -o /dev/null -w %%{json} -H 'Content-Type: application/json' -H 'User-Agent: %s' %s", UA, url))
local data = luci.sys.exec(string.format("curl -sL -m 3 --retry 2 -o /dev/null -w %%{json} -H 'Content-Type: application/json' -H 'User-Agent: %s' %s", UA, url))
if data then
data = json.parse(data)
end
if data then
if data.http_code == 200 then
status = 1
if string.find(data.url_effective,"play%.hbonow%.com") then
status = 2
return "Unknow"
else
status = 1
return "Unknow"
end
else
return "Unknow"
end
else
return "Unknow"
end
return
end
function hbo_max_unlock_test()
status = 0
local url = "https://www.hbomax.com/"
local data = luci.sys.exec(string.format("curl -sL -m 3 --retry 2 -o /dev/null -w %%{json} -H 'Content-Type: application/json' -H 'User-Agent: %s' %s", UA, url))
local result = {}
local region
if data then
data = json.parse(data)
end
if data then
if data.http_code == 200 then
status = 1
if not string.find(data.url_effective,"geo-availability") then
status = 2
string.gsub(data.url_effective, '[^/]+', function(w) table.insert(result, w) end)
if result[3] then
region = string.upper(string.match(result[3], "^%a+"))
if region then
return region
end
end
end
end
end
return
end
function hbo_go_asia_unlock_test()
status = 0
local url = "https://api2.hbogoasia.com/v1/geog?lang=undefined&version=0&bundleId=www.hbogoasia.com"
local httpcode = luci.sys.exec(string.format("curl -sL -m 3 --retry 2 -o /dev/null -w %%{http_code} -H 'Content-Type: application/json' -H 'User-Agent: %s' %s", UA, url))
if tonumber(httpcode) == 200 then
status = 1
local data = luci.sys.exec(string.format("curl -sL -m 3 --retry 2 -H 'Content-Type: application/json' -H 'User-Agent: %s' %s", UA, url))
if data then
data = json.parse(data)
end
if data then
if data.territory then
status = 2
if data.country then
return string.upper(data.country)
end
end
end
end
return
end
function ytb_unlock_test()
status = 0
local url = "https://m.youtube.com/premium"
local httpcode = luci.sys.exec(string.format("curl -sL -m 3 -o /dev/null -w %%{http_code} -H 'Accept-Language: en' -H 'Content-Type: application/json' -H 'User-Agent: %s' %s", UA, url))
local httpcode = luci.sys.exec(string.format("curl -sL -m 3 --retry 2 -o /dev/null -w %%{http_code} -H 'Accept-Language: en' -H 'Content-Type: application/json' -H 'User-Agent: %s' %s", UA, url))
local region
if tonumber(httpcode) == 200 then
local data = luci.sys.exec(string.format("curl -sL -m 3 -H 'Accept-Language: en' -H 'Content-Type: application/json' -H 'User-Agent: %s' %s", UA, url))
status = 1
local data = luci.sys.exec(string.format("curl -sL -m 3 --retry 2 -H 'Accept-Language: en' -H 'Content-Type: application/json' -H 'User-Agent: %s' %s", UA, url))
if string.find(data, "is not available in your country") then
status = 1
return "Unknow"
return
end
region = string.sub(string.match(data, "\"GL\":\"%a+\""), 7, -2)
if region then
@ -555,14 +637,51 @@ function ytb_unlock_test()
if not string.find(data,"www%.google%.cn") then
status = 2
return "US"
else
status = 1
return "Unknow"
end
end
else
return "Unknow"
end
return
end
function tvb_anywhere_unlock_test()
status = 0
local url = "https://uapisfm.tvbanywhere.com.sg/geoip/check/platform/android"
local httpcode = luci.sys.exec(string.format("curl -sL -m 3 --retry 2 -o /dev/null -w %%{http_code} -H 'Accept-Language: en' -H 'Content-Type: application/json' -H 'User-Agent: %s' %s", UA, url))
local region
if tonumber(httpcode) == 200 then
status = 1
local data = luci.sys.exec(string.format("curl -sL -m 3 --retry 2 -H 'Accept-Language: en' -H 'Content-Type: application/json' -H 'User-Agent: %s' %s", UA, url))
if data then
data = json.parse(data)
end
if data and data.allow_in_this_country then
status = 2
region = string.upper(data.country)
if region then
return region
end
end
end
return
end
function prime_video_unlock_test()
status = 0
local url = "https://www.primevideo.com"
local httpcode = luci.sys.exec(string.format("curl -sL -m 3 --retry 2 -o /dev/null -w %%{http_code} -H 'Accept-Language: en' -H 'Content-Type: application/json' -H 'User-Agent: %s' %s", UA, url))
local region
if tonumber(httpcode) == 200 then
status = 1
local data = luci.sys.exec(string.format("curl -sL -m 3 --retry 2 -H 'Accept-Language: en' -H 'Content-Type: application/json' -H 'User-Agent: %s' %s", UA, url))
if data then
region = string.sub(string.match(data, "\"currentTerritory\":\"%a+\""), 21, -2)
if region then
status = 2
return region
end
end
end
return
end
unlock_auto_select()

View File

@ -35,7 +35,11 @@ do
stream_auto_select_interval_now=$(uci -q get openclash.config.stream_auto_select_interval || echo 30)
stream_auto_select_netflix=$(uci -q get openclash.config.stream_auto_select_netflix || echo 0)
stream_auto_select_disney=$(uci -q get openclash.config.stream_auto_select_disney || echo 0)
stream_auto_select_hbo=$(uci -q get openclash.config.stream_auto_select_hbo || echo 0)
stream_auto_select_hbo_now=$(uci -q get openclash.config.stream_auto_select_hbo_now || echo 0)
stream_auto_select_hbo_max=$(uci -q get openclash.config.stream_auto_select_hbo_max || echo 0)
stream_auto_select_hbo_go_asia=$(uci -q get openclash.config.stream_auto_select_hbo_go_asia || echo 0)
stream_auto_select_tvb_anywhere=$(uci -q get openclash.config.stream_auto_select_tvb_anywhere || echo 0)
stream_auto_select_prime_video=$(uci -q get openclash.config.stream_auto_select_prime_video || echo 0)
stream_auto_select_ytb=$(uci -q get openclash.config.stream_auto_select_ytb || echo 0)
enable=$(uci -q get openclash.config.enable)
@ -145,14 +149,30 @@ fi
LOG_OUT "Tip: Start Auto Select Proxy For Disney Plus Unlock..."
/usr/share/openclash/openclash_streaming_unlock.lua "Disney Plus" >> $LOG_FILE
fi
if [ "$stream_auto_select_hbo" -eq 1 ]; then
LOG_OUT "Tip: Start Auto Select Proxy For HBO Unlock..."
/usr/share/openclash/openclash_streaming_unlock.lua "HBO" >> $LOG_FILE
fi
if [ "$stream_auto_select_ytb" -eq 1 ]; then
LOG_OUT "Tip: Start Auto Select Proxy For YouTube Premium Unlock..."
/usr/share/openclash/openclash_streaming_unlock.lua "YouTube Premium" >> $LOG_FILE
fi
if [ "$stream_auto_select_hbo_now" -eq 1 ]; then
LOG_OUT "Tip: Start Auto Select Proxy For HBO Now Unlock..."
/usr/share/openclash/openclash_streaming_unlock.lua "HBO Now" >> $LOG_FILE
fi
if [ "$stream_auto_select_hbo_max" -eq 1 ]; then
LOG_OUT "Tip: Start Auto Select Proxy For HBO Max Unlock..."
/usr/share/openclash/openclash_streaming_unlock.lua "HBO Max" >> $LOG_FILE
fi
if [ "$stream_auto_select_hbo_go_asia" -eq 1 ]; then
LOG_OUT "Tip: Start Auto Select Proxy For HBO GO Aaia Unlock..."
/usr/share/openclash/openclash_streaming_unlock.lua "HBO GO Aaia" >> $LOG_FILE
fi
if [ "$stream_auto_select_tvb_anywhere" -eq 1 ]; then
LOG_OUT "Tip: Start Auto Select Proxy For TVB Anywhere+ Unlock..."
/usr/share/openclash/openclash_streaming_unlock.lua "TVB Anywhere+" >> $LOG_FILE
fi
if [ "$stream_auto_select_prime_video" -eq 1 ]; then
LOG_OUT "Tip: Start Auto Select Proxy For Amazon Prime Video Unlock..."
/usr/share/openclash/openclash_streaming_unlock.lua "Amazon Prime Video" >> $LOG_FILE
fi
fi
fi
STREAM_AUTO_SELECT=$(expr "$STREAM_AUTO_SELECT" + 1)