Files
tvbox_collect/ljlfct01.github.io.git/腾讯.js
T
2026-07-14 04:54:21 +00:00

1184 lines
37 KiB
JavaScript

// 百万IP池生成器
globalThis.generateMillionIPs = function() {
const ipPool = [];
// 生成A类地址段 (1.0.0.0 - 126.255.255.255)
for (let a = 1; a <= 126; a++) {
if (a === 10 || a === 127) continue; // 跳过私有地址和回环
// 每个A类段随机选择部分B类地址
if (Math.random() < 0.15) {
for (let b = 0; b <= 255; b++) {
// 每个B类段随机选择部分C类地址
if (Math.random() < 0.02) {
for (let c = 0; c <= 255; c++) {
// 每个C类段随机选择部分D类地址
if (Math.random() < 0.01) {
const ip = `${a}.${b}.${c}.${Math.floor(Math.random() * 254) + 1}`;
const port = [80, 8080, 3128, 443, 8443, 8888, 9000][Math.floor(Math.random() * 7)];
ipPool.push(`http://${ip}:${port}`);
}
}
}
}
}
}
// 生成B类地址段 (128.0.0.0 - 191.255.255.255)
for (let a = 128; a <= 191; a++) {
for (let b = 0; b <= 255; b++) {
if (a === 172 && b >= 16 && b <= 31) continue; // 跳过私有地址
if (Math.random() < 0.08) {
for (let c = 0; c <= 255; c++) {
if (Math.random() < 0.01) {
const ip = `${a}.${b}.${c}.${Math.floor(Math.random() * 254) + 1}`;
const port = [80, 8080, 3128, 443, 8443, 8888, 9000][Math.floor(Math.random() * 7)];
ipPool.push(`http://${ip}:${port}`);
}
}
}
}
}
// 生成C类地址段 (192.0.0.0 - 223.255.255.255)
for (let a = 192; a <= 223; a++) {
for (let b = 0; b <= 255; b++) {
if (a === 192 && b === 168) continue; // 跳过私有地址
if (a === 198 && b >= 18 && b <= 19) continue; // 跳过测试地址
if (Math.random() < 0.05) {
for (let c = 0; c <= 255; c++) {
if (Math.random() < 0.005) {
const ip = `${a}.${b}.${c}.${Math.floor(Math.random() * 254) + 1}`;
const port = [80, 8080, 3128, 443, 8443, 8888, 9000][Math.floor(Math.random() * 7)];
ipPool.push(`http://${ip}:${port}`);
}
}
}
}
}
console.log(`生成了 ${ipPool.length} 个随机IP地址`);
return ipPool;
};
// 动态IP池管理器
globalThis.dynamicIPPool = {
ipPool: [],
lastRefresh: 0,
refreshInterval: 3600000, // 1小时刷新一次
getIPs: function() {
const now = Date.now();
if (this.ipPool.length === 0 || now - this.lastRefresh > this.refreshInterval) {
console.log("刷新IP池...");
this.ipPool = generateMillionIPs();
this.lastRefresh = now;
}
return this.ipPool;
},
getRandomIP: function() {
const pool = this.getIPs();
return pool[Math.floor(Math.random() * pool.length)];
},
// 获取一批不同的IP
getBatchIPs: function(count) {
const pool = this.getIPs();
const selected = [];
const usedIndices = new Set();
for (let i = 0; i < count && i < pool.length; i++) {
let index;
do {
index = Math.floor(Math.random() * pool.length);
} while (usedIndices.has(index) && usedIndices.size < pool.length);
usedIndices.add(index);
selected.push(pool[index]);
}
return selected;
}
};
// 增强的代理IP池(包含静态和动态IP)
globalThis.proxyPool = [
'http://120.46.190.255:8080',
'http://112.74.105.128:8080',
'http://183.247.211.43:8080',
'http://117.85.105.170:8080',
'http://121.232.148.241:8080',
'http://118.212.104.207:8080',
'http://117.87.178.123:8080',
'http://183.166.102.23:8080',
'http://114.239.1.155:8080',
'http://123.163.117.98:8080'
];
// 解析接口池(整合所有解析接口,去重,包含原lazy里的所有接口)
globalThis.parseApiPool = [
"https://niubi.69mini.com/jsonapi/?url=",
"http://jiexi.fc8001.top/GswHCTkjDZybiWZy.php?url="
];
// 智能获取随机代理(优先动态IP,失败后使用静态IP)
globalThis.getRandomProxy = function() {
// 80%概率使用动态IP,20%概率使用静态IP
if (Math.random() < 0.8) {
return dynamicIPPool.getRandomIP();
} else {
return proxyPool[Math.floor(Math.random() * proxyPool.length)];
}
};
// 获取解析接口
globalThis.getParseApi = function() {
return parseApiPool[Math.floor(Math.random() * parseApiPool.length)];
};
// 增强的带代理请求函数
globalThis.requestWithProxy = function(url, options, parseJson) {
const maxRetries = 3;
for (let attempt = 0; attempt < maxRetries; attempt++) {
try {
let proxyUrl = getRandomProxy();
console.log(`第${attempt + 1}次尝试使用代理: ${proxyUrl}`);
// 生成随机User-Agent
const userAgents = [
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',
'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0',
'Mozilla/5.0 (iPhone; CPU iPhone OS 17_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.2 Mobile/15E148 Safari/604.1',
'Mozilla/5.0 (Linux; Android 14; SM-S918B) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.6099.210 Mobile Safari/537.36'
];
const randomUserAgent = userAgents[Math.floor(Math.random() * userAgents.length)];
// 生成随机IP地址用于伪造头信息
const fakeIP = generateFakeIP();
const requestOptions = {
...options,
proxy: proxyUrl,
timeout: 10000,
headers: {
...options?.headers,
'User-Agent': randomUserAgent,
'X-Forwarded-For': fakeIP,
'X-Real-IP': fakeIP,
'CF-Connecting-IP': fakeIP,
'Client-IP': fakeIP
}
};
let result = request(url, requestOptions, parseJson);
console.log(`第${attempt + 1}次代理请求成功`);
return result;
} catch (e) {
console.log(`第${attempt + 1}次代理请求失败: ${e.message}`);
if (attempt === maxRetries - 1) {
console.log("所有代理尝试失败,使用直连");
// 所有代理失败时使用直连
return request(url, options, parseJson);
}
}
}
};
// 生成伪造IP地址的函数
globalThis.generateFakeIP = function() {
// 避免私有地址段
let a, b, c, d;
do {
a = Math.floor(Math.random() * 223) + 1;
b = Math.floor(Math.random() * 256);
c = Math.floor(Math.random() * 256);
d = Math.floor(Math.random() * 254) + 1;
} while (
a === 10 ||
(a === 172 && b >= 16 && b <= 31) ||
(a === 192 && b === 168) ||
a === 127
);
return `${a}.${b}.${c}.${d}`;
};
globalThis.vod1 = function(ids) {
let html1 = requestWithProxy('https://pbaccess.video.qq.com/trpc.videosearch.mobile_search.MultiTerminalSearch/MbSearch?vplatform=2', {
body: {
"version": "25042201",
"clientType": 1,
"filterValue": "",
"uuid": "B1E50847-D25F-4C4B-BBA0-36F0093487F6",
"retry": 0,
"query": ids,
"pagenum": 0,
"isPrefetch": true,
"pagesize": 30,
"queryFrom": 0,
"searchDatakey": "",
"transInfo": "",
"isneedQc": true,
"preQid": "",
"adClientInfo": "",
"extraInfo": {
"isNewMarkLabel": "1",
"multi_terminal_pc": "1",
"themeType": "1",
"sugRelatedIds": "{}",
"appVersion": ""
}
},
headers: {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.139 Safari/537.36',
'Content-Type': 'application/json',
'origin': 'https://v.qq.com',
'referer': 'https://v.qq.com'
},
'method': 'POST'
}, true);
return html1;
}
var rule = {
title: '腾云驾雾[官]',
host: 'https://v.%71%71.com',
homeUrl: '/x/bu/pagesheet/list?_all=1&append=1&channel=cartoon&listpage=1&offset=0&pagesize=21&iarea=-1&sort=18',
detailUrl: 'https://node.video.%71%71.com/x/api/float_vinfo2?cid=fyid',
searchUrl: '/x/search/?q=**&stag=fypage',
searchUrl: 'https://pbaccess.video.%71%71.com/trpc.videosearch.smartboxServer.HttpRountRecall/Smartbox?query=**&appID=3172&appKey=lGhFIPeD3HsO9xEp&pageNum=(fypage-1)&pageSize=10',
searchUrl: '**',
searchable: 2,
filterable: 1,
multi: 1,
url: '/x/bu/pagesheet/list?_all=1&append=1&channel=fyclass&listpage=1&offset=((fypage-1)*21)&pagesize=21&iarea=-1',
filter_url: 'sort={{fl.sort or 75}}&iyear={{fl.iyear}}&year={{fl.year}}&itype={{fl.type}}&ifeature={{fl.feature}}&iarea={{fl.area}}&itrailer={{fl.itrailer}}&gender={{fl.sex}}',
filter: {
"choice": [{
"key": "sort",
"name": "排序",
"value": [{
"n": "最热",
"v": "75"
}, {
"n": "最新",
"v": "83"
}, {
"n": "好评",
"v": "81"
}]
}, {
"key": "iyear",
"name": "年代",
"value": [{
"n": "全部",
"v": "-1"
}, {
"n": "2025",
"v": "2025"
}, {
"n": "2024",
"v": "2024"
}, {
"n": "2023",
"v": "2023"
}, {
"n": "2022",
"v": "2022"
}, {
"n": "2021",
"v": "2021"
}, {
"n": "2020",
"v": "2020"
}, {
"n": "2019",
"v": "2019"
}, {
"n": "2018",
"v": "2018"
}, {
"n": "2017",
"v": "2017"
}, {
"n": "2016",
"v": "2016"
}, {
"n": "2015",
"v": "2015"
}]
}],
"tv": [{
"key": "sort",
"name": "排序",
"value": [{
"n": "最热",
"v": "75"
}, {
"n": "最新",
"v": "79"
}, {
"n": "好评",
"v": "16"
}]
}, {
"key": "feature",
"name": "类型",
"value": [{
"n": "全部",
"v": "-1"
}, {
"n": "爱情",
"v": "1"
}, {
"n": "古装",
"v": "2"
}, {
"n": "悬疑",
"v": "3"
}, {
"n": "都市",
"v": "4"
}, {
"n": "家庭",
"v": "5"
}, {
"n": "喜剧",
"v": "6"
}, {
"n": "传奇",
"v": "7"
}, {
"n": "武侠",
"v": "8"
}, {
"n": "军旅",
"v": "9"
}, {
"n": "权谋",
"v": "10"
}, {
"n": "革命",
"v": "11"
}, {
"n": "现实",
"v": "13"
}, {
"n": "青春",
"v": "14"
}, {
"n": "猎奇",
"v": "15"
}, {
"n": "科幻",
"v": "16"
}, {
"n": "竞技",
"v": "17"
}, {
"n": "玄幻",
"v": "18"
}]
}, {
"key": "iyear",
"name": "年代",
"value": [{
"n": "全部",
"v": "-1"
}, {
"n": "2025",
"v": "2025"
}, {
"n": "2024",
"v": "2024"
}, {
"n": "2023",
"v": "2023"
}, {
"n": "2022",
"v": "2022"
}, {
"n": "2021",
"v": "2021"
}, {
"n": "2020",
"v": "2020"
}, {
"n": "2019",
"v": "2019"
}, {
"n": "2018",
"v": "2018"
}, {
"n": "2017",
"v": "2017"
}, {
"n": "2016",
"v": "2016"
}, {
"n": "2015",
"v": "2015"
}]
}],
"movie": [{
"key": "sort",
"name": "排序",
"value": [{
"n": "最热",
"v": "75"
}, {
"n": "最新",
"v": "83"
}, {
"n": "好评",
"v": "81"
}]
}, {
"key": "type",
"name": "类型",
"value": [{
"n": "全部",
"v": "-1"
}, {
"n": "犯罪",
"v": "4"
}, {
"n": "励志",
"v": "2"
}, {
"n": "喜剧",
"v": "100004"
}, {
"n": "热血",
"v": "100061"
}, {
"n": "悬疑",
"v": "100009"
}, {
"n": "爱情",
"v": "100005"
}, {
"n": "科幻",
"v": "100012"
}, {
"n": "恐怖",
"v": "100010"
}, {
"n": "动画",
"v": "100015"
}, {
"n": "战争",
"v": "100006"
}, {
"n": "家庭",
"v": "100017"
}, {
"n": "剧情",
"v": "100022"
}, {
"n": "奇幻",
"v": "100016"
}, {
"n": "武侠",
"v": "100011"
}, {
"n": "历史",
"v": "100021"
}, {
"n": "老片",
"v": "100013"
}, {
"n": "西部",
"v": "3"
}, {
"n": "记录片",
"v": "100020"
}]
}, {
"key": "year",
"name": "年代",
"value": [{
"n": "全部",
"v": "-1"
}, {
"n": "2025",
"v": "2025"
}, {
"n": "2024",
"v": "2024"
}, {
"n": "2023",
"v": "2023"
}, {
"n": "2022",
"v": "2022"
}, {
"n": "2021",
"v": "2021"
}, {
"n": "2020",
"v": "2020"
}, {
"n": "2019",
"v": "2019"
}, {
"n": "2018",
"v": "2018"
}, {
"n": "2017",
"v": "2017"
}, {
"n": "2016",
"v": "2016"
}, {
"n": "2015",
"v": "2015"
}]
}],
"variety": [{
"key": "sort",
"name": "排序",
"value": [{
"n": "最热",
"v": "75"
}, {
"n": "最新",
"v": "23"
}]
}, {
"key": "iyear",
"name": "年代",
"value": [{
"n": "全部",
"v": "-1"
}, {
"n": "2025",
"v": "2025"
}, {
"n": "2024",
"v": "2024"
}, {
"n": "2023",
"v": "2023"
}, {
"n": "2022",
"v": "2022"
}, {
"n": "2021",
"v": "2021"
}, {
"n": "2020",
"v": "2020"
}, {
"n": "2019",
"v": "2019"
}, {
"n": "2018",
"v": "2018"
}, {
"n": "2017",
"v": "2017"
}, {
"n": "2016",
"v": "2016"
}, {
"n": "2015",
"v": "2015"
}]
}],
"cartoon": [{
"key": "sort",
"name": "排序",
"value": [{
"n": "最热",
"v": "75"
}, {
"n": "最新",
"v": "83"
}, {
"n": "好评",
"v": "81"
}]
}, {
"key": "area",
"name": "地区",
"value": [{
"n": "全部",
"v": "-1"
}, {
"n": "内地",
"v": "1"
}, {
"n": "日本",
"v": "2"
}, {
"n": "欧美",
"v": "3"
}, {
"n": "其他",
"v": "4"
}]
}, {
"key": "type",
"name": "类型",
"value": [{
"n": "全部",
"v": "-1"
}, {
"n": "玄幻",
"v": "9"
}, {
"n": "科幻",
"v": "4"
}, {
"n": "武侠",
"v": "13"
}, {
"n": "冒险",
"v": "3"
}, {
"n": "战斗",
"v": "5"
}, {
"n": "搞笑",
"v": "1"
}, {
"n": "恋爱",
"v": "7"
}, {
"n": "魔幻",
"v": "6"
}, {
"n": "竞技",
"v": "20"
}, {
"n": "悬疑",
"v": "17"
}, {
"n": "日常",
"v": "15"
}, {
"n": "校园",
"v": "16"
}, {
"n": "真人",
"v": "18"
}, {
"n": "推理",
"v": "14"
}, {
"n": "历史",
"v": "19"
}, {
"n": "经典",
"v": "3"
}, {
"n": "其他",
"v": "12"
}]
}, {
"key": "iyear",
"name": "年代",
"value": [{
"n": "全部",
"v": "-1"
}, {
"n": "2025",
"v": "2025"
}, {
"n": "2024",
"v": "2024"
}, {
"n": "2023",
"v": "2023"
}, {
"n": "2022",
"v": "2022"
}, {
"n": "2021",
"v": "2021"
}, {
"n": "2020",
"v": "2020"
}, {
"n": "2019",
"v": "2019"
}, {
"n": "2018",
"v": "2018"
}, {
"n": "2017",
"v": "2017"
}, {
"n": "2016",
"v": "2016"
}, {
"n": "2015",
"v": "2015"
}]
}],
"child": [{
"key": "sort",
"name": "排序",
"value": [{
"n": "最热",
"v": "75"
}, {
"n": "最新",
"v": "76"
}, {
"n": "好评",
"v": "20"
}]
}, {
"key": "sex",
"name": "性别",
"value": [{
"n": "全部",
"v": "-1"
}, {
"n": "女孩",
"v": "1"
}, {
"n": "男孩",
"v": "2"
}]
}, {
"key": "area",
"name": "地区",
"value": [{
"n": "全部",
"v": "-1"
}, {
"n": "内地",
"v": "3"
}, {
"n": "日本",
"v": "2"
}, {
"n": "其他",
"v": "1"
}]
}, {
"key": "iyear",
"name": "年龄段",
"value": [{
"n": "全部",
"v": "-1"
}, {
"n": "0-3岁",
"v": "1"
}, {
"n": "4-6岁",
"v": "2"
}, {
"n": "7-9岁",
"v": "3"
}, {
"n": "10岁以上",
"v": "4"
}, {
"n": "全年龄段",
"v": "7"
}]
}],
"doco": [{
"key": "sort",
"name": "排序",
"value": [{
"n": "最热",
"v": "75"
}, {
"n": "最新",
"v": "74"
}]
}, {
"key": "itrailer",
"name": "出品方",
"value": [{
"n": "全部",
"v": "-1"
}, {
"n": "BBC",
"v": "1"
}, {
"n": "国家地理",
"v": "4"
}, {
"n": "HBO",
"v": "3175"
}, {
"n": "NHK",
"v": "2"
}, {
"n": "历史频道",
"v": "7"
}, {
"n": "ITV",
"v": "3530"
}, {
"n": "探索频道",
"v": "3174"
}, {
"n": "ZDF",
"v": "3176"
}, {
"n": "腾讯自制",
"v": "15"
}, {
"n": "合作机构",
"v": "6"
}, {
"n": "其他",
"v": "5"
}]
}, {
"key": "type",
"name": "类型",
"value": [{
"n": "全部",
"v": "-1"
}, {
"n": "自然",
"v": "4"
}, {
"n": "美食",
"v": "10"
}, {
"n": "社会",
"v": "3"
}, {
"n": "人文",
"v": "6"
}, {
"n": "历史",
"v": "1"
}, {
"n": "军事",
"v": "2"
}, {
"n": "科技",
"v": "8"
}, {
"n": "财经",
"v": "14"
}, {
"n": "探险",
"v": "15"
}, {
"n": "罪案",
"v": "7"
}, {
"n": "竞技",
"v": "12"
}, {
"n": "旅游",
"v": "11"
}]
}]
},
headers: {
'User-Agent': 'PC_UA'
},
timeout: 5000,
cate_exclude: '会员|游戏|全部',
class_name: '🎀老三推荐&臻彩⚡4K电影&臻彩⚡4K电视剧&臻彩⚡4K综艺&臻彩⚡4K动漫&臻彩⚡4K少儿&臻彩⚡4K纪录片',
class_url: 'choice&movie&tv&variety&cartoon&child&doco',
limit: 20,
play_parse: true,
lazy: $js.toString(() => {
try {
let vid = input.split("?")[0];
// 核心修改:从全局解析池生成带vid的完整解析接口
let apis = parseApiPool.map(api => api + vid);
let playUrl = '';
let validUrlFound = false;
// 为每个解析接口使用不同的代理IP
for (let i = 0; i < apis.length; i++) {
try {
const currentProxy = getRandomProxy();
console.log(`尝试解析接口 ${i+1}: ${apis[i]} 使用代理: ${currentProxy}`);
let response = fetch(apis[i], {
method: 'get',
headers: {
'User-Agent': 'okhttp/3.14.9',
'Content-Type': 'application/x-www-form-urlencoded',
'X-Forwarded-For': generateFakeIP(),
'X-Real-IP': generateFakeIP()
},
proxy: currentProxy,
timeout: 8000
});
let data = JSON.parse(response);
// 屏蔽特定开头的视频地址
if (data.url && data.url.includes("http")) {
if (data.url.startsWith("https://kcxaichat.oss-cn-shenzhen.aliyuncs.com/upload/aipic/2510252155/qm0UmUo6xk") ||
data.url === "https://web.wya6.com/d/super/zhuimi/qfad.mp4" ||
data.url === "http://lie.yuyun4kmaopan.qijiyun.vip/d/ty/524831212564975517/video_250916_000258.mp4") {
console.log("解析接口" + (i+1) + "返回了被屏蔽地址,跳过");
continue;
}
playUrl = data.url;
console.log("使用解析接口" + (i+1) + "成功");
validUrlFound = true;
break;
}
} catch (e) {
console.log("解析接口" + (i+1) + "失败: " + e.message);
// 失败后尝试不使用代理重试一次
try {
console.log("尝试直连解析接口: " + apis[i]);
let response = fetch(apis[i], {
method: 'get',
headers: {
'User-Agent': 'okhttp/3.14.9',
'Content-Type': 'application/x-www-form-urlencoded'
},
timeout: 8000
});
let data = JSON.parse(response);
if (data.url && data.url.includes("http") &&
!data.url.startsWith("https://kcxaichat.oss-cn-shenzhen.aliyuncs.com/upload/aipic/2510252155/qqm0UmUo6xQk") &&
data.url !== "https://web.wya6.com/d/super/zhuimi/qfad.mp4" &&
data.url !== "http://lie.yuyun4kmaopan.qijiyun.vip/d/ty/524831212564975517/video_250916_000258.mp4") {
playUrl = data.url;
console.log("直连解析接口" + (i+1) + "成功");
validUrlFound = true;
break;
}
} catch (e2) {
console.log("直连解析接口" + (i+1) + "也失败: " + e2.message);
}
}
}
if (validUrlFound) {
input = {
header: {'User-Agent': ""},
parse: 0,
url: playUrl,
jx: 0,
danmaku: '' + vid
};
} else {
input = {
header: {'User-Agent': ""},
parse: 0,
url: vid,
jx: 1,
danmaku: '' + vid
};
}
} catch (e) {
let vid = input.split("?")[0];
input = {
header: {'User-Agent': ""},
parse: 0,
url: vid,
jx: 1,
danmaku: '' + vid
};
}
}),
推荐: '.list_item;img&&alt;img&&src;a&&Text;a&&data-float',
一级: '.list_item;img&&alt;img&&src;a&&Text;a&&data-float',
二级: $js.toString(() => {
VOD = {};
let d = [];
let video_list = [];
let video_lists = [];
let list = [];
let QZOutputJson;
// 使用带代理的请求
let html = requestWithProxy(input, {
headers: {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36'
}
});
let sourceId = /get_playsource/.test(input) ? input.match(/id=(\d*?)&/)[1] : input.split("cid=")[1];
let cid = sourceId;
let detailUrl = "https://v.%71%71.com/detail/m/" + cid + ".html";
log("详情页:" + detailUrl);
pdfh = jsp.pdfh;
pd = jsp.pd;
try {
let json = JSON.parse(html);
VOD = {
vod_url: input,
vod_name: json.c.title,
type_name: json.typ.join(","),
vod_actor: json.nam.join(","),
vod_year: json.c.year,
vod_content: json.c.description,
vod_remarks: json.rec,
vod_pic: urljoin2(input, json.c.pic)
}
} catch (e) {
log("解析片名海报等基础信息发生错误:" + e.message)
}
if (/get_playsource/.test(input)) {
eval(html);
let indexList = QZOutputJson.PlaylistItem.indexList;
indexList.forEach(function(it) {
let dataUrl = "https://s.video.qq.com/get_playsource?id=" + sourceId + "&plat=2&type=4&data_type=3&range=" + it + "&video_type=10&plname=qq&otype=json";
eval(requestWithProxy(dataUrl, {}));
let vdata = QZOutputJson.PlaylistItem.videoPlayList;
vdata.forEach(function(item) {
d.push({
title: item.title,
pic_url: item.pic,
desc: item.episode_number + "\t\t\t播放量:" + item.thirdLine,
url: item.playUrl
})
});
video_lists = video_lists.concat(vdata)
})
} else {
let json = JSON.parse(html);
video_lists = json.c.video_ids;
let url = "https://v.qq.com/x/cover/" + sourceId + ".html";
if (video_lists.length === 1) {
let vid = video_lists[0];
url = "https://v.qq.com/x/cover/" + cid + "/" + vid + ".html";
d.push({
title: "在线播放",
url: url
})
} else if (video_lists.length > 1) {
for (let i = 0; i < video_lists.length; i += 30) {
video_list.push(video_lists.slice(i, i + 30))
}
video_list.forEach(function(it, idex) {
let o_url = "https://union.video.qq.com/fcgi-bin/data?otype=json&tid=1804&appid=20001238&appkey=6c03bbe9658448a4&union_platform=1&idlist=" + it.join(",");
let o_html = requestWithProxy(o_url, {});
eval(o_html);
QZOutputJson.results.forEach(function(it1) {
it1 = it1.fields;
let url = "https://v.qq.com/x/cover/" + cid + "/" + it1.vid + ".html";
d.push({
title: it1.title,
pic_url: it1.pic160x90.replace("/160", ""),
desc: it1.video_checkup_time,
url: url,
type: it1.category_map && it1.category_map.length > 1 ? it1.category_map[1] : ""
})
})
})
}
}
let yg = d.filter(function(it) {
return it.type && it.type !== "正片"
});
let zp = d.filter(function(it) {
return !(it.type && it.type !== "正片")
});
VOD.vod_play_from = yg.length < 1 ? "老三4K" : "老三4K$$$预告及花絮";
VOD.vod_play_url = yg.length < 1 ? d.map(function(it) {
return it.title + "$" + it.url
}).join("#") : [zp, yg].map(function(it) {
return it.map(function(its) {
return its.title + "$" + its.url
}).join("#")
}).join("$$$");
}),
搜索: $js.toString(() => {
let d = [];
pdfa = jsp.pdfa;
pdfh = jsp.pdfh;
pd = jsp.pd;
let html = requestWithProxy(input, {});
let baseList = pdfa(html, "body&&.result_item_v");
log(baseList.length);
baseList.forEach(function(it) {
let longText = pdfh(it, ".result_title&&a&&Text");
let shortText = pdfh(it, ".type&&Text");
let fromTag = pdfh(it, ".result_source&&Text");
let score = pdfh(it, ".figure_info&&Text");
let content = pdfh(it, ".desc_text&&Text");
let url = pdfh(it, "div&&r-data");
let img = pd(it, ".figure_pic&&src");
url = "https://node.video.qq.com/x/api/float_vinfo2?cid=" + url.match(/.*\/(.*?)\.html/)[1];
log(shortText + "|" + url);
if (fromTag.match(/腾讯/)) {
d.push({
title: longText.split(shortText)[0],
img: img,
url: url,
content: content,
desc: shortText + " " + score
})
}
});
setResult(d);
}),
搜索: $js.toString(() => {
let d = [];
let html = requestWithProxy(input, {});
let json = JSON.parse(html);
if (json.data.smartboxItemList.length > 0) {
let cid = json.data.smartboxItemList[0].basicDoc.id;
let url = 'https://node.video.qq.com/x/api/float_vinfo2?cid=' + cid;
let html1 = requestWithProxy(url, {});
let data = JSON.parse(html1);
d.push({
title: data.c.title,
img: data.c.pic,
url: url,
content: data.c.description,
desc: data.rec
});
}
setResult(d);
}),
搜索: $js.toString(() => {
let d = [];
let mame = (input.split("/")[3]);
let html = vod1(input.split("/")[3]);
let json = JSON.parse(html);
let list = json.data.normalList.itemList;
console.log(json);
log(list[0].videoInfo.title);
list.forEach(function(it) {
try {
if (it.doc.id.length > 11) {
d.push({
title: it.videoInfo.title,
img: it.videoInfo.imgUrl,
url: it.doc.id,
});
}
} catch {
}
});
let list2 = json.data.areaBoxList[0].itemList;
list2.forEach(function(it) {
try {
if (it.doc.id.length > 11 && it.videoInfo.title.match(mame)) {
d.push({
title: it.videoInfo.title,
img: it.videoInfo.imgUrl,
url: it.doc.id,
});
}
} catch {
}
});
setResult(d);
})
}