This commit is contained in:
“lushunming” 2024-08-18 10:39:06 +08:00
parent e84976dc13
commit 2db4e11637
2 changed files with 569 additions and 268 deletions

View File

@ -1,138 +1,308 @@
//bbAeUBcmh0dHBzOi8vYW5kcm9pZGNhdHZvZHNwaWRlci5wYWdlcy5kZXYvanNvbi9qcy9rYW5rYW43
MC5qcx4uLi9saWIvdXRpbHMuanMaLi4vbGliL2NhdC5qcxouLi9saWIvdm9kLmpzFi4vc3BpZGVy
LmpzHF9fanNFdmFsUmV0dXJuDHNwaWRlcgJfCGxvYWQSVm9kRGV0YWlsEFZvZFNob3J0DFNwaWRl
chxLYW5rYW43MFNwaWRlcgpVdGlscxpnZXRfcXBfbmFtZTQ0CGluaXQIaG9tZQ5ob21lVm9kEGNh
dGVnb3J5DGRldGFpbAhwbGF5DHNlYXJjaA5nZXROYW1lFGdldEFwcE5hbWUSZ2V0SlNOYW1lDmdl
dFR5cGUecGFyYXNlVXJsT2JqZWN0MHBhcnNlVm9kU2hvcnRMaXN0RnJvbURvYypwYXJzZVZvZERl
dGFpbEZyb21Eb2MycGFyc2VWb2RTaG9ydExpc3RGcm9tSnNvbhRzZXRDbGFzc2VzEmdldEZpbHRl
chhzZXRGaWx0ZXJPYmoUc2V0SG9tZVZvZBZzZXRDYXRlZ29yeRJzZXREZXRhaWwSc2V0U2VhcmNo
DnFwX3R5cGUEemQFAGcnWQR5agU4bEVOBGhuBVtyW3IEZ3MFSVHibARzbgWwZRdnBHdsBaFtbo8E
bHoFb4JQWwRmcwVGAB+QBGZmBd6Y3pgEYmQFfnamXgR1awV3kVUABHdqBeBlKVkEYmoFa1ESYgR0
awUpWXp6BHNzBR+QH5AEa2IFd5GtZARzZAXqlTV1BHhrBQt3C3cEdHAF2G3YbQRqeQW+fPGCIGh0
dHA6Ly9jcWRiNi5jb20Oc2l0ZVVybBU92PrcAyU3ADAAC3cLdwMlPdj63Ak3ADAAC3cLdxBrYW5r
YW43MAxqc19zdHIYY29udGVudF9saXN0EnVybE9iamVjdA5qc19uYW1lDnBsYXlfaWQOcGxkeV9p
ZAxqc19rZXkCaQ5jb250ZW50EHBsYXlfdXJsGnBsYXlfdXJsX2xpc3QgcGxheV9mb3JtYXRfbGlz
dAZrZXkgcGxheV9mb3JtYXRfbmFtZRB2b2RJdGVtcwI7DmluZGV4T2YadmFyIGxpYW56YWlqcwI9
AiAMcGxfaWQ9CGxpc3QKcGxfZHkSdmFyIHBsX2R5EHBsYXlhcnJfAlsEPSICLAhwdXNoCGtleXMD
LHsDxpYCJAIjBiQkJBZwbGF5X2Zvcm1hdBB2b2RfbGlzdBh2b2RfZWxlbWVudHMWdm9kX2VsZW1l
bnQQdm9kU2hvcnQScmVtYXJrRWxlDmEubGktaHYCLw5hdHRyaWJzCGhyZWYMdm9kX2lkCnRpdGxl
EHZvZF9uYW1lCGZpbmQGaW1nGmRhdGEtb3JpZ2luYWwOdm9kX3BpYwhwLmJ6EGNoaWxkcmVuCGRh
dGEWdm9kX3JlbWFya3MSdm9kRGV0YWlsFmluZm9FbGVtZW50EmR0RWxlbWVudBBkZFN0cmluZxhb
Y2xhc3M9aW5mb10OZHQubmFtZQRkZAh0ZXh0GmdldFN0ckJ5UmVnZXgQdm9kX2FyZWEQdm9kX3ll
YXISdHlwZV9uYW1lGFtjbGFzcz1kZXMyXRRyZXBsYWNlQWxsAgoHZ1LFYBr/FnZvZF9jb250ZW50
EGltZy5sYXp5Bm9iahR2b2Rfb2JqZWN0BnVybAp0aHVtYgh0aW1lCGh0bWwQZWxlbWVudHMOZWxl
bWVudBZ0eXBlRWxlbWVudA50eXBlX2lkCmZldGNoEmdldEhlYWRlcg5pc0VtcHR5KFtjbGFzcz1p
bmRleC1saXN0LWxdKltjbGFzcz0iaDEgY2xlYXJmaXgiXQJhDmNsYXNzZXMWZXh0ZW5kX2xpc3QU
ZXh0ZW5kX2RpYxp0eXBlX2VsZW1lbnRzGHR5cGVfZWxlbWVudBh0eXBlX2lkX2xpc3Q0W2NsYXNz
PSJzeSBzY29uIGNsZWFyZml4Il0EZGwEZHQOcmVwbGFjZQMJYwMa/wVnUsVgBXRe404FMFc6UwJu
AnYSY2xhc3NfZGljCQBn0Y/0ZrBlEmZpbHRlck9iahZob21lVm9kTGlzdAZ0aWQEcGcMZmlsdGVy
DGV4dGVuZBRjbGFzc19uYW1lBGlkDmFwaV9zdHIMcGFyYW1zEmNhdGVfaHRtbAxhY3Rpb24QcGFy
c2VJbnQIcGFnZQh5ZWFyBmFsbAhhcmVhCGRlY3QOdm9kTGlzdBJkZXRhaWxVcmwMbWF0aGVyDGpz
X3VybBRwbGF5T2JqZWN0PGh0dHA6Ly90ZXN0LmdxeXk4LmNvbTo4MDc3L25lMhh2b2RfcGxheV91
cmwadm9kX3BsYXlfZnJvbQR3ZApxdWljaw5hcGlfdXJsGGNvbnRlbnRfanNvbhYvc2VhcmNoLnBo
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
/*
* @File : kankan70.js
* @Author : jade
* @Date : 2023/12/29 15:33
* @Email : jadehh@1ive.com
* @Software : Samples
* @Desc :
*/
import * as Utils from "../lib/utils.js";
import {_, load} from "../lib/cat.js";
import {VodDetail, VodShort} from "../lib/vod.js";
import {Spider} from "./spider.js";
function get_qp_name44(qp_type) {
if (qp_type === 'zd') return '最大';
if (qp_type === 'yj') return '永久';
if (qp_type === 'hn') return '牛牛';
if (qp_type === 'gs') return '光波';
if (qp_type === 'sn') return '新朗';
if (qp_type === 'wl') return '涡轮';
if (qp_type === 'lz') return '良子';
if (qp_type === 'fs') return 'F速';
if (qp_type === 'ff') return '飞飞';
if (qp_type === 'bd') return '百度';
if (qp_type === 'uk') return '酷U';
if (qp_type === 'wj') return '无天';
if (qp_type === 'bj') return '八戒';
if (qp_type === 'tk') return '天空';
if (qp_type === 'ss') return '速速';
if (qp_type === 'kb') return '酷播';
if (qp_type === 'sd') return '闪电';
if (qp_type === 'xk') return '看看';
if (qp_type === 'tp') return '淘淘';
if (qp_type === 'jy') return '精英';
return qp_type;
}
class Kankan70Spider extends Spider {
constructor() {
super();
this.siteUrl = "http://cqdb6.com";
}
getName() {
return "📺┃70看看┃📺"
}
getAppName() {
return "70看看"
}
getJSName() {
return "kankan70"
}
getType() {
return 3
}
paraseUrlObject(js_str) {
let content_list = js_str.split(";")
let urlObject = {}
let js_name = ""
let play_id = 0
let pldy_id = 0
let js_key = ""
for (let i = 0; i < content_list.length; i++) {
let content = content_list[i]
if (content.indexOf("var lianzaijs") > -1) {
js_name = content.split("=")[0].split(" ")[1]
js_key = js_name.split("_")[1]
} else if (content.indexOf("pl_id=") > -1) {
play_id = content.split("=")[1]
urlObject[js_name] = {"play_id": play_id, "list": [], "pl_dy": pldy_id}
} else if (content.indexOf("var pl_dy") > -1) {
pldy_id = content.split("=")[1]
}
if (content.indexOf(`playarr_${js_key}[`) > -1) {
let play_url = content.split("=\"")[1].split(",")[0]
urlObject[js_name]["list"].push(play_url)
}
}
let play_url_list = [], play_format_list = [];
for (const key of Object.keys(urlObject)) {
if (key.indexOf("_") > -1) {
let play_format_name = get_qp_name44(key.split("_")[1])
play_format_list.push(play_format_name)
let vodItems = []
let index = 0
for (const play_url of urlObject[key]["list"]) {
index = index + 1
vodItems.push("第" + index.toString() + "集" + "$" + play_url)
}
play_url_list.push(vodItems.join("#"))
}
}
return {"play_format": play_format_list.join("$$$"), "play_url": play_url_list.join("$$$")}
}
async parseVodShortListFromDoc($) {
let vod_list = []
let vod_elements = $("a.li-hv")
for (const vod_element of vod_elements) {
let vodShort = new VodShort()
vodShort.vod_id = "/" + vod_element.attribs["href"]
vodShort.vod_name = vod_element.attribs["title"]
vodShort.vod_pic = $(vod_element).find("img")[0].attribs["data-original"]
let remarkEle = $(vod_element).find("p.bz")[0]
if (remarkEle.length > 0) {
vodShort.vod_remarks = remarkEle.children[0].data
}
vod_list.push(vodShort)
}
return vod_list
}
async parseVodDetailFromDoc($) {
let vodDetail = new VodDetail()
let infoElement = $("[class=info]")
let dtElement = $(infoElement).find("dt.name")[0]
vodDetail.vod_name = dtElement.children[0].data
vodDetail.vod_remarks = dtElement.children[1].children[0].data
let ddString = $(infoElement).find("dd").text()
vodDetail.vod_area = Utils.getStrByRegex(/地区:(.*?) /, ddString)
vodDetail.vod_year = Utils.getStrByRegex(/年代:(.*?)\n/, ddString)
vodDetail.type_name = Utils.getStrByRegex(/类型:(.*?)\n/, ddString)
vodDetail.vod_content = $(infoElement).find("[class=des2]").text().replaceAll("\n", "").replaceAll("剧情:", "")
vodDetail.vod_pic = $("img.lazy")[0].attribs["data-original"]
return vodDetail
}
async parseVodShortListFromJson(obj) {
let vod_list = []
for (const vod_object of obj) {
let vodShort = new VodShort()
vodShort.vod_id = vod_object["url"]
vodShort.vod_pic = vod_object["thumb"]
vodShort.vod_remarks = vod_object["time"]
vodShort.vod_name = vod_object["title"]
vod_list.push(vodShort)
}
return vod_list
}
async setClasses() {
let html = await this.fetch(this.siteUrl, null, this.getHeader())
if (!_.isEmpty(html)) {
let $ = load(html)
let elements = $("[class=index-list-l]")
for (const element of elements) {
let typeElement = $($(element).find("[class=\"h1 clearfix\"]")[0]).find("a")
let type_id = typeElement[0].attribs["href"]
let type_name = $(typeElement[1]).text()
if (!_.isEmpty(type_name)) {
this.classes.push({"type_id": type_id, "type_name": type_name})
}
}
}
}
async getFilter(type_id) {
let url = this.siteUrl + type_id
let html = await this.fetch(url, null, this.getHeader())
let extend_list = []
if (!_.isEmpty(html)) {
let $ = load(html)
let elements = $("[class=\"sy scon clearfix\"]").find("dl")
let i = 0
for (const element of elements) {
let type_name = $($(element).find("dt")).text().replace("按", "").replace("", "")
let extend_dic = {
"key": (i + 1).toString(), "name": type_name, "value": []
}
let type_elements = $(element).find("a")
let index = 0
if (type_name === "剧情") {
index = 3
} else if (type_name === "年代") {
index = 2
} else if (type_name === "地区") {
index = 4
}
for (const type_element of type_elements) {
let type_id_list = type_element.attribs["href"].split("/")
extend_dic["value"].push({"n": $(type_element).text(), "v": type_id_list[index]})
}
extend_list.push(extend_dic)
i = i + 1
}
}
return extend_list
}
async setFilterObj() {
for (const class_dic of this.classes) {
let type_id = class_dic["type_id"]
if (type_id !== "最近更新") {
this.filterObj[type_id] = await this.getFilter(type_id)
}
}
}
async setHomeVod() {
let html = await this.fetch(this.siteUrl, null, this.getHeader())
if (!_.isEmpty(html)) {
let $ = load(html)
this.homeVodList = await this.parseVodShortListFromDoc($)
}
}
async setCategory(tid, pg, filter, extend) {
let url = this.siteUrl + tid
let html = await this.fetch(url, null, this.getHeader())
if (!_.isEmpty(html)) {
let class_name = tid.split("/")[1]
let id = tid.split("/")[2]
let api_str = Utils.getStrByRegex(/var _yu_gda_s="(.*?)";/, html)
let params = {
"action": class_name,
"page": parseInt(pg),
"year": extend["2"] ?? "0",
"area": extend["3"] ?? "all",
"class": extend["1"] ?? "0",
"dect": "",
"id": id
}
let cate_html = await this.fetch(api_str, params, this.getHeader())
if (cate_html !== null) {
let $ = load(cate_html)
this.vodList = await this.parseVodShortListFromDoc($)
}
}
}
async setDetail(id) {
let detailUrl = this.siteUrl + id
let html = await this.fetch(detailUrl, null, this.getHeader())
if (!_.isEmpty(html)) {
let $ = load(html)
this.vodDetail = await this.parseVodDetailFromDoc($)
let mather = /<script type="text\/javascript" src="http:\/\/test.gqyy8.com:8077\/ne2(.*?)"><\/script>/g.exec(html)
let js_url = "http://test.gqyy8.com:8077/ne2" + mather[1]
let js_str = await this.fetch(js_url, null, this.getHeader())
if (!_.isEmpty(js_str)) {
let playObject = this.paraseUrlObject(js_str)
this.vodDetail.vod_play_url = playObject["play_url"]
this.vodDetail.vod_play_from = playObject["play_format"]
}
}
}
async setSearch(wd, quick) {
let url = this.siteUrl + "/search.php"
let html = await this.fetch(url, null, this.getHeader())
if (!_.isEmpty(html)) {
let params = {
"top": 10, "q": wd,
}
let api_url = Utils.getStrByRegex(/var my_search='(.*?)';/, html)
let content = await this.fetch(api_url, params, this.getHeader())
if (!_.isEmpty(content)) {
let content_json = JSON.parse(content.replaceAll("",""))
this.vodList = await this.parseVodShortListFromJson(content_json)
}
}
}
}
let spider = new Kankan70Spider()
async function init(cfg) {
await spider.init(cfg)
}
async function home(filter) {
return await spider.home(filter)
}
async function homeVod() {
return await spider.homeVod()
}
async function category(tid, pg, filter, extend) {
return await spider.category(tid, pg, filter, extend)
}
async function detail(id) {
return await spider.detail(id)
}
async function play(flag, id, flags) {
return await spider.play(flag, id, flags)
}
async function search(wd, quick) {
return await spider.search(wd, quick)
}
export function __jsEvalReturn() {
return {
init: init, home: home, homeVod: homeVod, category: category, detail: detail, play: play, search: search,
};
}
export {spider}

