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 * @File : kankan70.js
LmpzHF9fanNFdmFsUmV0dXJuDHNwaWRlcgJfCGxvYWQSVm9kRGV0YWlsEFZvZFNob3J0DFNwaWRl * @Author : jade
chxLYW5rYW43MFNwaWRlcgpVdGlscxpnZXRfcXBfbmFtZTQ0CGluaXQIaG9tZQ5ob21lVm9kEGNh * @Date : 2023/12/29 15:33
dGVnb3J5DGRldGFpbAhwbGF5DHNlYXJjaA5nZXROYW1lFGdldEFwcE5hbWUSZ2V0SlNOYW1lDmdl * @Email : jadehh@1ive.com
dFR5cGUecGFyYXNlVXJsT2JqZWN0MHBhcnNlVm9kU2hvcnRMaXN0RnJvbURvYypwYXJzZVZvZERl * @Software : Samples
dGFpbEZyb21Eb2MycGFyc2VWb2RTaG9ydExpc3RGcm9tSnNvbhRzZXRDbGFzc2VzEmdldEZpbHRl * @Desc :
chhzZXRGaWx0ZXJPYmoUc2V0SG9tZVZvZBZzZXRDYXRlZ29yeRJzZXREZXRhaWwSc2V0U2VhcmNo */
DnFwX3R5cGUEemQFAGcnWQR5agU4bEVOBGhuBVtyW3IEZ3MFSVHibARzbgWwZRdnBHdsBaFtbo8E import * as Utils from "../lib/utils.js";
bHoFb4JQWwRmcwVGAB+QBGZmBd6Y3pgEYmQFfnamXgR1awV3kVUABHdqBeBlKVkEYmoFa1ESYgR0 import {_, load} from "../lib/cat.js";
awUpWXp6BHNzBR+QH5AEa2IFd5GtZARzZAXqlTV1BHhrBQt3C3cEdHAF2G3YbQRqeQW+fPGCIGh0 import {VodDetail, VodShort} from "../lib/vod.js";
dHA6Ly9jcWRiNi5jb20Oc2l0ZVVybBU92PrcAyU3ADAAC3cLdwMlPdj63Ak3ADAAC3cLdxBrYW5r import {Spider} from "./spider.js";
YW43MAxqc19zdHIYY29udGVudF9saXN0EnVybE9iamVjdA5qc19uYW1lDnBsYXlfaWQOcGxkeV9p
ZAxqc19rZXkCaQ5jb250ZW50EHBsYXlfdXJsGnBsYXlfdXJsX2xpc3QgcGxheV9mb3JtYXRfbGlz function get_qp_name44(qp_type) {
dAZrZXkgcGxheV9mb3JtYXRfbmFtZRB2b2RJdGVtcwI7DmluZGV4T2YadmFyIGxpYW56YWlqcwI9 if (qp_type === 'zd') return '最大';
AiAMcGxfaWQ9CGxpc3QKcGxfZHkSdmFyIHBsX2R5EHBsYXlhcnJfAlsEPSICLAhwdXNoCGtleXMD if (qp_type === 'yj') return '永久';
LHsDxpYCJAIjBiQkJBZwbGF5X2Zvcm1hdBB2b2RfbGlzdBh2b2RfZWxlbWVudHMWdm9kX2VsZW1l if (qp_type === 'hn') return '牛牛';
bnQQdm9kU2hvcnQScmVtYXJrRWxlDmEubGktaHYCLw5hdHRyaWJzCGhyZWYMdm9kX2lkCnRpdGxl if (qp_type === 'gs') return '光波';
EHZvZF9uYW1lCGZpbmQGaW1nGmRhdGEtb3JpZ2luYWwOdm9kX3BpYwhwLmJ6EGNoaWxkcmVuCGRh if (qp_type === 'sn') return '新朗';
dGEWdm9kX3JlbWFya3MSdm9kRGV0YWlsFmluZm9FbGVtZW50EmR0RWxlbWVudBBkZFN0cmluZxhb if (qp_type === 'wl') return '涡轮';
Y2xhc3M9aW5mb10OZHQubmFtZQRkZAh0ZXh0GmdldFN0ckJ5UmVnZXgQdm9kX2FyZWEQdm9kX3ll if (qp_type === 'lz') return '良子';
YXISdHlwZV9uYW1lGFtjbGFzcz1kZXMyXRRyZXBsYWNlQWxsAgoHZ1LFYBr/FnZvZF9jb250ZW50 if (qp_type === 'fs') return 'F速';
EGltZy5sYXp5Bm9iahR2b2Rfb2JqZWN0BnVybAp0aHVtYgh0aW1lCGh0bWwQZWxlbWVudHMOZWxl if (qp_type === 'ff') return '飞飞';
bWVudBZ0eXBlRWxlbWVudA50eXBlX2lkCmZldGNoEmdldEhlYWRlcg5pc0VtcHR5KFtjbGFzcz1p if (qp_type === 'bd') return '百度';
bmRleC1saXN0LWxdKltjbGFzcz0iaDEgY2xlYXJmaXgiXQJhDmNsYXNzZXMWZXh0ZW5kX2xpc3QU if (qp_type === 'uk') return '酷U';
ZXh0ZW5kX2RpYxp0eXBlX2VsZW1lbnRzGHR5cGVfZWxlbWVudBh0eXBlX2lkX2xpc3Q0W2NsYXNz if (qp_type === 'wj') return '无天';
PSJzeSBzY29uIGNsZWFyZml4Il0EZGwEZHQOcmVwbGFjZQMJYwMa/wVnUsVgBXRe404FMFc6UwJu if (qp_type === 'bj') return '八戒';
AnYSY2xhc3NfZGljCQBn0Y/0ZrBlEmZpbHRlck9iahZob21lVm9kTGlzdAZ0aWQEcGcMZmlsdGVy if (qp_type === 'tk') return '天空';
DGV4dGVuZBRjbGFzc19uYW1lBGlkDmFwaV9zdHIMcGFyYW1zEmNhdGVfaHRtbAxhY3Rpb24QcGFy if (qp_type === 'ss') return '速速';
c2VJbnQIcGFnZQh5ZWFyBmFsbAhhcmVhCGRlY3QOdm9kTGlzdBJkZXRhaWxVcmwMbWF0aGVyDGpz if (qp_type === 'kb') return '酷播';
X3VybBRwbGF5T2JqZWN0PGh0dHA6Ly90ZXN0LmdxeXk4LmNvbTo4MDc3L25lMhh2b2RfcGxheV91 if (qp_type === 'sd') return '闪电';
cmwadm9kX3BsYXlfZnJvbQR3ZApxdWljaw5hcGlfdXJsGGNvbnRlbnRfanNvbhYvc2VhcmNoLnBo if (qp_type === 'xk') return '看看';
cAZ0b3ACcQpwYXJzZQP//gZjZmcIZmxhZw+kAwSmA6gDqgOsAwIAEK4DAAiwAwAGAPoBAAGyAwEC if (qp_type === 'tp') return '淘淘';
tAMBA7YDAgS4AwIFugMDDgAGAaABAAIAAxEZzwECvAMCADDsAQMBcL4DAA2yAwEMtAMCDLYDAwy4 if (qp_type === 'jy') return '精英';
AwQMugMFDMADAAG8AwEJsAMCCcIDAwHEAwQBxgMFAcgDBgHKAwcBzAMIAc4DCQGuAwoBCOgvvgBf
BgC+EV8JAL4SXwoAvhNfCwC+FF8MAL4VXw0AvhZfDgC+F18PAL4YXxAAKWEAAGUFAGEBAL0BVt4A return qp_type;
AAABvgJU6AAAAAC+A1TpAAAAAL4EVOoAAAAAvgVU6wAAAAC+BlTsAAAAAL4HVO0AAAAAvghU7gAA }
AAC+CVTvAAAAAL4KVPAAAAAAvgtU8QAAAAC+DFTyAAAAAL4NVPMAAAAAvg5U9AAAAAC+D1T1AAAA
AL4QVPYAAAAABsgOy2gBAF8HAGUHABEhAABfCAAppAMBNgEAMVAAERAACAgACAgACAgACFAACCIA
CCAACBoACCAACEIACBIACBAACDIACCIACCArNgAKSA5DBgHAAwEAAQIAAK4CAe4DAAEAzwT4AAAA class Kankan70Spider extends Spider {
q+gHBPkAAAAozwT6AAAAq+gHBPsAAAAozwT8AAAAq+gHBP0AAAAozwT+AAAAq+gHBP8AAAAozwQA constructor() {
AQAAq+gHBAEBAAAozwQCAQAAq+gHBAMBAAAozwQEAQAAq+gHBAUBAAAozwQGAQAAq+gHBAcBAAAo super();
zwQIAQAAq+gHBAkBAAAozwQKAQAAq+gHBAsBAAAozwQMAQAAq+gHBA0BAAAozwQOAQAAq+gHBA8B this.siteUrl = "http://cqdb6.com";
AAAozwQQAQAAq+gHBBEBAAAozwQSAQAAq+gHBBMBAAAozwQUAQAAq+gHBBUBAAAozwQWAQAAq+gH }
BBcBAAAozwQYAQAAq+gHBBkBAAAozwQaAQAAq+gHBBsBAAAozwQcAQAAq+gHBB0BAAAozwQeAQAA
q+gHBB8BAAAozyikAw4WA05OTk5OTk5OTk5OTk5OTk5OTk5PCA7GBwEAAAMAAwEANAPkAQABAOIB getName() {
AAEAEAABIOwBAQ0MAscMA8hhAgArwzTEIQAAEWQCAGUAABHoCGICABskAAAODmICAAQgAQAAQyEB return "📺┃70看看┃📺"
AABiAgAopAMpBDWARBIOQgcBAAAAAAEAAAYABCIBAAAopAMuAgMcDkIHAQAAAAABAAAGAAQjAQAA }
KKQDMgIDHA5CBwEAAAAAAQAABgAEJAEAACikAzYCAxwOQgcBAAAAAAEAAAIAtiikAzoCAwgOQgcB
AAEQAQsBAJ8FEcoEAAEAzAQBACDOBAEBINAEAQIg0gQBAyDUBAEEINYEAQUg2AQCCyDaBAMHINwE getAppName() {
Cwgg3gQBBiDgBAEKIOIEDAsw5AQPDCDmBA8NIK4BDw4g3AQQDzDAAwYAYQoAYQkAYQUAYQQAYQMA return "70看看"
YQIAYQEAYQAAz0JdAAAABDQBAAAkAQDHC8i/ybPKs8EEv8EFYQYAs8EGYgYAYgAA56NpSgEAAGEH }
AGIAAGIGAEfBB2IHAEI1AQAABDYBAAAkAQCypehAYgcAQl0AAAAENwEAACQBALNHQl0AAAAEOAEA
ACQBALRHEWMCAA5iAgBCXQAAAATZAAAAJAEAtEcRYwUADup6YgcAQjUBAAAEOQEAACQBALKl6Dti getJSName() {
BwBCXQAAAAQ3AQAAJAEAtEcRYwMADmIBAGICAHELYgMATCkBAAAmAABMOgEAAGIEAEw7AQAASeos return "kankan70"
YgcAQjUBAAAEPAEAACQBALKl6BhiBwBCXQAAAAQ3AQAAJAEAtEcRYwQADmIHAEI1AQAABD0BAABC }
XAAAAGIFAAQ+AQAAJAIAJAEAsqXoQGEIAGIHAEJdAAAABD8BAAAkAQC0R0JdAAAABEABAAAkAQCz
R8EIYgEAYgIARwQ6AQAAR0JBAQAAYggAJAEADmIGAJFjBgAO66/+JgAAwQkmAADBCmELADiPAAAA getType() {
QkIBAABiAQAkAQB9678AwQtiCwBCNQEAAATZAAAAJAEAsqVpqAAAAGEOAGENAGEMANtiCwBCXQAA return 3
AATZAAAAJAEAtEftwQxiCgBCQQEAAGIMACQBAA4mAADBDbPBDmEPAGIBAGILAEcEOgEAAEd96jrB }
D2IOALSdEWMOAA5iDQBCQQEAAARDAQAAYg4AQjcAAAAkAACdBEQBAACdBEUBAACdYg8AnSQBAA6A
AOjEDoNiCQBCQQEAAGINAEJbAAAABEYBAAAkAQAkAQAOgABpQP///w6DC2IKAEJbAAAABEcBAAAk paraseUrlObject(js_str) {
AQBMSAEAAGIJAEJbAAAABEcBAAAkAQBMLgEAACikAz4je04NDQ0SEnEwZ8F2cXaocXfGsoE6NYCj let content_list = js_str.split(";")
cU4cEmw15CGQMNoOYgcBAAEFAQcBANUBBooFAAEAkgUBACCUBQEBIJYFAgIwmAUDAyCaBQMEILgD let urlObject = {}
BAxhAQBhAAAmAADHzwROAQAA7chhAgBiAQB9664AyWEEAGEDAGUAABEhAADKYgMABE8BAABiAgBB let js_name = ""
UAEAAARRAQAAR51DUgEAAGIDAGICAEFQAQAABFMBAABHQ1QBAABiAwDPYgIA7UJVAQAABFYBAAAk let play_id = 0
AQCzR0FQAQAABFcBAABHQ1gBAADPYgIA7UJVAQAABFkBAAAkAQCzR8EEYgQA57Ol6BhiAwBiBABB let pldy_id = 0
WgEAALNHQVsBAABDXAEAAGIAAEJBAQAAYgMAJAEADoAAaVH///8Og2IAAC6kA2YNIRcrWCuPccZx let js_key = ""
K3dOMA5iBwEAAQQBBQIGsAIFigUAAQC6BQEAILwFAQEgvgUBAiDABQEDILYDAwy+AwAMYQMAYQIA for (let i = 0; i < content_list.length; i++) {
YQEAYQAAZQAAESEAAMfPBGEBAADtyM9iAQDtQlUBAAAEYgEAACQBALNHyWIAAGICAEFaAQAAs0dB let content = content_list[i]
WwEAAENUAQAAYgAAYgIAQVoBAAC0R0FaAQAAs0dBWwEAAENcAQAAz2IBAO1CVQEAAARjAQAAJAEA if (content.indexOf("var lianzaijs") > -1) {
QmQBAAAkAADKYgAAZQEAQmUBAAC9AL0BM2IDACQCAENmAQAAYgAAZQEAQmUBAAC9Ar0DM2IDACQC js_name = content.split("=")[0].split(" ")[1]
AENnAQAAYgAAZQEAQmUBAAC9BL0FM2IDACQCAENoAQAAYgAAz2IBAO1CVQEAAARpAQAAJAEAQmQB js_key = js_name.split("_")[1]
AAAkAABCagEAAARrAQAAvyQCAEJqAQAABGwBAAC/JAIAQ20BAABiAADPBG4BAADts0dBUAEAAARX } else if (content.indexOf("pl_id=") > -1) {
AQAAR0NYAQAAYgAALqQDdw4/KytsdpmKioqKAD4CkAcTMFc6Uxr/KAAuACoAPwApACAAB2QAAgAr play_id = content.split("=")[1]
AAAACAYAAAAEB/X///8LAAEwVwE6UwEa/wsBCAYAAAADB/X///8MAQEgAAwACgcVdF7jThr/KAAu urlObject[js_name] = {"play_id": play_id, "list": [], "pl_dy": pldy_id}
ACoAPwApAFwAbgAHZAACACsAAAAIBgAAAAQH9f///wsAAXReAeNOARr/CwEIBgAAAAMH9f///wwB } else if (content.indexOf("var pl_dy") > -1) {
AQoADAAKBxV7fItXGv8oAC4AKgA/ACkAXABuAAdkAAIAKwAAAAgGAAAABAf1////CwABe3wBi1cB pldy_id = content.split("=")[1]
Gv8LAQgGAAAAAwf1////DAEBCgAMAAoOYgcBAAEDAQYBAHcE3gUAAQCSBQEAIOAFAgEwmAUDAiC4 }
AwQMYQAAJgAAx2EBAM996mDIYQIAZQAAESEAAMliAgBiAQAEcQEAAEdDUgEAAGICAGIBAARyAQAA if (content.indexOf(`playarr_${js_key}[`) > -1) {
R0NYAQAAYgIAYgEABHMBAABHQ1wBAABiAgBiAQAEUwEAAEdDVAEAAGIAAEJBAQAAYgIAJAEADoAA let play_url = content.split("=\"")[1].split(",")[0]
6J4Og2IAAC6kA4cBChIXOitYWFhYTiEOYgcBAAAIAAcCAO8BCOgFAQAgigUDASDqBQMCIOwFBAMw urlObject[js_name]["list"].push(play_url)
7gUFBCDwBQUFINAFBQYgEAABALIDAQy0AwIMCMEHYQAAwAdCeQEAAMAHQSEBAAAHwAdCegEAACQA }
ACQDAIvHZQAAQnsBAABiAAAkAQCWabkAAABhAgBhAQBlAQBiAADtyGIBAAR8AQAA7clhAwBiAgB9 }
64wAymEGAGEFAGEEAGIBAGIBAGIDAO1CVQEAAAR9AQAAJAEAs0ftQlUBAAAEfgEAACQBAMEEYgQA let play_url_list = [], play_format_list = [];
s0dBUAEAAARRAQAAR8EFYgEAYgQAtEftQmQBAAAkAADBBmUAAEJ7AQAAYgYAJAEAlugiwAdBfwEA for (const key of Object.keys(urlObject)) {
AEJBAQAAC2IFAEx4AQAAYgYATGgBAAAkAQAOgABpc////w6DBi6kA5QBDCGZhSs1Z9BdYlipMQ5i if (key.indexOf("_") > -1) {
BwEAAQ4BCwIAyQMP8AUAAQDiBQEAIOgFAQEggAYBAiCKBQMDIOoFAwQg2AQDBSDsBQQGMNAFBQcg let play_format_name = get_qp_name44(key.split("_")[1])
ggYFCCCEBgUJIK4BBQoghgYMCzCIBg0MIBAAAQCyAwEMtAMCDAjBDWECAGEBAGEAAMANQSEBAADP play_format_list.push(play_format_name)
ncfADUJ5AQAAYgAAB8ANQnoBAAAkAAAkAwCLyCYAAMllAABCewEAAGIBACQBAJZpgQEAAGEFAGEE let vodItems = []
AGEDAGUBAGIBAO3KYgMABIUBAADtQlUBAAAEhgEAACQBAMEEs8EFYQYAYgQAfetAAcEGYQoAYQkA let index = 0
YQgAYQcAYgMAYgMAYgYA7UJVAQAABIcBAAAkAQDtQmQBAAAkAABCiAEAAASJAQAAvyQCAEKIAQAA for (const play_url of urlObject[key]["list"]) {
BIoBAAC/JAIAwQcLYgUAtJ1CNwAAACQAAEwxAQAAYgcATDYAAAAmAABMQAAAAMEIYgMAYgYA7UJV index = index + 1
AQAABH4BAAAkAQDBCbPBCmIHAASLAQAAq+gJthFjCgAO6iViBwAEjAEAAKvoCbURYwoADuoSYgcA vodItems.push("第" + index.toString() + "集" + "$" + play_url)
BI0BAACr6Ae3EWMKAA5hCwBiCQB96lbBC2EMAGILAEFQAQAABFEBAABHQl0AAAAETwEAACQBAMEM }
YggABEAAAABHQkEBAAALYgMAYgsA7UJkAQAAJAAATI4BAABiDABiCgBHTI8BAAAkAQAOgADoqA6D play_url_list.push(vodItems.join("#"))
YgIAQkEBAABiCAAkAQAOYgUAtJ0RYwUADoAAab/+//8Og2ICAC6kA6QBID81hReUK3sSewA+Agit }
DXESOiFEIUQiSZQAMwIhTjUxDmIHAQAAAwAIAABHA6AGAgAw8AUDASAQAAEACMlhAADFQX8BAAB9 }
6jLHYQEAYgAABHgBAABHyGIBAASRAQAArOgZxUGSAQAAYgEAccVC8QAAAGIBACQBAItJgADozA6D return {"play_format": play_format_list.join("$$$"), "play_url": play_url_list.join("$$$")}
Bi6kA8UBBg1TNTp8IQ5iBwEAAAMABgIAUQPoBQEAIIoFAwEgEAABALIDAQy0AwIMCMlhAADFQnkB }
AADFQSEBAAAHxUJ6AQAAJAAAJAMAi8dlAABCewEAAGIAACQBAJboH2EBAGUBAGIAAO3IxcVC7QAA
AGIBACQBAItDkwEAAAYupAPOAQUcimcrYw5iBwEABAkEBgMHpQINqAYAAQCqBgABAKwGAAEArgYA async parseVodShortListFromDoc($) {
AQDiBQEAIOgFAQEgsAYDAiCyBgMDILQGAwQgtgYDBSC4BgMGIIoFBQcgEAABALIDAQy+AwAMtAMC let vod_list = []
DAjBCGEBAGEAAMAIQSEBAADPncfACEJ5AQAAYgAAB8AIQnoBAAAkAAAkAwCLyGUAAEJ7AQAAYgEA let vod_elements = $("a.li-hv")
JAEAlmnmAAAAYQYAYQUAYQQAYQMAYQIAz0JdAAAABE8BAAAkAQC0R8nPQl0AAAAETwEAACQBALVH for (const vod_element of vod_elements) {
ymUBAEJlAQAAvQC9ATNiAQAkAgDBBAtiAgBMnQEAADieAQAA0O1MnwEAANK9AkcRsOgEDr0DTKAB let vodShort = new VodShort()
AADSvQRHEbDoBw4EoQEAAEyiAQAA0r0FRxGw6AQOvQZMHgAAAL9MowEAAGIDAEyZAQAAwQXACEJ5 vodShort.vod_id = "/" + vod_element.attribs["href"]
AQAAYgQAYgUAwAhCegEAACQAACQDAIvBBmIGAPHpImEHAGUCAGIGAO3BB8AIwAhC7QAAAGIHACQB vodShort.vod_name = vod_element.attribs["title"]
AItDpAEAAAYupAPWARYwNYWyWFhsCCs/U2JTISsNlDAwABUIByx2YXIgX3l1X2dkYV9zPSIoLio/ vodShort.vod_pic = $(vod_element).find("img")[0].attribs["data-original"]
KSI7B7IBAAIAUgAAAAgGAAAABAf1////CwABdgABYQABcgABIAABXwABeQABdQABXwABZwABZAAB let remarkEle = $(vod_element).find("p.bz")[0]
YQABXwABcwABPQABIgALAQgGAAAAAwf1////DAEBIgABOwAMAAoHAjIHAjAHAjMHAjEHAjAOYgcB if (remarkEle.length > 0) {
AAEIAQYCAvIBCbIGAAEAygYBACDoBQEBIIoFAwIgzAYDAyDOBgMEIMoEAwUg0AYFBiAQAAEAsgMB vodShort.vod_remarks = remarkEle.children[0].data
DLQDAgwIwQdhAQBhAADAB0EhAQAAz53HwAdCeQEAAGIAAAfAB0J6AQAAJAAAJAMAi8hlAABCewEA }
AGIBACQBAJZpswAAAGEFAGEEAGEDAGECAGUBAGIBAO3JwAfAB0LuAAAAYgIAJAEAi0NdAQAAvQC9 vod_list.push(vodShort)
ATNChgAAAGIBACQBAMoEqQEAAGIDALRHncEEwAdCeQEAAGIEAAfAB0J6AQAAJAAAJAMAi8EFZQAA }
QnsBAABiBQAkAQCW6D1hBgDAB0LsAAAAYgUAJAEAwQbAB0FdAQAAYgYABC4BAABHQ6oBAADAB0Fd return vod_list
AQAAYgYABEgBAABHQ6sBAAAGLqQD7wENMDWFoytsWESKZ05sbgeuATxzY3JpcHQgdHlwZT0idGV4 }
dFwvamF2YXNjcmlwdCIgc3JjPSJodHRwOlwvXC90ZXN0LmdxeXk4LmNvbTo4MDc3XC9uZTIoLio/
KSI+PFwvc2NyaXB0PgeSBAECAAIBAAAIBgAAAAQH9f///wsAATwAAXMAAWMAAXIAAWkAAXAAAXQA async parseVodDetailFromDoc($) {
ASAAAXQAAXkAAXAAAWUAAT0AASIAAXQAAWUAAXgAAXQAAS8AAWoAAWEAAXYAAWEAAXMAAWMAAXIA let vodDetail = new VodDetail()
AWkAAXAAAXQAASIAASAAAXMAAXIAAWMAAT0AASIAAWgAAXQAAXQAAXAAAToAAS8AAS8AAXQAAWUA let infoElement = $("[class=info]")
AXMAAXQAAwFnAAFxAAF5AAF5AAE4AAMBYwABbwABbQABOgABOAABMAABNwABNwABLwABbgABZQAB let dtElement = $(infoElement).find("dt.name")[0]
MgALAQgGAAAAAwf1////DAEBIgABPgABPAABLwABcwABYwABcgABaQABcAABdAABPgAMAAoOYgcB vodDetail.vod_name = dtElement.children[0].data
AAIHAgYCAtkBCdgGAAEA2gYAAQDiBQEAIOgFAQEgtgYDAiDcBgMDINoEAwQg3gYFBSAQAAEAsgMB vodDetail.vod_remarks = dtElement.children[1].children[0].data
DL4DAAwIwQZhAQBhAADABkEhAQAABLABAACdx8AGQnkBAABiAAAHwAZCegEAACQAACQDAIvIZQAA let ddString = $(infoElement).find("dd").text()
QnsBAABiAQAkAQCWaZYAAABhBABhAwBhAgALuwpMsQEAAM9MsgEAAMllAQBCZQEAAL0AvQEzYgEA vodDetail.vod_area = Utils.getStrByRegex(/地区:(.*?) /, ddString)
JAIAysAGQnkBAABiAwBiAgDABkJ6AQAAJAAAJAMAi8EEZQAAQnsBAABiBAAkAQCW6DlhBQA4mAAA vodDetail.vod_year = Utils.getStrByRegex(/年代:(.*?)\n/, ddString)
AEKzAQAAYgQAQmoBAAAEtAEAAL8kAgAkAQDBBcAGwAZC7wAAAGIFACQBAItDpAEAAAYupAOAAgww vodDetail.type_name = Utils.getStrByRegex(/类型:(.*?)\n/, ddString)
SYWUCEQIZ5Rno24HLHZhciBteV9zZWFyY2g9JyguKj8pJzsHsgEAAgBSAAAACAYAAAAEB/X///8L vodDetail.vod_content = $(infoElement).find("[class=des2]").text().replaceAll("\n", "").replaceAll("剧情:", "")
AAF2AAFhAAFyAAEgAAFtAAF5AAFfAAFzAAFlAAFhAAFyAAFjAAFoAAE9AAEnAAsBCAYAAAADB/X/ vodDetail.vod_pic = $("img.lazy")[0].attribs["data-original"]
//8MAQEnAAE7AAwACg5iBgHCAwEAAQMBABAB6gYAAQCwAwgIZQAAQuEAAADPJAEAiw4GLqQDkwIC
A0kOYgYBxAMBAAEDAQAOAawGAAEAsAMICGUAAELiAAAAzyQBAIsupAOXAgEDDmIGAcYDAAAAAgEA return vodDetail
DQCwAwgIZQAAQuMAAAAkAACLLqQDmwIBAw5iBgHIAwQABAYBABEEqAYAAQCqBgABAKwGAAEArgYA }
AQCwAwgIZQAAQuQAAADP0NHSJAQAiy6kA58CAQMOYgYBygMBAAEDAQAOAbIGAAEAsAMICGUAAELl
AAAAzyQBAIsupAOjAgEDDmIGAcwDAwADBQEAEAPsBgABALIGAAEA2gEAAQCwAwgIZQAAQuYAAADP async parseVodShortListFromJson(obj) {
0NEkAwCLLqQDpwIBAw5iBgHOAwIAAgQBAA8C2AYAAQDaBgABALADCAhlAABC5wAAAM/QJAIAiy6k let vod_list = []
A6sCAQMOQwYBrgMAAAACBwAyAMIDCQDEAwoAxgMLAMgDDADKAw0AzAMOAM4DDwAL20zhAAAA3Ezi for (const vod_object of obj) {
AAAA3UzjAAAA3kzkAAAAXgQATOUAAABeBQBM5gAAAF4GAEznAAAAKKQDrwIDAwj0 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 * @File : newvision.js
dC5qcxxfX2pzRXZhbFJldHVybgxzcGlkZXISVm9kRGV0YWlsEFZvZFNob3J0DFNwaWRlcgxDcnlw * @Author : jade
dG8eTmV3VmlzaW9uU3BpZGVyClV0aWxzCGluaXQIaG9tZQ5ob21lVm9kEGNhdGVnb3J5DGRldGFp * @Date : 2024/2/20 14:14
bAhwbGF5DHNlYXJjaBRnZXRBcHBOYW1lDmdldE5hbWUSZ2V0SlNOYW1lDmdldFR5cGUUc2V0Q2xh * @Email : jadehh@1ive.com
c3NlcxJnZXRGaWx0ZXIYc2V0RmlsdGVyT2JqMHBhcnNlVm9kU2hvcnRMaXN0RnJvbURvYzJwYXJz * @Software : Samples
ZVZvZFNob3J0TGlzdEZyb21Kc29uKnBhcnNlVm9kRGV0YWlsRnJvbURvYxRzZXRIb21lVm9kFnNl * @Desc : 新视觉影院
dENhdGVnb3J5EnNldERldGFpbAZ1aWMOc2V0UGxheRJzZXRTZWFyY2guaHR0cHM6Ly93d3cuNjA4 */
MHl5My5jb20Oc2l0ZVVybAuwZcaJyYlxX2KWFz3YPNwDJbBlxonJiXFfYpYDJT3YPNwSbmV3dmlz import {VodDetail, VodShort} from "../lib/vod.js"
aW9uAiQWbmF2RWxlbWVudHMUbmF2RWxlbWVudA50eXBlX2lkEnR5cGVfbmFtZQ5nZXRIdG1sMFtj import * as Utils from "../lib/utils.js";
bGFzcz0ibmF2LW1lbnUtaXRlbXMiXQhmaW5kAmEaZ2V0U3RyQnlSZWdleA5hdHRyaWJzCGhyZWYK import {Spider} from "./spider.js";
dGl0bGUSaXNOdW1lcmljDmNsYXNzZXMIcHVzaBRnZXRUeXBlRGljEGVsZW1lbnRzFmV4dGVuZF9s import {Crypto} from "../lib/cat.js";
aXN0GnR5cGVfa2V5X2xpc3QCaRRleHRlbmRfZGljBmVsZRh0eXBlX2lkX2xpc3QwW2NsYXNzPSdz
Y3JvbGwtY29udGVudCddCnNsaWNlCHRleHQGa2V5BWhR6JACbgJ2Ai0kZGVjb2RlVVJJQ29tcG9u
ZW50EHR5cGVfZGljBnVybAkAZ9GP9GawZRIvdm9kc2hvdy8gLS0tLS0tLS0tLS0uaHRtbBJmaWx0 class NewVisionSpider extends Spider {
ZXJPYmoKaXRlbXMQdm9kX2xpc3QIaXRlbRB2b2RTaG9ydAhvbmVBGC5tb2R1bGUtaXRlbUoubW9k constructor() {
dWxlLWl0ZW0tY292ZXIgLm1vZHVsZS1pdGVtLXBpYyBhCmZpcnN0CGF0dHIMdm9kX2lkEHZvZF9u super();
YW1lTi5tb2R1bGUtaXRlbS1jb3ZlciAubW9kdWxlLWl0ZW0tcGljIGltZxBkYXRhLXNyYw52b2Rf this.siteUrl = "https://www.6080yy3.com"
cGljDmluZGV4T2YYaW1nLnBocD91cmw9Ii5tb2R1bGUtaXRlbS10ZXh0FnZvZF9yZW1hcmtzBm9i }
agxyZXN1bHQIRGF0YQ52b2RfdXJsFHJlcGxhY2VBbGwIaHRtbBJ2b2REZXRhaWwgdm9kRGV0YWls
RWxlbWVudBh0eXBlRWxlbWVudHMSdHlwZV9saXN0FnR5cGVFbGVtZW50GGl0ZW1FbGVtZW50cxRh getAppName() {
Y3Rvcl9saXN0GGFjdG9yRWxlbWVudChwbGF5ZXJmb3JtYXRFbGVtZW50cx5wbGF5VXJsRWxlbWVu return "新视觉影院"
dHMkdm9kX3BsYXlfZnJvbV9saXN0GnZvZF9wbGF5X2xpc3QicGxheUZvcm1hdEVsZW1lbnQWZm9y }
bWF0X25hbWUQdm9kSXRlbXMccGxheVVybEVsZW1lbnQWZXBpc29kZU5hbWUUZXBpc29kZVVybDRb
Y2xhc3M9ImJveCB2aWV3LWhlYWRpbmciXShbY2xhc3M9InBhZ2UtdGl0bGUiXSRbY2xhc3M9InRh getName() {
Zy1saW5rIl0Qdm9kX2FyZWECLzRbY2xhc3M9InZpZGVvLWluZm8taXRlbXMiXRh2b2RfZGlyZWN0 return "🐼┃新视觉影院┃🐼"
b3IyW2NsYXNzPSJtb2R1bGUtaXRlbS1waWMiXQZpbWcSdm9kX2FjdG9yMltjbGFzcz0idmlkZW8t }
aW5mby1pdGVtIl0Qdm9kX3llYXJwW2NsYXNzPSJ2aWRlby1pbmZvLWl0ZW0gdmlkZW8taW5mby1j getJSName() {
b250ZW50IHZvZF9jb250ZW50Il0CCgIJBwkANmV3jRZ2b2RfY29udGVudERbY2xhc3M9Im1vZHVs return "newvision"
ZS10YWItaXRlbSB0YWItaXRlbSJdMFtjbGFzcz0ic2Nyb2xsLWNvbnRlbnQiXSZkYXRhLWRyb3Bk }
b3duLXZhbHVlBThZS1ECIwYkJCQadm9kX3BsYXlfZnJvbRh2b2RfcGxheV91cmwWaG9tZVZvZExp
c3QGdGlkBHBnDGZpbHRlcgxleHRlbmQSdXJsUGFyYW1zDHJlcVVybAloUeiQZ1LFYAloUeiQ9mX0 getType() {
lQloUeiQMFc6Uwn2ZfSVkmOPXiYvaW5kZXgucGhwL3ZvZHNob3cvCi5odG1sDnZvZExpc3QEaWQG return 3
dWlkBHV0BG1tEmRlY3J5cHRlZAZlbmMIVXRmOApwYXJzZQx0Qjk1OUMgMkYxMzFCRTkxMjQ3ODY2 }
RQZBRVMOZGVjcnlwdARpdghtb2RlBkNCQwZwYWQKUGtjczcOcGFkZGluZxJzdHJpbmdpZnkIZmxh async setClasses() {
Zw5wbGF5VXJsDG5ld1VybApwbGF5JBBwbGF5SHRtbBRwbGF5Q29uZmlnGFtpZD0iYmZ1cmwiXQho let $ = await this.getHtml()
dHRwoAFodHRwczovL2ppZXhpLnhuLS0xbHE5MGkxM214azVib2xobThrLnhuLS1maXFzOHMvcGxh let navElements = $($("[class=\"nav-menu-items\"]")[0]).find("a")
eWVyL2VjLnBocD9jb2RlPWFrJmlmPTEmdXJsPQxjb25maWcEd2QKcXVpY2sOY29udGVudH5odHRw for (const navElement of navElements) {
Oi8vMTIzLjIwNy4xNTAuMjUzL3p4YXBpL3B1YmxpYy8/c2VydmljZT1BcHAuRi5GZXRjaCZyZXFf let type_id = Utils.getStrByRegex(/\/vodtype\/(.*?).html/, navElement.attribs.href)
cD0UJnR5cGU9NjA4MApmZXRjaBJnZXRIZWFkZXIGY2ZnEHNlZ21lbnRzDmhlYWRlcnMPwgMExAPG let type_name = navElement.attribs.title
A8gDygMCAA/MAwAGzgMABQDQAwAB0gMAAvoBAQPUAwIE1gMDDgAGAaABAAIAAxAa1wEC2AMCADDs if (Utils.isNumeric(type_id)) {
AQMBcNADAAzSAwEM2gMCDdQDAwzWAwQM2AMACc4DAQncAwIB3gMDAeADBAHiAwUB5AMGAeYDBwHo this.classes.push(this.getTypeDic(type_name, type_id))
AwgBhgIJAcwDCgEI6i/AEV8HAMASXwgAwBNfCQDAFF8KAMAVXwsAwBZfDADAF18NAMAYXw4AwBlf }
DwApYQAAZQMAYQEAvwBW7AAAAAHAAVT1AAAAAMACVPYAAAAAwANU9wAAAADABFT4AAAAAMAFVPkA }
AAAAwAZU+gAAAADAB1T7AAAAAMAIVPwAAAAAwAlU/QAAAADAClT+AAAAAMALVP8AAAAAwAxUAAEA }
AADADVQBAQAAAMAOVAIBAAAAwA9UAwEAAADAEFQEAQAAAAbKDs1oAQBfBQBlBQARIQAAXwYAKcID
ATcBADEeABEQAAgILQAICAAIFgAIKAAIFgAIJAAIGAAIXgAICgAIKAAICgAIDgAIHgAIDCw2AApe async getFilter($) {
DsYHAQAAAwADAQA0A+QBAAEA4gEAAQAQAAEg7AEBDQwCyQwDymECACvFNMYhAAARZAIAZQAAEeoI let elements = $("[class='scroll-content']").slice(1)
YgIAGyQAAA4OYgIABAUBAABDBgEAAGICACjCAxAENYBEEg5CBwEAAAAAAQAABgAEBwEAACjCAxUC let extend_list = []
AxwOQgcBAAAAAAEAAAYABAgBAAAowgMZAgMcDkIHAQAAAAABAAAGAAQJAQAAKMIDHAIDHA5CBwEA let type_key_list = [3, 1, 11, 2]
AAAAAQAAAgC4KMIDIAIDCA5iBwEAAAYACQECpwEGlAQBACCWBAEBIJgEAgIwmgQDAyCcBAMEIBAA for (let i = 0; i < elements.length; i++) {
AQDaAwIMCMMFYQEAYQAAwgVCDwEAACQAAIvJYgAAYgAABBABAADvtUfvQhEBAAAEEgEAACQBAMph let name = $($(elements[i]).find("a")[0]).text()
AgBiAQB97GXLYQQAYQMAZQAAQhMBAAC/AL8BM2ICAEEUAQAAQRUBAAAkAgDMYgIAQRQBAABBFgEA let extend_dic = {"key": name, "name": name, "value": []}
AMMEZQAAQhcBAABiAwAkAQDqIcIFQRgBAABCGQEAAMIFQhoBAABiBABiAwAkAgAkAQAOgADqmQ6D extend_dic["name"] = name
Bi7CAyMJMD+UU5lOU6QhBypcL3ZvZHR5cGVcLyguKj8pLmh0bWwHnAEAAgBHAAAACAYAAAAEB/X/ extend_dic["value"].push({"n": "全部", "v": "0"})
//8LAAEvAAF2AAFvAAFkAAF0AAF5AAFwAAFlAAEvAAsBCAYAAAADB/X///8MAQMBaAABdAABbQAB for (const ele of $(elements[i]).find("a").slice(1)) {
bAAMAAoOYgcBAAEIAQoBA+QCCZQEAAEAtgQBACC4BAEBILoEAQIgvAQCAyBsAwQgvgQDBSDABAQG let type_id_list = Utils.getStrByRegex(/\/vodshow\/(.*?).html/, ele.attribs.href).split("-")
MMIEBQcg2gMCDGECAGEBAGEAANEEIgEAAO9CIwEAALYkAQDJJgAAyri2vQu3JgQAy2EDALXMYgMA extend_dic["value"].push({
YgAA6aNpKwEAAGEFAGEEANHRYgAAYgMAR+9CEQEAAAQSAQAAJAEAtUfvQiQBAAAkAADDBAtiBABM "n": $(ele).text(), "v": decodeURIComponent(type_id_list[type_key_list[i]])
JQEAAGIEAEw2AAAAJgAATEAAAADDBWIFAAQ2AAAAcWIEAEliBQAEQAAAAEdCGQEAAAsEJgEAAEwn })
AQAAvwBMKAEAACQBAA5hBgDRYgAAYgMAR+9CEQEAAAQSAQAAJAEAQiMBAAC2JAEAfextwwZhBwBl }
AABCEwEAAL8BvwIzYgYAQRQBAABBFQEAACQCAEJdAAAABCkBAAAkAQDDB2IFAARAAAAAR0IZAQAA extend_list.push(extend_dic)
C9FiBgDvQiQBAAAkAABMJwEAADgqAQAAYgcAYgIAYgMAR0fvTCgBAAAkAQAOgADqkQ6DYgEAQhkB }
AABiBQAkAQAOYgMAkWMDAA7tzv5iAQAuwgMvETBYFzB7t4pEt9XfTssXIU46BwIwBypcL3ZvZHNo return extend_list
b3dcLyguKj8pLmh0bWwHnAEAAgBHAAAACAYAAAAEB/X///8LAAEvAAF2AAFvAAFkAAFzAAFoAAFv }
AAF3AAEvAAsBCAYAAAADB/X///8MAQMBaAABdAABbQABbAAMAAoOYgcBAAAFAAgAAH4F1gQCADCa
BAMBINgEBQIglAQFAyAQAAEACMMEYQAAwgRBGAEAAH3sZ8lhAQBiAAAEDQEAAEfKYgEABC0BAACs async setFilterObj() {
6k5hAwBhAgDCBEEGAQAABC4BAABCXAAAAGIBAAQvAQAAJAIAncvCBEIPAQAAYgIAJAEAi8zCBEEw for (const type_dic of this.classes) {
AQAAYgEAccIEQvoAAABiAwAkAQCLSYAA6pcOgwYuwgNDCBJYNViZToYhDmIHAQABBQEHAQCkAgaU let type_id = type_dic["type_id"]
BAABAOIEAQAg5AQBASDmBAICMOgEAwMg6gQDBCDSAwEMYQEAYQAA0QQ2AQAA78kmAADKYQIAYgAA if (type_id !== "最近更新") {
fe39AMthBABhAwBlAAARIQAAzNFiAgDvQhEBAAAENwEAACQBAEI4AQAAJAAAwwRiAwBiBABCOQEA let url = this.siteUrl + `/vodshow/${type_id}-----------.html`
AAQVAQAAJAEAQzoBAABiAwBiBABCOQEAAAQWAQAAJAEAQzsBAABiAwDRYgIA70IRAQAABDwBAAAk let $ = await this.getHtml(url)
AQBCOAEAACQAAEI5AQAABD0BAAAkAQBDPgEAAGIDAEE+AQAAQj8BAAAEQAEAACQBALWl6iBiAwBi this.filterObj[type_id] = await this.getFilter($)
AwBBPgEAAEJdAAAABEABAAAkAQC2R0M+AQAAYgMA0WICAO9CEQEAAARBAQAAJAEAQjgBAAAkAABC }
JAEAACQAAENCAQAAYgEAQhkBAABiAwAkAQAOgABpAv///w6DYgEALsIDTg4hKxdYK497e+6An9VO }
MA5iBwEAAQQBCAEAgwEFhgUAAQDkBAEAIIgFAgEw6AQDAiAQAAEA0gMBDAjMYQAAJgAAyWEBANEE }
RQEAAEcERAEAAEd97F7KYQIAZQAAESEAAMtiAgBiAQAERgEAAEdCRwEAAMhBBgEAAMEkAgBDOgEA
AGICAGIBAAQ+AQAAR0M+AQAAYgIAYgEABDsBAABHQzsBAABiAABCGQEAAGICACQBAA6AAOqgDoNi async parseVodShortListFromDoc($) {
AAAuwgNgCRwXdiujWFhOIQ5iBwEAARQBBwEAiQcVlAQAAQCQBQEAIJIFAQEglAUBAiCWBQEDIJgF let items = $('.module-item');
AQQgmgUCDTCcBQEFIJ4FAQcgoAUEDTCiBQEIIKQFAQogpgUBCyCoBQEMILwEBg0gqgUHDiCsBQcP let vod_list = [];
IK4FCRAgsAUKETCyBQsSILQFCxMg0AMADGEMAGELAGEKAGEJAGEHAGEGAGEEAGEDAGECAGEBAGEA for (const item of items) {
ANFCSAEAACQAAMllAAARIQAAytEEWwEAAO/LYgEA0dFiAgDvQhEBAAAEXAEAACQBAO9CJAEAACQA let vodShort = new VodShort()
AEM7AQAA0dFiAgDvQhEBAAAEXQEAACQBAEIRAQAABBIBAAAkAQDvzGIBANHRYgIA70IRAQAABF0B let oneA = $(item).find('.module-item-cover .module-item-pic a').first();
AAAkAQBCIwEAALQkAQC1R+9CJAEAACQAAENeAQAAJgAAwwRhBQBiAwB97BzDBWIEAEIZAQAA0WIF vodShort.vod_id = oneA.attr('href');
AO9CJAEAACQAACQBAA6AAOriDoNiAQBiBABCWwAAAARfAQAAJAEAQw4BAADRYgIA70IRAQAABGAB vodShort.vod_name = oneA.attr('title');
AAAkAQDDBmIBANHRYgYAtUfvQhEBAAAEEgEAACQBAO9CJAEAACQAAENhAQAAJgAAwwdhCADRYgYA vodShort.vod_pic = $(item).find('.module-item-cover .module-item-pic img').first().attr('data-src');
tkfvQhEBAAAEEgEAACQBAH3sHMMIYgcAQhkBAADRYggA70IkAQAAJAAAJAEADoAA6uIOg2IBANHR if (vodShort.vod_pic.indexOf("img.php?url=") > 0) {
YgIA70IRAQAABGIBAAAkAQDvQhEBAAAEYwEAACQBALVHQRQBAAAEPQEAAEdDPgEAAGIBAGIHAEJb vodShort.vod_pic = vodShort.vod_pic.split("img.php?url=")[1]
AAAABF8BAAAkAQBDZAEAAGIBANHRYgYAt0fvQhEBAAAEZQEAACQBAO9CJAEAACQAAENmAQAAYgEA }
0dFiBgC4R+9CEQEAAARlAQAAJAEA70IkAQAAJAAAQ0IBAABiAQDR0WIGALpH70IRAQAABGcBAAAk vodShort.vod_remarks = $(item).find('.module-item-text').first().text();
AQDvQiQBAAAkAABCRwEAAARoAQAABGkBAAAkAgBCRwEAAARqAQAAwSQCAENrAQAA0QRsAQAA78MJ vod_list.push(vodShort)
0QRtAQAA78MKJgAAwwsmAADDDGENALXDDWINAGIJAOmjadkAAABhDwBhDgBiCQBiDQBHww5iDgBB }
FAEAAARuAQAAR8MPYg8AQj8BAAAEbwEAACQBALSraZgAAABhEABiCwBCGQEAAGIPACQBAA4mAADD return vod_list
EGERANFiCgBiDQBH70IRAQAABBIBAAAkAQB97EDDEWETAGESANFiEQDvQiQBAAAkAADDEmIRAEEU }
AQAAQRUBAADDE2IQAEIZAQAAYhIABAoBAACdYhMAnSQBAA6AAOq+DoNiDABCGQEAAGIQAEJbAAAA
BHABAAAkAQAkAQAOYg0AkWMNAA7tIP9iAQBiCwBCWwAAAARxAQAAJAEAQ3IBAABiAQBiDABCWwAA async parseVodShortListFromJson(obj) {
AARxAQAAJAEAQ3MBAABiAQAuwgNsLqg1Kyu3re4cOoAhe2fBHI+AIQA2AnvBwQBGAjAwHByAMFOF let vod_list = []
Thy3Tk6AIZE6e3sOYgcBAAACAAQAACUClAQBACAQAAEACMphAADGQg8BAAAkAACLycbGQvwAAABi for (const result of obj["Data"]["result"]){
AAAkAQCLQ3QBAAAGLsIDmwEDHDpiDmIHAQAEBQQMAASzAgnqBQABAOwFAAEA7gUAAQDwBQABAPIF let vodShort = new VodShort()
AQAgugQBASD0BQECIJQEAQMgEAABAAjDBGEDAGECAGEBAGEAANFCNwAAACQAAMHBwcHBwcHSQjcA vodShort.vod_id = result["vod_url"].replaceAll(this.siteUrl,"")
AAAkAADBwcEmDADJuL0LtrcmBADK1AR7AQAARzhFAAAArOoe1AR7AQAAR78ArOoSYgAAYgEAtUdx vodShort.vod_pic = result["vod_pic"]
1AR7AQAAR0nUBHwBAABHOEUAAACs6h7UBHwBAABHvwGs6hJiAABiAQC2R3HUBHwBAABHSdQEfQEA vodShort.vod_name = result["vod_name"]
AEc4RQAAAKzqHtQEfQEAAEe/AqzqEmIAAGIBALdHcdQEfQEAAEdJ1AR+AQAARzhFAAAArOoe1AR+ vod_list.push(vodShort)
AQAAR78DrOoSYgAAYgEAuEdx1AR+AQAAR0nCBEEGAQAABH8BAACdYgAAQlsAAAAEKQEAACQBAJ0E }
gAEAAJ3LwgRCDwEAAGICACQBAIvMwgTCBEL8AAAAYgMAJAEAi0OBAQAABi7CA6ABDk6jMIpZilmK return vod_list
WYpZvE5sBwIwBwIwBwIwBwIwDmIHAQABAgEEAAAtA4QGAAEAlAQBACAQAAEACMphAADGQg8BAADG }
QQYBAADRnSQBAIvJxsZC/gAAAGIAACQBAItDSQEAAAYuwgO0AQMcYmIOQgcBAAIDAgYBAZ4BBdgE
AAEAhgYAAQCIBgEAIIoGAQEgjAYBAiDWAwQMYQIAYQEAYQAAZQAAQYcBAABBiAEAAEKJAQAAvwDS async parseVodDetailFromDoc($) {
nQSKAQAAnSQBAMllAABBhwEAAEGIAQAAQokBAAAEiwEAACQBAMplAABBjAEAAEKNAQAA0WIAAAti let html = $.html()
AQBMjgEAAGUAAEGPAQAAQZABAABMjwEAAGUAAEGRAQAAQZIBAABMkwEAACQDAMtlAABBhwEAAEGI let vodDetail = new VodDetail()
AQAAQpQBAABiAgAlAQDCA7kBBjCjigBCAgcIMjg5MA5iBwEAAwcDBgEC0wEKqgYAAQCEBgABANoB let vodDetailElement = $("[class=\"box view-heading\"]")
AAEAlAQBACCsBgEBIK4GBAIgsAYEAyCyBgQEILQGBAUgEAABANoDAgwIwwZhAQBhAADCBkIPAQAA vodDetail.vod_name = $($(vodDetailElement).find("[class=\"page-title\"]")).text()
wgZBBgEAANKdJAEAi8liAAAEmwEAAO+1R0EUAQAAQRUBAADKYgEAQj8BAAAEnAEAACQBALSl6g3C let typeElements = $($(vodDetailElement).find("[class=\"tag-link\"]").find("a"))
BmIBAEOWAQAA7H5hBQBhBABhAwBhAgAEnQEAAGIBAJ3LwgZCDwEAAGICACQBAIvMYgMAQkgBAAAk vodDetail.vod_area = $($(vodDetailElement).find("[class=\"tag-link\"]").slice(-1)[0]).text()
AADDBDieAAAAQokBAABlAABCEwEAAL8AvwEzYgQAJAIAJAEAwwXCBsIGQgIBAABiBQAELAEAAEdi let type_list = []
BQAEngEAAEcEgwEAAEckAgBDlgEAAAYuwgPAAQswbHFnNUo1TkSt0QcybGV0IENvbkZpZyA9ICgu for (const typeElement of typeElements) {
Kj8pLGJveCA9IAfEAQACAFsAAAAIBgAAAAQH9f///wsAAWwAAWUAAXQAASAAAUMAAW8AAW4AAUYA type_list.push($(typeElement).text())
AWkAAWcAASAAAT0AASAACwEIBgAAAAMH9f///wwBASwAAWIAAW8AAXgAASAAAT0AASAADAAKDmIH }
AQACAwIGAABWBb4GAAEAwAYAAQDYBAEAIMIGAQEgEAABAAjLYQEAYQAABKIBAABCXAAAANEEowEA vodDetail.type_name = type_list.join("/")
ACQCAMnHQqQBAABiAAAHx0KlAQAAJAAAJAMAi8rHx0L9AAAAOJ4AAABCiQEAAGIBACQBACQBAItD let itemElements = $(vodDetailElement).find("[class=\"video-info-items\"]")
gQEAAAYuwgPPAQQrZ3ujDmIGAdwDAQABAwEAEAHMBgABAM4DBghlAABC7gAAANEkAQCLDgYuwgPZ vodDetail.vod_director = $($(itemElements[0]).find("a")).text()
AQIDSQ5iBgHeAwEAAQMBAA4B7gUAAQDOAwYIZQAAQu8AAADRJAEAiy7CA90BAQMOYgYB4AMAAAAC let actor_list = []
AQANAM4DBghlAABC8AAAACQAAIsuwgPhAQEDDmIGAeIDBAAEBgEAEQTqBQABAOwFAAEA7gUAAQDw for (const actorElement of $(itemElements[1]).find("a")) {
BQABAM4DBghlAABC8QAAANHS09QkBACLLsID5QEBAw5iBgHkAwEAAQMBAA4BhAYAAQDOAwYIZQAA actor_list.push($(actorElement).text())
QvIAAADRJAEAiy7CA+kBAQMOYgYB5gMDAAMFAQAQA6oGAAEAhAYAAQDaAQABAM4DBghlAABC8wAA }
ANHS0yQDAIsuwgPtAQEDDmIGAegDAgACBAEADwK+BgABAMAGAAEAzgMGCGUAAEL0AAAA0dIkAgCL vodDetail.vod_pic = $($(vodDetailElement).find("[class=\"module-item-pic\"]")).find("img")[0].attribs["data-src"]
LsID8QEBAw5iBgGGAgIAAgQBAA8CzgYAAQDQBgABAM4DBghlAABCgwAAANHSJAIAiy7CA/UBAQMO vodDetail.vod_actor = actor_list.join("/")
QwYBzAMAAAACCAA6ANwDBwDeAwgA4AMJAOIDCgDkAwsA5gMMAOgDDQCGAg4AC91M7gAAAN5M7wAA vodDetail.vod_year = $($(itemElements[2]).find("[class=\"video-info-item\"]")).text()
AN9M8AAAAOBM8QAAAF4EAEzyAAAAXgUATPMAAABeBgBM9AAAAF4HAEyDAAAAKMID+QEKAwghISEh vodDetail.vod_remarks = $($(itemElements[3]).find("[class=\"video-info-item\"]")).text()
KysrLA== 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}