mirror of
https://github.com/qist/tvbox.git
synced 2026-06-21 09:03:22 +00:00
update ALL
This commit is contained in:
@@ -45,6 +45,17 @@
|
||||
"playerType": 0,
|
||||
"type": 3
|
||||
},
|
||||
{
|
||||
"key": "jiujiuliu",
|
||||
"name": "🔞┃九九六影视┃🔞",
|
||||
"api": "./js/jiujiuliu.js",
|
||||
"timeout": 30,
|
||||
"ext": {
|
||||
"box": "CatOpen"
|
||||
},
|
||||
"playerType": 0,
|
||||
"type": 3
|
||||
},
|
||||
{
|
||||
"key": "sehuatang",
|
||||
"name": "🔞┃色花堂BT┃🔞",
|
||||
|
||||
@@ -44,6 +44,17 @@
|
||||
"playerType": 0,
|
||||
"type": 3
|
||||
},
|
||||
{
|
||||
"key": "jiujiuliu",
|
||||
"name": "🔞┃九九六影视┃🔞",
|
||||
"api": "./js/jiujiuliu.js",
|
||||
"timeout": 30,
|
||||
"ext": {
|
||||
"box": "TVBox"
|
||||
},
|
||||
"playerType": 0,
|
||||
"type": 3
|
||||
},
|
||||
{
|
||||
"key": "sehuatang",
|
||||
"name": "🔞┃色花堂BT┃🔞",
|
||||
|
||||
@@ -114,7 +114,7 @@ class AiYingShiSpider extends Spider {
|
||||
vodShort.vod_id = $(item).find(".video-serial")[0].attribs.href;
|
||||
vodShort.vod_name = $(item).find(".video-serial")[0].attribs.title;
|
||||
vodShort.vod_pic = $(item).find(".module-item-pic > img")[0].attribs['data-src']
|
||||
vodShort.vod_remarks = '';
|
||||
vodShort.vod_remarks = $($(item).find(".video-serial")[0]).text();
|
||||
vod_list.push(vodShort);
|
||||
}
|
||||
return vod_list
|
||||
|
||||
@@ -47,7 +47,7 @@ class GitCafeSpider extends Spider {
|
||||
return {
|
||||
"User-Agent":Utils.CHROME,
|
||||
"Connection": "keep-alive",
|
||||
"Cookie":"_ga=GA1.1.1506025676.1708225506;FCNEC=%5B%5B%22AKsRol9sCpH4JteOAAMprJLQxCHddrtkOFinxqt1cs8x3fKzbBZ5Ll76VvjATz1Ejf6NoayGSONFl2gfn6PbVAG97MlHjhp6cY5NFLQtLIUy0TuzI1_ThHnANe8fW03fHdU2-cx5yM3MftaHt4awEGBWhgtE9H_P5w%3D%3D%22%5D%5D;_cc_id=cc82bd83ea8936df45fe63c887a6f221;mysession=MTcwOTYyMjMxMHxEdi1CQkFFQ180SUFBUkFCRUFBQU1fLUNBQUVHYzNSeWFXNW5EQXdBQ25ObFlYSmphRjlyWlhrR2MzUnlhVzVuREJFQUQtV1JxT1draE9tWnBPUzRpZVd1c3c9PXyjHmLCdFvUlsW_gilBojjCq1ak-ffOud6aZKm3kxzJ4w==;Hm_lvt_02f69e0ba673e328ef49b5fb98dd4601=1708225506,1709622301,1710414091;_bid=28d3966abb8cf873ea912b715552f587;cf_clearance=6LuYs83fWIZlcwwzZkgRyYyFrP6Hndxe_CgByMe.pMs-1710414092-1.0.1.1-V44M.u7MNIozBytYixxp4Qe1OVr.CBH78.IEK2QJTWGQ7.HQBR0DoUgiSfpa23U.nxtOfhkrASpqogvz53knnw;cto_bundle=-WbYyl9VWGZjQkhzZ0gyQjE4VXNlcTJnYTNaV3dMaTdVV0xST3p5RkVnUTNxVWpxYVElMkZtNnVsaWtQSzdQU3JJY0slMkYxc3R5SXdyQlRzbkp1clVNZk84OElTR2MlMkJPeGx0bGtsUHk2VzhGdk1yYyUyRnB5eUNNblhKbWpzcjY1SVI1ODlWRGZXemgzUU51bGF5UWxFNVljcUZpd252bnVZZ1R1d0VXRmJ3S1FXQ1RCMXhVNCUzRA;Hm_lpvt_02f69e0ba673e328ef49b5fb98dd4601=1710416656;_ga_NYNC791BP2=GS1.1.1710414091.2.1.1710416656.0.0.0;_ga_0B2NFC7Z09=GS1.1.1710414091.2.1.1710416656.60.0.0;_egg=16a87a4666714be885e814217b225d50e"}
|
||||
"Cookie":"mysession=MTcxNTQwNTU3N3xEdi1CQkFFQ180SUFBUkFCRUFBQUxmLUNBQUVHYzNSeWFXNW5EQXdBQ25ObFlYSmphRjlyWlhrR2MzUnlhVzVuREFzQUNlZVVoT1dzbS1TOG9BPT183zSLJi-U9NmKMODipFB6EPuVUbUbmCgYTaJrdiPwsLU="}
|
||||
}
|
||||
|
||||
async getContentHtml() {
|
||||
|
||||
@@ -83,6 +83,7 @@ class BQQSpider extends Spider {
|
||||
bookDetail.book_content = $('[property$=description]')[0].attribs.content
|
||||
bookDetail.book_pic = $($("[class=\"cover\"]")).find("img")[0].attribs.src
|
||||
bookDetail.book_id = id
|
||||
let playBook = {}
|
||||
if (id !== undefined) {
|
||||
$ = await this.getHtml(this.siteUrl + id + `list.html`);
|
||||
let urls = [];
|
||||
@@ -92,9 +93,13 @@ class BQQSpider extends Spider {
|
||||
const link = l.attribs.href;
|
||||
urls.push(name + '$' + link);
|
||||
}
|
||||
bookDetail.volumes = '全卷';
|
||||
bookDetail.urls = urls.join('#');
|
||||
playBook["最新章节"] = urls.slice(-10).join('#');
|
||||
playBook["目录"] = urls.join('#');
|
||||
|
||||
}
|
||||
bookDetail.volumes = _.keys(playBook).join('$$$');
|
||||
bookDetail.urls = _.values(playBook).join('$$$');
|
||||
|
||||
return bookDetail
|
||||
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@ import {_, load} from "../lib/cat.js";
|
||||
class MoviePortSpider extends Spider {
|
||||
constructor() {
|
||||
super();
|
||||
this.siteUrl = "https://www.dygangs.xyz"
|
||||
this.siteUrl = "https://www.dygangs.org"
|
||||
}
|
||||
|
||||
getAppName() {
|
||||
|
||||
@@ -66,28 +66,15 @@ class JianPianSpider extends Spider {
|
||||
let vodShort = new VodShort();
|
||||
vodShort.vod_id = data["id"]
|
||||
if (data["path"] !== undefined) {
|
||||
if (!this.catOpenStatus) {
|
||||
vodShort.vod_pic = data["path"] + "@Referer=www.jianpianapp.com@User-Agent=jianpian-version353@JPAUTH=y261ow7kF2dtzlxh1GS9EB8nbTxNmaK/QQIAjctlKiEv"
|
||||
} else {
|
||||
vodShort.vod_pic = this.jsBase + Utils.base64Encode(data["path"])
|
||||
}
|
||||
vodShort.vod_pic = this.jsBase + Utils.base64Encode(data["path"])
|
||||
} else {
|
||||
if (!this.catOpenStatus) {
|
||||
vodShort.vod_pic = data["thumbnail"] + "@Referer=www.jianpianapp.com@User-Agent=jianpian-version353@JPAUTH=y261ow7kF2dtzlxh1GS9EB8nbTxNmaK/QQIAjctlKiE"
|
||||
|
||||
} else {
|
||||
vodShort.vod_pic = this.jsBase + Utils.base64Encode(data["thumbnail"])
|
||||
}
|
||||
vodShort.vod_pic = this.jsBase + Utils.base64Encode(data["thumbnail"])
|
||||
}
|
||||
vodShort.vod_name = data["title"]
|
||||
if (this.catOpenStatus) {
|
||||
vodShort.vod_remarks = `评分:${data["score"]}`
|
||||
} else {
|
||||
if (data["playlist"] !== undefined) {
|
||||
vodShort.vod_remarks = `评分:${data["score"]}` + " " + data["playlist"]["title"]
|
||||
} else {
|
||||
vodShort.vod_remarks = `评分:${data["score"]}`
|
||||
}
|
||||
if (data["mask"] !== undefined){
|
||||
vodShort.vod_remarks = data["mask"]
|
||||
}else{
|
||||
vodShort.vod_remarks = data["playlist"]["title"]
|
||||
}
|
||||
vod_list.push(vodShort)
|
||||
}
|
||||
|
||||
@@ -15,11 +15,11 @@ import * as Utils from "../lib/utils.js";
|
||||
class JiuJiuLiuSpider extends Spider {
|
||||
constructor() {
|
||||
super();
|
||||
this.siteUrl = "https://www.cs1369.com"
|
||||
this.siteUrl = "https://www.ojig519d8se.icu"
|
||||
}
|
||||
|
||||
getName() {
|
||||
return "🥃┃九九六影视┃🥃"
|
||||
return "🔞┃九九六影视┃🔞"
|
||||
}
|
||||
|
||||
getAppName() {
|
||||
@@ -91,7 +91,7 @@ class JiuJiuLiuSpider extends Spider {
|
||||
}
|
||||
|
||||
async setClasses() {
|
||||
let html = await this.fetch(this.siteUrl, null, this.getHeader())
|
||||
let html = await this.fetch(this.siteUrl, null, this.getHeader(),false,false,0,true)
|
||||
if (html !== null) {
|
||||
let $ = load(html)
|
||||
let menuElements = $("[class=\"stui-header__menu type-slide\"]").find("a")
|
||||
|
||||
@@ -121,9 +121,11 @@ class LiuJiuShuSpider extends Spider {
|
||||
}
|
||||
let name = $($(urlElemnet).find("[class=\"title jcc\"]")).text()
|
||||
if (_.isEmpty(name)) {
|
||||
playBook[$(sectionElement).text()] = vodItems.join("#")
|
||||
let text = $(sectionElement).text().split("(")[0]
|
||||
playBook[text] = vodItems.join("#")
|
||||
} else {
|
||||
playBook[name] = vodItems.join("#")
|
||||
name = name.replaceAll("《","").replaceAll("》","").replaceAll(bookDetail.book_name,"")
|
||||
playBook[name] = vodItems.reverse().join("#")
|
||||
}
|
||||
}
|
||||
bookDetail.volumes = _.keys(playBook).join('$$$');
|
||||
|
||||
@@ -324,7 +324,7 @@ class Spider {
|
||||
method: "get", headers: headers, buffer: buffer, data: null, redirect: 2, proxy: proxy
|
||||
})
|
||||
} else {
|
||||
response = await req(uri.toString(), {method: "get", headers: headers, buffer: buffer, data: null,proxy:proxy});
|
||||
response = await req(uri.toString(), {method: "get", headers: headers, buffer: buffer, data: null,proxy:proxy,timeout:10000});
|
||||
}
|
||||
if (response.code === 200 || response.code === 302 || response.code === 301 || return_cookie) {
|
||||
return await this.getResponse(reqUrl, params, headers, redirect_url, return_cookie, buffer, response,proxy)
|
||||
|
||||
@@ -93,7 +93,7 @@ class StarSpider extends Spider {
|
||||
}
|
||||
|
||||
async setFilterObj() {
|
||||
for (const type_dic of this.classes.slice(1, 5)) {
|
||||
for (const type_dic of this.classes.slice(0, 4)) {
|
||||
let type_id = type_dic["type_id"]
|
||||
if (type_id !== "最近更新") {
|
||||
let url = this.siteUrl + `${type_id}/all/all/all`
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import {__jsEvalReturn} from './ttkan.js';
|
||||
import {__jsEvalReturn} from './mxanime.js';
|
||||
|
||||
import * as Utils from "../lib/utils.js";
|
||||
|
||||
@@ -51,14 +51,14 @@ async function testMusicPlay(vodDetail) {
|
||||
}
|
||||
|
||||
async function test() {
|
||||
let siteKey = 'ttkan';
|
||||
let siteType = 10;
|
||||
let siteKey = 'mxanime';
|
||||
let siteType = 3;
|
||||
await spider.init({
|
||||
skey: siteKey, stype: siteType, ext: {
|
||||
"token": "6827db23e5474d02a07fd7431d3d5a5a",
|
||||
"box": "CatOpen",
|
||||
"token": "51427b95ab9d47a6921a27951ebd3f1e",
|
||||
"box": "TV",
|
||||
"code": "1",
|
||||
"from": "cntv",
|
||||
"from": "star",
|
||||
"danmu": true,
|
||||
"cookie": "buvid3=02675249-8ED3-C418-87F5-59E18316459714816infoc; b_nut=1704421014; _uuid=5D435F74-F574-D9AB-62C1-B9294DE465D913102infoc; buvid_fp=e8c5650c749398e9b5cad3f3ddb5081e; buvid4=007E85D1-52C1-7E6E-07CF-837FFBC9349516677-024010502-J5vTDSZDCw4fNnXRejbSVg%3D%3D; rpdid=|()kYJmulRu0J'u~|RRJl)JR; PVID=1; SESSDATA=3be091d3%2C1720332009%2C699ed%2A11CjAcCdwXG5kY1umhCOpQHOn_WP7L9xFBfWO7KKd4BPweodpR6VyIfeNyPiRmkr5jCqsSVjg0R0dZOVVHRUo3RnhPRTZFc3JPbGdiUjFCdHpiRDhiTkticmdKTjVyS1VhbDdvNjFMSDJlbUJydUlRdjFUNGFBNkJlV2ZTa0N1Q1BEVi1QYTQzTUh3IIEC; bili_jct=b0ee7b5d3f27df893545d811d95506d4; DedeUserID=78014638; DedeUserID__ckMd5=4c8c5d65065e468a; enable_web_push=DISABLE; header_theme_version=CLOSE; home_feed_column=5; CURRENT_BLACKGAP=0; CURRENT_FNVAL=4048; b_lsid=75E916AA_18EA1A8D995; bsource=search_baidu; FEED_LIVE_VERSION=V_HEADER_LIVE_NO_POP; browser_resolution=1507-691; bili_ticket=eyJhbGciOiJIUzI1NiIsImtpZCI6InMwMyIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3MTIzNjk5MTMsImlhdCI6MTcxMjExMDY1MywicGx0IjotMX0.8zQW_fNTCSBlK_JkHnzu3gDw62wuTK1qgKcbGec3swM; bili_ticket_expires=171236985"
|
||||
}
|
||||
@@ -66,22 +66,32 @@ async function test() {
|
||||
|
||||
let classes = JSON.parse(await spider.home(true));
|
||||
console.debug(JSON.stringify(classes))
|
||||
|
||||
// 测试详情
|
||||
let detail1 = JSON.parse(await spider.detail("/novel/chapters/wanxiangzhiwang-tiancantudou"))
|
||||
await testMusicPlay(detail1)
|
||||
// 测试搜索
|
||||
let search_page = JSON.parse(await spider.search("甄嬛传", false, 1))
|
||||
console.debug(JSON.stringify(search_page))
|
||||
|
||||
//测试首页列表
|
||||
let homeVod = JSON.parse(await spider.homeVod())
|
||||
console.debug(JSON.stringify(homeVod));
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// 测试详情
|
||||
let detail1 = JSON.parse(await spider.detail("1872"))
|
||||
await testPlay(detail1)
|
||||
|
||||
|
||||
// 测试分类
|
||||
let catePage = JSON.parse(await spider.category("/novel/class/lianzai", "1", undefined, {"sort":"/novel/class/lianzai_efgh"}));
|
||||
let catePage = JSON.parse(await spider.category("2", "1", undefined, {}));
|
||||
console.debug(JSON.stringify(catePage))
|
||||
|
||||
|
||||
// 测试搜索
|
||||
let search_page = JSON.parse(await spider.search("完美世界", false, 1))
|
||||
console.debug(JSON.stringify(search_page))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -146,7 +146,7 @@ class TTKanSpider extends Spider {
|
||||
const playUrl = epName + "+" + `${id.replaceAll("/novel/chapters/","")}_${page}.html` ;
|
||||
nearVodItems.push(epName + '$' + playUrl)
|
||||
}
|
||||
playBook["最近章节"] = nearVodItems.join("#")
|
||||
playBook["最近章节"] = nearVodItems.reverse().join("#")
|
||||
let params = {"language":"cn","novel_id":id.replaceAll("/novel/chapters/",""),"__amp_source_origin":encodeURIComponent(this.siteUrl)}
|
||||
let resJSon = JSON.parse(await this.fetch(this.apiUrl + "/nq/amp_novel_chapters" ,params,this.getHeader()))
|
||||
let allVodItems = []
|
||||
@@ -156,7 +156,7 @@ class TTKanSpider extends Spider {
|
||||
allVodItems.push(epName + '$' + playUrl)
|
||||
}
|
||||
playBook["目录"] = allVodItems.join("#")
|
||||
bookDetail.volumes = _.keys(playBook).join('$$$');
|
||||
bookDetail.volumes = _.keys(playBook).join('$$$');
|
||||
bookDetail.urls = _.values(playBook).join('$$$');
|
||||
return bookDetail
|
||||
}
|
||||
|
||||
@@ -104,7 +104,7 @@ class WoggSpider extends Spider {
|
||||
vodShort.vod_id = $(item).find(".video-serial")[0].attribs.href;
|
||||
vodShort.vod_name = $(item).find(".video-serial")[0].attribs.title;
|
||||
vodShort.vod_pic = $(item).find(".module-item-pic > img")[0].attribs['data-src'];
|
||||
vodShort.vod_remarks = '';
|
||||
vodShort.vod_remarks = $($(item).find(".video-serial")[0]).text();
|
||||
vod_list.push(vodShort);
|
||||
}
|
||||
return vod_list
|
||||
|
||||
@@ -135,11 +135,18 @@ class DanmuSpider {
|
||||
}
|
||||
|
||||
async downloadDanmu(url) {
|
||||
let json = JSON.parse(await this.fetch(url, null, this.getHeader()))
|
||||
let xml = parseXML(json)
|
||||
let params = {"do": "set", "key": "danmu", "value": xml}
|
||||
await req("http://127.0.0.1:9978/cache", {method: "post", data: params, postType: "form-data"});
|
||||
return "http://127.0.0.1:9978/cache?do=get&key=danmu"
|
||||
// 如果没有找到弹幕的话,容易导致卡在这一步,从而导致结果加载不出来
|
||||
let response = await req(url,{headers:this.getHeader()})
|
||||
if (response.code === 200){
|
||||
let xml = parseXML(JSON.parse(response.content))
|
||||
let params = {"do": "set", "key": "danmu", "value": xml}
|
||||
await req("http://127.0.0.1:9978/cache", {method: "post", data: params, postType: "form-data"});
|
||||
return "http://127.0.0.1:9978/cache?do=get&key=danmu"
|
||||
}
|
||||
else{
|
||||
this.jadeLog.error(`弹幕请求失败,返回结果为:${JSON.stringify(response)}`)
|
||||
return ""
|
||||
}
|
||||
}
|
||||
|
||||
async search(vodDetail, episodeId) {
|
||||
|
||||
@@ -34,4 +34,4 @@ const Indexes = {
|
||||
'x-mac-cyrillic': [1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,8224,176,1168,163,167,8226,182,1030,174,169,8482,1026,1106,8800,1027,1107,8734,177,8804,8805,1110,181,1169,1032,1028,1108,1031,1111,1033,1113,1034,1114,1112,1029,172,8730,402,8776,8710,171,187,8230,160,1035,1115,1036,1116,1109,8211,8212,8220,8221,8216,8217,247,8222,1038,1118,1039,1119,8470,1025,1105,1103,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,8364]
|
||||
}
|
||||
|
||||
export default Indexes
|
||||
export {Indexes}
|
||||
@@ -1,5 +1,5 @@
|
||||
import { inRange } from './text_decoder_utils.js'
|
||||
import Indexes from './encoding-indexes.js'
|
||||
import {Indexes} from './encoding-indexes.js'
|
||||
|
||||
//
|
||||
// 6. Indexes
|
||||
|
||||
@@ -103,17 +103,6 @@
|
||||
"playerType": 0,
|
||||
"type": 3
|
||||
},
|
||||
{
|
||||
"key": "jiujiuliu",
|
||||
"name": "🥃┃九九六影视┃🥃",
|
||||
"api": "./js/jiujiuliu.js",
|
||||
"timeout": 30,
|
||||
"ext": {
|
||||
"box": "CatOpen"
|
||||
},
|
||||
"playerType": 0,
|
||||
"type": 3
|
||||
},
|
||||
{
|
||||
"key": "bilibili",
|
||||
"name": "🏰┃哔哩哔哩┃🏰",
|
||||
|
||||
@@ -102,17 +102,6 @@
|
||||
"playerType": 0,
|
||||
"type": 3
|
||||
},
|
||||
{
|
||||
"key": "jiujiuliu",
|
||||
"name": "🥃┃九九六影视┃🥃",
|
||||
"api": "./js/jiujiuliu.js",
|
||||
"timeout": 30,
|
||||
"ext": {
|
||||
"box": "TVBox"
|
||||
},
|
||||
"playerType": 0,
|
||||
"type": 3
|
||||
},
|
||||
{
|
||||
"key": "bilibili",
|
||||
"name": "🏰┃哔哩哔哩┃🏰",
|
||||
|
||||
Reference in New Issue
Block a user