View File

@ -1,130 +1,261 @@
//bbAsgBdGh0dHBzOi8vYW5kcm9pZGNhdHZvZHNwaWRlci5wYWdlcy5kZXYvanNvbi9qcy9uZXd2aXNp
b24uanMaLi4vbGliL3ZvZC5qcx4uLi9saWIvdXRpbHMuanMWLi9zcGlkZXIuanMaLi4vbGliL2Nh
dC5qcxxfX2pzRXZhbFJldHVybgxzcGlkZXISVm9kRGV0YWlsEFZvZFNob3J0DFNwaWRlcgxDcnlw
dG8eTmV3VmlzaW9uU3BpZGVyClV0aWxzCGluaXQIaG9tZQ5ob21lVm9kEGNhdGVnb3J5DGRldGFp
bAhwbGF5DHNlYXJjaBRnZXRBcHBOYW1lDmdldE5hbWUSZ2V0SlNOYW1lDmdldFR5cGUUc2V0Q2xh
c3NlcxJnZXRGaWx0ZXIYc2V0RmlsdGVyT2JqMHBhcnNlVm9kU2hvcnRMaXN0RnJvbURvYzJwYXJz
ZVZvZFNob3J0TGlzdEZyb21Kc29uKnBhcnNlVm9kRGV0YWlsRnJvbURvYxRzZXRIb21lVm9kFnNl
dENhdGVnb3J5EnNldERldGFpbAZ1aWMOc2V0UGxheRJzZXRTZWFyY2guaHR0cHM6Ly93d3cuNjA4
MHl5My5jb20Oc2l0ZVVybAuwZcaJyYlxX2KWFz3YPNwDJbBlxonJiXFfYpYDJT3YPNwSbmV3dmlz
aW9uAiQWbmF2RWxlbWVudHMUbmF2RWxlbWVudA50eXBlX2lkEnR5cGVfbmFtZQ5nZXRIdG1sMFtj
bGFzcz0ibmF2LW1lbnUtaXRlbXMiXQhmaW5kAmEaZ2V0U3RyQnlSZWdleA5hdHRyaWJzCGhyZWYK
dGl0bGUSaXNOdW1lcmljDmNsYXNzZXMIcHVzaBRnZXRUeXBlRGljEGVsZW1lbnRzFmV4dGVuZF9s
aXN0GnR5cGVfa2V5X2xpc3QCaRRleHRlbmRfZGljBmVsZRh0eXBlX2lkX2xpc3QwW2NsYXNzPSdz
Y3JvbGwtY29udGVudCddCnNsaWNlCHRleHQGa2V5BWhR6JACbgJ2Ai0kZGVjb2RlVVJJQ29tcG9u
ZW50EHR5cGVfZGljBnVybAkAZ9GP9GawZRIvdm9kc2hvdy8gLS0tLS0tLS0tLS0uaHRtbBJmaWx0
ZXJPYmoKaXRlbXMQdm9kX2xpc3QIaXRlbRB2b2RTaG9ydAhvbmVBGC5tb2R1bGUtaXRlbUoubW9k
dWxlLWl0ZW0tY292ZXIgLm1vZHVsZS1pdGVtLXBpYyBhCmZpcnN0CGF0dHIMdm9kX2lkEHZvZF9u
YW1lTi5tb2R1bGUtaXRlbS1jb3ZlciAubW9kdWxlLWl0ZW0tcGljIGltZxBkYXRhLXNyYw52b2Rf
cGljDmluZGV4T2YYaW1nLnBocD91cmw9Ii5tb2R1bGUtaXRlbS10ZXh0FnZvZF9yZW1hcmtzBm9i
agxyZXN1bHQIRGF0YQ52b2RfdXJsFHJlcGxhY2VBbGwIaHRtbBJ2b2REZXRhaWwgdm9kRGV0YWls
RWxlbWVudBh0eXBlRWxlbWVudHMSdHlwZV9saXN0FnR5cGVFbGVtZW50GGl0ZW1FbGVtZW50cxRh
Y3Rvcl9saXN0GGFjdG9yRWxlbWVudChwbGF5ZXJmb3JtYXRFbGVtZW50cx5wbGF5VXJsRWxlbWVu
dHMkdm9kX3BsYXlfZnJvbV9saXN0GnZvZF9wbGF5X2xpc3QicGxheUZvcm1hdEVsZW1lbnQWZm9y
bWF0X25hbWUQdm9kSXRlbXMccGxheVVybEVsZW1lbnQWZXBpc29kZU5hbWUUZXBpc29kZVVybDRb
Y2xhc3M9ImJveCB2aWV3LWhlYWRpbmciXShbY2xhc3M9InBhZ2UtdGl0bGUiXSRbY2xhc3M9InRh
Zy1saW5rIl0Qdm9kX2FyZWECLzRbY2xhc3M9InZpZGVvLWluZm8taXRlbXMiXRh2b2RfZGlyZWN0
b3IyW2NsYXNzPSJtb2R1bGUtaXRlbS1waWMiXQZpbWcSdm9kX2FjdG9yMltjbGFzcz0idmlkZW8t
aW5mby1pdGVtIl0Qdm9kX3llYXJwW2NsYXNzPSJ2aWRlby1pbmZvLWl0ZW0gdmlkZW8taW5mby1j
b250ZW50IHZvZF9jb250ZW50Il0CCgIJBwkANmV3jRZ2b2RfY29udGVudERbY2xhc3M9Im1vZHVs
ZS10YWItaXRlbSB0YWItaXRlbSJdMFtjbGFzcz0ic2Nyb2xsLWNvbnRlbnQiXSZkYXRhLWRyb3Bk
b3duLXZhbHVlBThZS1ECIwYkJCQadm9kX3BsYXlfZnJvbRh2b2RfcGxheV91cmwWaG9tZVZvZExp
c3QGdGlkBHBnDGZpbHRlcgxleHRlbmQSdXJsUGFyYW1zDHJlcVVybAloUeiQZ1LFYAloUeiQ9mX0
lQloUeiQMFc6Uwn2ZfSVkmOPXiYvaW5kZXgucGhwL3ZvZHNob3cvCi5odG1sDnZvZExpc3QEaWQG
dWlkBHV0BG1tEmRlY3J5cHRlZAZlbmMIVXRmOApwYXJzZQx0Qjk1OUMgMkYxMzFCRTkxMjQ3ODY2
RQZBRVMOZGVjcnlwdARpdghtb2RlBkNCQwZwYWQKUGtjczcOcGFkZGluZxJzdHJpbmdpZnkIZmxh
Zw5wbGF5VXJsDG5ld1VybApwbGF5JBBwbGF5SHRtbBRwbGF5Q29uZmlnGFtpZD0iYmZ1cmwiXQho
dHRwoAFodHRwczovL2ppZXhpLnhuLS0xbHE5MGkxM214azVib2xobThrLnhuLS1maXFzOHMvcGxh
eWVyL2VjLnBocD9jb2RlPWFrJmlmPTEmdXJsPQxjb25maWcEd2QKcXVpY2sOY29udGVudH5odHRw
Oi8vMTIzLjIwNy4xNTAuMjUzL3p4YXBpL3B1YmxpYy8/c2VydmljZT1BcHAuRi5GZXRjaCZyZXFf
cD0UJnR5cGU9NjA4MApmZXRjaBJnZXRIZWFkZXIGY2ZnEHNlZ21lbnRzDmhlYWRlcnMPwgMExAPG
A8gDygMCAA/MAwAGzgMABQDQAwAB0gMAAvoBAQPUAwIE1gMDDgAGAaABAAIAAxAa1wEC2AMCADDs
AQMBcNADAAzSAwEM2gMCDdQDAwzWAwQM2AMACc4DAQncAwIB3gMDAeADBAHiAwUB5AMGAeYDBwHo
AwgBhgIJAcwDCgEI6i/AEV8HAMASXwgAwBNfCQDAFF8KAMAVXwsAwBZfDADAF18NAMAYXw4AwBlf
DwApYQAAZQMAYQEAvwBW7AAAAAHAAVT1AAAAAMACVPYAAAAAwANU9wAAAADABFT4AAAAAMAFVPkA
AAAAwAZU+gAAAADAB1T7AAAAAMAIVPwAAAAAwAlU/QAAAADAClT+AAAAAMALVP8AAAAAwAxUAAEA
AADADVQBAQAAAMAOVAIBAAAAwA9UAwEAAADAEFQEAQAAAAbKDs1oAQBfBQBlBQARIQAAXwYAKcID
ATcBADEeABEQAAgILQAICAAIFgAIKAAIFgAIJAAIGAAIXgAICgAIKAAICgAIDgAIHgAIDCw2AApe
DsYHAQAAAwADAQA0A+QBAAEA4gEAAQAQAAEg7AEBDQwCyQwDymECACvFNMYhAAARZAIAZQAAEeoI
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
KysrLA==
/*
* @File : newvision.js
* @Author : jade
* @Date : 2024/2/20 14:14
* @Email : jadehh@1ive.com
* @Software : Samples
* @Desc : 新视觉影院
*/
import {VodDetail, VodShort} from "../lib/vod.js"
import * as Utils from "../lib/utils.js";
import {Spider} from "./spider.js";
import {Crypto} from "../lib/cat.js";
class NewVisionSpider extends Spider {
constructor() {
super();
this.siteUrl = "https://www.6080yy3.com"
}
getAppName() {
return "新视觉影院"
}
getName() {
return "🐼┃新视觉影院┃🐼"
}
getJSName() {
return "newvision"
}
getType() {
return 3
}
async setClasses() {
let $ = await this.getHtml()
let navElements = $($("[class=\"nav-menu-items\"]")[0]).find("a")
for (const navElement of navElements) {
let type_id = Utils.getStrByRegex(/\/vodtype\/(.*?).html/, navElement.attribs.href)
let type_name = navElement.attribs.title
if (Utils.isNumeric(type_id)) {
this.classes.push(this.getTypeDic(type_name, type_id))
}
}
}
async getFilter($) {
let elements = $("[class='scroll-content']").slice(1)
let extend_list = []
let type_key_list = [3, 1, 11, 2]
for (let i = 0; i < elements.length; i++) {
let name = $($(elements[i]).find("a")[0]).text()
let extend_dic = {"key": name, "name": name, "value": []}
extend_dic["name"] = name
extend_dic["value"].push({"n": "全部", "v": "0"})
for (const ele of $(elements[i]).find("a").slice(1)) {
let type_id_list = Utils.getStrByRegex(/\/vodshow\/(.*?).html/, ele.attribs.href).split("-")
extend_dic["value"].push({
"n": $(ele).text(), "v": decodeURIComponent(type_id_list[type_key_list[i]])
})
}
extend_list.push(extend_dic)
}
return extend_list
}
async setFilterObj() {
for (const type_dic of this.classes) {
let type_id = type_dic["type_id"]
if (type_id !== "最近更新") {
let url = this.siteUrl + `/vodshow/${type_id}-----------.html`
let $ = await this.getHtml(url)
this.filterObj[type_id] = await this.getFilter($)
}
}
}
async parseVodShortListFromDoc($) {
let items = $('.module-item');
let vod_list = [];
for (const item of items) {
let vodShort = new VodShort()
let oneA = $(item).find('.module-item-cover .module-item-pic a').first();
vodShort.vod_id = oneA.attr('href');
vodShort.vod_name = oneA.attr('title');
vodShort.vod_pic = $(item).find('.module-item-cover .module-item-pic img').first().attr('data-src');
if (vodShort.vod_pic.indexOf("img.php?url=") > 0) {
vodShort.vod_pic = vodShort.vod_pic.split("img.php?url=")[1]
}
vodShort.vod_remarks = $(item).find('.module-item-text').first().text();
vod_list.push(vodShort)
}
return vod_list
}
async parseVodShortListFromJson(obj) {
let vod_list = []
for (const result of obj["Data"]["result"]){
let vodShort = new VodShort()
vodShort.vod_id = result["vod_url"].replaceAll(this.siteUrl,"")
vodShort.vod_pic = result["vod_pic"]
vodShort.vod_name = result["vod_name"]
vod_list.push(vodShort)
}
return vod_list
}
async parseVodDetailFromDoc($) {
let html = $.html()
let vodDetail = new VodDetail()
let vodDetailElement = $("[class=\"box view-heading\"]")
vodDetail.vod_name = $($(vodDetailElement).find("[class=\"page-title\"]")).text()
let typeElements = $($(vodDetailElement).find("[class=\"tag-link\"]").find("a"))
vodDetail.vod_area = $($(vodDetailElement).find("[class=\"tag-link\"]").slice(-1)[0]).text()
let type_list = []
for (const typeElement of typeElements) {
type_list.push($(typeElement).text())
}
vodDetail.type_name = type_list.join("/")
let itemElements = $(vodDetailElement).find("[class=\"video-info-items\"]")
vodDetail.vod_director = $($(itemElements[0]).find("a")).text()
let actor_list = []
for (const actorElement of $(itemElements[1]).find("a")) {
actor_list.push($(actorElement).text())
}
vodDetail.vod_pic = $($(vodDetailElement).find("[class=\"module-item-pic\"]")).find("img")[0].attribs["data-src"]
vodDetail.vod_actor = actor_list.join("/")
vodDetail.vod_year = $($(itemElements[2]).find("[class=\"video-info-item\"]")).text()
vodDetail.vod_remarks = $($(itemElements[3]).find("[class=\"video-info-item\"]")).text()
vodDetail.vod_content = $($(itemElements[5]).find("[class=\"video-info-item video-info-content vod_content\"]")).text().replaceAll("\n", "\t").replaceAll("\t收起", "")
let playerformatElements = $("[class=\"module-tab-item tab-item\"]")
let playUrlElements = $("[class=\"scroll-content\"]")
let vod_play_from_list = []
let vod_play_list = []
for (let i = 0; i < playerformatElements.length; i++) {
let playFormatElement = playerformatElements[i]
let format_name = playFormatElement.attribs["data-dropdown-value"]
if (format_name.indexOf("夸克") === -1) {
vod_play_from_list.push(format_name)
let vodItems = []
for (const playUrlElement of $(playUrlElements[i]).find("a")) {
let episodeName = $(playUrlElement).text()
let episodeUrl = playUrlElement.attribs.href
vodItems.push(episodeName + "$" + episodeUrl)
}
vod_play_list.push(vodItems.join("#"))
}
}
vodDetail.vod_play_from = vod_play_from_list.join("$$$")
vodDetail.vod_play_url = vod_play_list.join("$$$")
return vodDetail
}
async setHomeVod() {
let $ = await this.getHtml()
this.homeVodList = await this.parseVodShortListFromDoc($)
}
async setCategory(tid, pg, filter, extend) {
let urlParams = [tid.toString(), "", "", "", "", "", "", "", pg.toString(), "", "", ""]
let type_key_list = [3, 11, 1, 2]
if (extend["全部剧情"] !== undefined && extend["全部剧情"] !== "0") {
urlParams[type_key_list[0]] = extend["全部剧情"]
}
if (extend["全部时间"] !== undefined && extend["全部时间"] !== "0") {
urlParams[type_key_list[1]] = extend["全部时间"]
}
if (extend["全部地区"] !== undefined && extend["全部地区"] !== "0") {
urlParams[type_key_list[2]] = extend["全部地区"]
}
if (extend["时间排序"] !== undefined && extend["时间排序"] !== "0") {
urlParams[type_key_list[3]] = extend["时间排序"]
}
let reqUrl = this.siteUrl + '/index.php/vodshow/' + urlParams.join("-") + '.html';
let $ = await this.getHtml(reqUrl)
this.vodList = await this.parseVodShortListFromDoc($)
}
async setDetail(id) {
let $ = await this.getHtml(this.siteUrl + id)
this.vodDetail = await this.parseVodDetailFromDoc($)
}
uic(url,uid){
let ut = Crypto.enc.Utf8.parse('2890'+uid+'tB959C')
let mm = Crypto.enc.Utf8.parse("2F131BE91247866E")
let decrypted = Crypto.AES.decrypt(url, ut, {iv: mm, mode: Crypto.mode.CBC, padding: Crypto.pad.Pkcs7});
return Crypto.enc.Utf8.stringify(decrypted);
}
async setPlay(flag, id, flags) {
let $ = await this.getHtml(this.siteUrl + id)
let playUrl = $("[id=\"bfurl\"]")[0].attribs.href
if (playUrl.indexOf("http") > -1){
this.playUrl = playUrl
}else{
//需要解析URL,支持弹幕
let newUrl = "https://jiexi.xn--1lq90i13mxk5bolhm8k.xn--fiqs8s/player/ec.php?code=ak&if=1&url=" + playUrl
let play$ = await this.getHtml(newUrl)
let playHtml = play$.html()
let playConfig = JSON.parse(Utils.getStrByRegex(/let ConFig = (.*?),box = /,playHtml))
this.playUrl = this.uic(playConfig["url"],playConfig["config"]["uid"])
}
}
async setSearch(wd, quick) {
let url = `http://123.207.150.253/zxapi/public/?service=App.F.Fetch&req_p=${wd}&type=6080`
let content = await this.fetch(url,null,this.getHeader())
this.vodList = await this.parseVodShortListFromJson(JSON.parse(content))
}
}
let spider = new NewVisionSpider()
async function init(cfg) {
await spider.init(cfg)
}
async function home(filter) {
return await spider.home(filter)
}
async function homeVod() {
return await spider.homeVod()
}
async function category(tid, pg, filter, extend) {
return await spider.category(tid, pg, filter, extend)
}
async function detail(id) {
return await spider.detail(id)
}
async function play(flag, id, flags) {
return await spider.play(flag, id, flags)
}
async function search(wd, quick) {
return await spider.search(wd, quick)
}
async function proxy(segments, headers) {
return await spider.proxy(segments, headers)
}
export function __jsEvalReturn() {
return {
init: init,
home: home,
homeVod: homeVod,
category: category,
detail: detail,
play: play,
search: search,
proxy: proxy
};
}
export {spider}