ptSend/util/getList/qq.js

108 lines
3.2 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

const puppeteer = require("puppeteer")
const { seep, spawn } = require("../utils.js");
// 无头浏览器模式 暂时禁用
async function getQqListDataBack(url) {
const browser = await puppeteer.launch({
// 关闭无头模式,方便我们看到这个无头浏览器执行的过程
headless: false,
timeout: 0 // 默认超时为30秒设置为0则表示不设置超时
});
try{
const page = await browser.newPage();
page.setViewport({
width: 1376,
height: 768,
});
await page.goto(url, {});
let list = await page.evaluate(() => {
return window.__PINIA__.episodeMain
})
// let qb = await page.$$(".b-btn--round")
await page.$$eval(".b-btn--round", (list) => {
console.log(list)
for (let i of list) {
if (i && i.innerText) {
if ("全部" === i.innerText.trim()) {
i.click()
}
}
}
})
for (let i of list.listData[0].tabs) {
let text = i.text
let more = await page.$(".b-tab__more")
more && more.click()
await page.$$eval(".b-tab__item", (list, text) => {
console.log(list)
for (let i of list) {
if (i && i.innerText) {
if (text == i.innerText.trim()) {
i.click()
}
}
}
}, text)
await page.$$eval(".b-tag-list__tag", (list, text) => {
console.log(list)
for (let i of list) {
if (i && i.innerText) {
if (text == i.innerText.trim()) {
i.click()
}
}
}
}, text)
await seep(1000);
}
list = await page.evaluate(() => {
return __PINIA__.episodeMain
})
list = list.listData[0].list
let listData = []
for (let i of list) {
// listData.push(...i)
i.forEach(j => {
if(!j.isNoStoreWatchHistory){
listData.push(j)
}
});
}
list = []
for(let i of listData){
list.push({
title:i.fullTitle,
url:"https://v.qq.com/x/cover/" + i.cid + "/" + i.vid + ".html"
})
}
browser.close()
return list
}catch{
browser.close()
return []
}
}
function getQqListData(cid){
return new Promise((resolve) => {
const lux = spawn("getTencentVideoPlayList", [cid, 'vversion_name=8.2.95;', 1])
lux.stdout.on('data', (data) => {
resolve(JSON.parse(String(data)))
});
lux.stderr.on("data",(a)=>{
console.log(a)
})
lux.stdout.on("error",(err)=>{
console.log(err)
})
lux.stderr.on("error",(err)=>{
console.log(err)
})
})
}
module.exports = {
getQqListData
}