From f0969be22f2856f38abbd575381dd2490ef86afd Mon Sep 17 00:00:00 2001 From: hjdhnx Date: Sun, 16 Oct 2022 14:17:44 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BA=86=E4=BF=A9=E8=87=AA?= =?UTF-8?q?=E5=BB=BA=E8=A7=A3=E6=9E=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jiexi/dyg.js | 13 +++++ jiexi/dyg.php | 48 +++++++++++++++++ jiexi/vip.js | 12 +++++ jiexi/vip.php | 52 +++++++++++++++++++ js/version.txt | 2 +- ...52\345\273\272\350\247\243\346\236\220.py" | 42 +++++++++++++++ readme.md | 1 + 7 files changed, 169 insertions(+), 1 deletion(-) create mode 100644 jiexi/dyg.js create mode 100644 jiexi/dyg.php create mode 100644 jiexi/vip.js create mode 100644 jiexi/vip.php create mode 100644 "py/php\350\207\252\345\273\272\350\247\243\346\236\220.py" diff --git a/jiexi/dyg.js b/jiexi/dyg.js new file mode 100644 index 0000000..b59b7b8 --- /dev/null +++ b/jiexi/dyg.js @@ -0,0 +1,13 @@ +let jxUrl = 'https://vip.lianfaka.com/vip/?url='; +fetch_params.headers.Referer = 'https://www.dy6g.com'; +// fetch_params.headers['User-Agent'] = 'Mozilla/5.0 (Linux; Android 6.0.1; OPPO R9s Plus Build/MMB29M; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/55.0.2883.91 Mobile Safari/537.36'; +fetch_params.headers['User-Agent'] = MOBILE_UA; +try { + let html = request(jxUrl+vipUrl); + log(html); + realUrl=html.match(/source src="(.*?)"/)[1]; + log('解析到真实播放地址:'+realUrl); +}catch (e) { + log('解析发生错误:'+e.message); + realUrl = vipUrl; +} \ No newline at end of file diff --git a/jiexi/dyg.php b/jiexi/dyg.php new file mode 100644 index 0000000..2f5d074 --- /dev/null +++ b/jiexi/dyg.php @@ -0,0 +1,48 @@ +$DATA = curl('https://vip.lianfaka.com/vip/?url='.$_REQUEST['url']); +preg_match('/source src="(.*?)"/',$DATA,$url); +if (empty($url[1])) { + $add['code'] = 404; + $add['msg'] = '解析失败'; + $add['from'] = 'Q:2579949378'; + $add['name'] = '蓝莓'; +} else { + $add['code'] = 200; + $add['msg'] = '解析成功'; + $add['from'] = 'Q:2579949378'; + $add['name'] = '蓝莓'; + $add['url'] = $url[1]; +} +echo json_encode($add,456); +function curl($url, $cookie = '') +{ + // 初始化cURL\n + $curl = curl_init();// 设置网址 + curl_setopt($curl, CURLOPT_URL, $url); + // 设置UA + $header[] = 'Referer: https://www.dy6g.com'; + $header[] = 'User-Agent: Mozilla/5.0 (Linux; Android 6.0.1; OPPO R9s Plus Build/MMB29M; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/55.0.2883.91 Mobile Safari/537.36'; + // 设置请求头 + curl_setopt($curl, CURLOPT_HTTPHEADER, $header); + // 设置POST数据 + // 允许执行的最长秒数 超时时间 + curl_setopt($curl, CURLOPT_TIMEOUT, 30); + // 过SSL验证证书 + curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); + curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); + // 将头部作为数据流输出 + curl_setopt($curl, CURLOPT_HEADER, false); + // 设置以变量形式存储返回数据 + curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); + // 请求并存储数据 + $return = curl_exec($curl); + // 分割头部和身体 + if (curl_getinfo($curl, CURLINFO_HTTP_CODE) == '200') { + $return_header_size = curl_getinfo($curl, CURLINFO_HEADER_SIZE); + $return_header = substr($return, 0, $return_header_size); + $return_data = substr($return, $return_header_size); + } + // 关闭cURL + curl_close($curl); + // 返回数据 + return $return; +} \ No newline at end of file diff --git a/jiexi/vip.js b/jiexi/vip.js new file mode 100644 index 0000000..8f7dbc3 --- /dev/null +++ b/jiexi/vip.js @@ -0,0 +1,12 @@ +let jxUrl = 'https://jx.80k.tv/jxplayer.php?v='; +fetch_params.headers.Referer = 'https://1080p.tv'; +fetch_params.headers['User-Agent'] = MOBILE_UA; +try { + let html = request(jxUrl+vipUrl); + log(html); + realUrl=html.match(/src="(h.*?)"/)[1]; + log('解析到真实播放地址:'+realUrl); +}catch (e) { + log('解析发生错误:'+e.message); + realUrl = vipUrl; +} \ No newline at end of file diff --git a/jiexi/vip.php b/jiexi/vip.php new file mode 100644 index 0000000..162a299 --- /dev/null +++ b/jiexi/vip.php @@ -0,0 +1,52 @@ +$DATA = curl('https://jx.80k.tv/jxplayer.php?v='.$_REQUEST['url']); + +preg_match('/src="(h.*?)"/',$DATA,$url); + +if (empty($url[1])) { + $add['code'] = 404; + $add['msg'] = '解析失败'; + $add['from'] = 'Q:2579949378'; + $add['name'] = '蓝莓'; +} else { + $add['code'] = 200; + $add['msg'] = '解析成功'; + $add['from'] = 'Q:2579949378'; + $add['name'] = '蓝莓'; + $add['url'] = $url[1]; +} +echo json_encode($add,456); + +function curl($url, $cookie = '') + { + // 初始化cURL + $curl = curl_init(); + // 设置网址 + curl_setopt($curl, CURLOPT_URL, $url); + // 设置UA + $header[] = 'Referer: https://1080p.tv'; + $header[] = 'User-Agent: Mozilla/5.0 (Linux; Android 6.0.1; OPPO R9s Plus Build/MMB29M; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/55.0.2883.91 Mobile Safari/537.36'; + // 设置请求头 + curl_setopt($curl, CURLOPT_HTTPHEADER, $header); + // 设置POST数据 + //允许执行的最长秒数 超时时间 + curl_setopt($curl, CURLOPT_TIMEOUT, 30); + // 过SSL验证证书 + curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); + curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); + // 将头部作为数据流输出 + curl_setopt($curl, CURLOPT_HEADER, false); + // 设置以变量形式存储返回数据 + curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); + // 请求并存储数据 + $return = curl_exec($curl); + // 分割头部和身体 + if (curl_getinfo($curl, CURLINFO_HTTP_CODE) == '200') { + $return_header_size = curl_getinfo($curl, CURLINFO_HEADER_SIZE); + $return_header = substr($return, 0, $return_header_size); + $return_data = substr($return, $return_header_size); + } + // 关闭cURL + curl_close($curl); + // 返回数据 + return $return; + } \ No newline at end of file diff --git a/js/version.txt b/js/version.txt index 4953086..3645b29 100644 --- a/js/version.txt +++ b/js/version.txt @@ -1 +1 @@ -3.9.8 \ No newline at end of file +3.9.8beta1 \ No newline at end of file diff --git "a/py/php\350\207\252\345\273\272\350\247\243\346\236\220.py" "b/py/php\350\207\252\345\273\272\350\247\243\346\236\220.py" new file mode 100644 index 0000000..bcad79f --- /dev/null +++ "b/py/php\350\207\252\345\273\272\350\247\243\346\236\220.py" @@ -0,0 +1,42 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# File : php自建解析.py +# Author: DaShenHan&道长-----先苦后甜,任凭晚风拂柳颜------ +# Date : 2022/10/16 + + +import zlib +import base64 +# gzip解压 +def gzinflate(compressed: bytes) -> bytes: + return zlib.decompress(compressed, -zlib.MAX_WBITS) + +def base64Encode(text): + return base64.b64encode(text.encode("utf8")).decode("utf-8") #base64编码 + +def baseDecode(text:str): + return base64.b64decode(text).decode("utf-8") #base64解码 + +def un_encode(a:str): + a = gzinflate(base64.b64decode(a)) + print(a) + b = [] + for i in range(len(a)): + print(i) + print(a[i]) + print(ord(str(a[i]))) + b[i] = chr(ord(str(a[i]))-1) + print(b) + +if __name__ == '__main__': + # a = "pVRtT9tWFP6+/IqrKpLtyrMDSYAQoSoFM1AJSR2n04aQZeybxMOxI7+UvqhS6UahGxtdWUe1lU7b2lFtKm23jrVsKX8mNs6v6PVLQgihijTLsqXz8jznPOfcCwB6ItGJDJcBY0C0dAXHKqZZM0Zp+rJcoxRZUEvCokCJWtUz0OdQyBhGRXmWuVhkCtwchgzYPJGORGo6LPNVwRQrOEYbmqWLEBi6OHYGp86eI87QGOnzkFGU4cXLJYDDas28inuWuYF5ggDXIx9EBUmaw0RNgtg8qikRS6RbxqpR9m2Yu/Or8+iu/fil++oJ1naXdK0a+C+ODiaHU6lEKj48cuRXhSoM8ze33W82kecGgIoBe9AOxmKn0Tprd+0vf/pftKHHlw45wv5ROREoVjTwmaGpPFS9YnAvkkwkhzzFSpYqmrKmBoPyskgQFTVtUYYePEZEvHFe97/eQ9PAXtu2d76y178Xi+xM2xH1AMKB87IqmziC78hyd98e1ncP69/a2zfbdj/YgKZWM3EfgATjCDSX53j0I0E41xMwxUzbBqIVKEhQn/PlYGEJ6lAfBa2NW1paoqSrQ2Vv27AjpGNJRQPqH2bKUDVHQVa7JiuKQCepGMBnZNW6kgYZVdI1WQJDVIwaSINcPp8DbMoAecUywHlLViQ6mz0/mMqmwdJlAmRqNQV+DBcuyCadjA9T8SGAX5jisqgfRV6E4CMoLmoEuAR1AwlPJxDTeAUNHNJJxEoNjozEqdQAqmRBViAoCCVBl0MgLO1Xf9T8MVXc5/84L2/Zj1/1o+8Ux+WnmMwEw5ItNXopnc8VOOf+C+fr3Q6fvbLs7r527uy4P68f/vCF8/Bm8/7B4c49FAjcvRVnaw+9za2+6uCms0yuyJEgHuviP1gtFGaav6+7z5fR23jzWz9wKIW/xLDTk5/kGa+1koAOYwdwX6lTqOmTqd7qv7iN5G1+/rRRf9h4vR8I4/y97L7dtFf3+5I9lLwHeCB4498n9saD5uqGXf/F/m/DfvbAvvXUPfjO/vFR1xzew8IyXJGd5djMbGHSYzN1q5ss2JU3ewFBF3RUh6alq63jDK9AMaDokmPttn3nz0AR+966u/9Ho77ZDvAuYz+9DE1ZLWmdRU7PTub8FeTHcxMMAcbQMUT3I0Z0XDUdhfDBgvKGfA22ijoV1VeYL0x/ynRUexIM4RjWgmHqeGgnQYzsRXgKiiSYQg+M9wPcOCbfyl/NrWfHblG/M1HRDNhL755rEI4q5A3iA5qjzzs=" + # print(a) + # b = un_encode(a) + # print(b) + # c = """ + # \n$DATA = curl('https://jx.80k.tv/jxplayer.php?v='.$_REQUEST['url']);\n\npreg_match('/src="(h.*?)"/',$DATA,$url);\n\nif (empty($url[1])) {\n\t$add['code'] = 404;\n\t$add['msg'] = '解析失败';\n\t$add['from'] = 'Q:2579949378';\n\t$add['name'] = '蓝莓';\n} else {\n\t$add['code'] = 200;\n\t$add['msg'] = '解析成功';\n\t$add['from'] = 'Q:2579949378';\n\t$add['name'] = '蓝莓';\n\t$add['url'] = $url[1];\n}\necho json_encode($add,456);\n\nfunction curl($url, $cookie = '')\n {\n // 初始化cURL\n $curl = curl_init();\n // 设置网址\n curl_setopt($curl, CURLOPT_URL, $url);\n // 设置UA\n $header[] = 'Referer: https://1080p.tv';\n $header[] = 'User-Agent: Mozilla/5.0 (Linux; Android 6.0.1; OPPO R9s Plus Build/MMB29M; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/55.0.2883.91 Mobile Safari/537.36'; \n // 设置请求头\n curl_setopt($curl, CURLOPT_HTTPHEADER, $header);\n // 设置POST数据\n //允许执行的最长秒数 超时时间\n curl_setopt($curl, CURLOPT_TIMEOUT, 30);\n // 过SSL验证证书\n curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);\n curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);\n // 将头部作为数据流输出\n curl_setopt($curl, CURLOPT_HEADER, false);\n // 设置以变量形式存储返回数据\n curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);\n // 请求并存储数据\n $return = curl_exec($curl);\n // 分割头部和身体\n if (curl_getinfo($curl, CURLINFO_HTTP_CODE) == '200') {\n $return_header_size = curl_getinfo($curl, CURLINFO_HEADER_SIZE);\n $return_header = substr($return, 0, $return_header_size);\n $return_data = substr($return, $return_header_size);\n }\n // 关闭cURL\n curl_close($curl);\n // 返回数据\n return $return;\n }\n \n \n + # """ + # print(c) + false = False + data = {"isBase64Encoded":false,"statusCode":200,"headers":{"Content-Type":"text\/html; charset=utf-8"},"body":" \n$DATA = curl('https:\/\/jx.80k.tv\/jxplayer.php?v='.$_REQUEST['url']);\n\npreg_match('\/src=\"(h.*?)\"\/',$DATA,$url);\n\nif (empty($url[1])) {\n\t$add['code'] = 404;\n\t$add['msg'] = '解析失败';\n\t$add['from'] = 'Q:2579949378';\n\t$add['name'] = '蓝莓';\n} else {\n\t$add['code'] = 200;\n\t$add['msg'] = '解析成功';\n\t$add['from'] = 'Q:2579949378';\n\t$add['name'] = '蓝莓';\n\t$add['url'] = $url[1];\n}\necho json_encode($add,456);\n\nfunction curl($url, $cookie = '')\n {\n \/\/ 初始化cURL\n $curl = curl_init();\n \/\/ 设置网址\n curl_setopt($curl, CURLOPT_URL, $url);\n \/\/ 设置UA\n $header[] = 'Referer: https:\/\/1080p.tv';\n $header[] = 'User-Agent: Mozilla\/5.0 (Linux; Android 6.0.1; OPPO R9s Plus Build\/MMB29M; wv) AppleWebKit\/537.36 (KHTML, like Gecko) Version\/4.0 Chrome\/55.0.2883.91 Mobile Safari\/537.36'; \n \/\/ 设置请求头\n curl_setopt($curl, CURLOPT_HTTPHEADER, $header);\n \/\/ 设置POST数据\n \/\/允许执行的最长秒数 超时时间\n curl_setopt($curl, CURLOPT_TIMEOUT, 30);\n \/\/ 过SSL验证证书\n curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);\n curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);\n \/\/ 将头部作为数据流输出\n curl_setopt($curl, CURLOPT_HEADER, false);\n \/\/ 设置以变量形式存储返回数据\n curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);\n \/\/ 请求并存储数据\n $return = curl_exec($curl);\n \/\/ 分割头部和身体\n if (curl_getinfo($curl, CURLINFO_HTTP_CODE) == '200') {\n $return_header_size = curl_getinfo($curl, CURLINFO_HEADER_SIZE);\n $return_header = substr($return, 0, $return_header_size);\n $return_data = substr($return, $return_header_size);\n }\n \/\/ 关闭cURL\n curl_close($curl);\n \/\/ 返回数据\n return $return;\n }\n \n \n "} + print(data['body'].replace('\/\/','//').replace('\/','/')) \ No newline at end of file diff --git a/readme.md b/readme.md index b7a366a..fafb0e6 100644 --- a/readme.md +++ b/readme.md @@ -49,6 +49,7 @@ [获取本地设备信息](https://m.jb51.net/article/140716.htm) ###### 2022/10/16 - [X] 3.9.8 完成ddys选集播放和免嗅(可惜我刚弄完没播放俩个剧就被封ip了) +- [X] 3.9.8beta1 增加了俩自建js解析 ###### 2022/10/15 - [X] beta2 修复dealJson导致的兔小贝一级分类无数据 - [X] beta6 尝试完善低端影视,增加tabs和lists支持js:写法(js模式0和模式1同步测试) -- GitLab