Update kankan70.js

bb
This commit is contained in:
lushunming 2024-08-18 09:04:14 +08:00 committed by GitHub
parent ddd2ab9a25
commit e84976dc13
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 138 additions and 308 deletions

View File

@ -1,308 +1,138 @@
/* //bbAeUBcmh0dHBzOi8vYW5kcm9pZGNhdHZvZHNwaWRlci5wYWdlcy5kZXYvanNvbi9qcy9rYW5rYW43
* @File : kankan70.js MC5qcx4uLi9saWIvdXRpbHMuanMaLi4vbGliL2NhdC5qcxouLi9saWIvdm9kLmpzFi4vc3BpZGVy
* @Author : jade LmpzHF9fanNFdmFsUmV0dXJuDHNwaWRlcgJfCGxvYWQSVm9kRGV0YWlsEFZvZFNob3J0DFNwaWRl
* @Date : 2023/12/29 15:33 chxLYW5rYW43MFNwaWRlcgpVdGlscxpnZXRfcXBfbmFtZTQ0CGluaXQIaG9tZQ5ob21lVm9kEGNh
* @Email : jadehh@1ive.com dGVnb3J5DGRldGFpbAhwbGF5DHNlYXJjaA5nZXROYW1lFGdldEFwcE5hbWUSZ2V0SlNOYW1lDmdl
* @Software : Samples dFR5cGUecGFyYXNlVXJsT2JqZWN0MHBhcnNlVm9kU2hvcnRMaXN0RnJvbURvYypwYXJzZVZvZERl
* @Desc : dGFpbEZyb21Eb2MycGFyc2VWb2RTaG9ydExpc3RGcm9tSnNvbhRzZXRDbGFzc2VzEmdldEZpbHRl
*/ chhzZXRGaWx0ZXJPYmoUc2V0SG9tZVZvZBZzZXRDYXRlZ29yeRJzZXREZXRhaWwSc2V0U2VhcmNo
import * as Utils from "../lib/utils.js"; DnFwX3R5cGUEemQFAGcnWQR5agU4bEVOBGhuBVtyW3IEZ3MFSVHibARzbgWwZRdnBHdsBaFtbo8E
import {_, load} from "../lib/cat.js"; bHoFb4JQWwRmcwVGAB+QBGZmBd6Y3pgEYmQFfnamXgR1awV3kVUABHdqBeBlKVkEYmoFa1ESYgR0
import {VodDetail, VodShort} from "../lib/vod.js"; awUpWXp6BHNzBR+QH5AEa2IFd5GtZARzZAXqlTV1BHhrBQt3C3cEdHAF2G3YbQRqeQW+fPGCIGh0
import {Spider} from "./spider.js"; dHA6Ly9jcWRiNi5jb20Oc2l0ZVVybBU92PrcAyU3ADAAC3cLdwMlPdj63Ak3ADAAC3cLdxBrYW5r
YW43MAxqc19zdHIYY29udGVudF9saXN0EnVybE9iamVjdA5qc19uYW1lDnBsYXlfaWQOcGxkeV9p
function get_qp_name44(qp_type) { ZAxqc19rZXkCaQ5jb250ZW50EHBsYXlfdXJsGnBsYXlfdXJsX2xpc3QgcGxheV9mb3JtYXRfbGlz
if (qp_type === 'zd') return '最大'; dAZrZXkgcGxheV9mb3JtYXRfbmFtZRB2b2RJdGVtcwI7DmluZGV4T2YadmFyIGxpYW56YWlqcwI9
if (qp_type === 'yj') return '永久'; AiAMcGxfaWQ9CGxpc3QKcGxfZHkSdmFyIHBsX2R5EHBsYXlhcnJfAlsEPSICLAhwdXNoCGtleXMD
if (qp_type === 'hn') return '牛牛'; LHsDxpYCJAIjBiQkJBZwbGF5X2Zvcm1hdBB2b2RfbGlzdBh2b2RfZWxlbWVudHMWdm9kX2VsZW1l
if (qp_type === 'gs') return '光波'; bnQQdm9kU2hvcnQScmVtYXJrRWxlDmEubGktaHYCLw5hdHRyaWJzCGhyZWYMdm9kX2lkCnRpdGxl
if (qp_type === 'sn') return '新朗'; EHZvZF9uYW1lCGZpbmQGaW1nGmRhdGEtb3JpZ2luYWwOdm9kX3BpYwhwLmJ6EGNoaWxkcmVuCGRh
if (qp_type === 'wl') return '涡轮'; dGEWdm9kX3JlbWFya3MSdm9kRGV0YWlsFmluZm9FbGVtZW50EmR0RWxlbWVudBBkZFN0cmluZxhb
if (qp_type === 'lz') return '良子'; Y2xhc3M9aW5mb10OZHQubmFtZQRkZAh0ZXh0GmdldFN0ckJ5UmVnZXgQdm9kX2FyZWEQdm9kX3ll
if (qp_type === 'fs') return 'F速'; YXISdHlwZV9uYW1lGFtjbGFzcz1kZXMyXRRyZXBsYWNlQWxsAgoHZ1LFYBr/FnZvZF9jb250ZW50
if (qp_type === 'ff') return '飞飞'; EGltZy5sYXp5Bm9iahR2b2Rfb2JqZWN0BnVybAp0aHVtYgh0aW1lCGh0bWwQZWxlbWVudHMOZWxl
if (qp_type === 'bd') return '百度'; bWVudBZ0eXBlRWxlbWVudA50eXBlX2lkCmZldGNoEmdldEhlYWRlcg5pc0VtcHR5KFtjbGFzcz1p
if (qp_type === 'uk') return '酷U'; bmRleC1saXN0LWxdKltjbGFzcz0iaDEgY2xlYXJmaXgiXQJhDmNsYXNzZXMWZXh0ZW5kX2xpc3QU
if (qp_type === 'wj') return '无天'; ZXh0ZW5kX2RpYxp0eXBlX2VsZW1lbnRzGHR5cGVfZWxlbWVudBh0eXBlX2lkX2xpc3Q0W2NsYXNz
if (qp_type === 'bj') return '八戒'; PSJzeSBzY29uIGNsZWFyZml4Il0EZGwEZHQOcmVwbGFjZQMJYwMa/wVnUsVgBXRe404FMFc6UwJu
if (qp_type === 'tk') return '天空'; AnYSY2xhc3NfZGljCQBn0Y/0ZrBlEmZpbHRlck9iahZob21lVm9kTGlzdAZ0aWQEcGcMZmlsdGVy
if (qp_type === 'ss') return '速速'; DGV4dGVuZBRjbGFzc19uYW1lBGlkDmFwaV9zdHIMcGFyYW1zEmNhdGVfaHRtbAxhY3Rpb24QcGFy
if (qp_type === 'kb') return '酷播'; c2VJbnQIcGFnZQh5ZWFyBmFsbAhhcmVhCGRlY3QOdm9kTGlzdBJkZXRhaWxVcmwMbWF0aGVyDGpz
if (qp_type === 'sd') return '闪电'; X3VybBRwbGF5T2JqZWN0PGh0dHA6Ly90ZXN0LmdxeXk4LmNvbTo4MDc3L25lMhh2b2RfcGxheV91
if (qp_type === 'xk') return '看看'; cmwadm9kX3BsYXlfZnJvbQR3ZApxdWljaw5hcGlfdXJsGGNvbnRlbnRfanNvbhYvc2VhcmNoLnBo
if (qp_type === 'tp') return '淘淘'; cAZ0b3ACcQpwYXJzZQP//gZjZmcIZmxhZw+kAwSmA6gDqgOsAwIAEK4DAAiwAwAGAPoBAAGyAwEC
if (qp_type === 'jy') return '精英'; tAMBA7YDAgS4AwIFugMDDgAGAaABAAIAAxEZzwECvAMCADDsAQMBcL4DAA2yAwEMtAMCDLYDAwy4
AwQMugMFDMADAAG8AwEJsAMCCcIDAwHEAwQBxgMFAcgDBgHKAwcBzAMIAc4DCQGuAwoBCOgvvgBf
return qp_type; BgC+EV8JAL4SXwoAvhNfCwC+FF8MAL4VXw0AvhZfDgC+F18PAL4YXxAAKWEAAGUFAGEBAL0BVt4A
} AAABvgJU6AAAAAC+A1TpAAAAAL4EVOoAAAAAvgVU6wAAAAC+BlTsAAAAAL4HVO0AAAAAvghU7gAA
AAC+CVTvAAAAAL4KVPAAAAAAvgtU8QAAAAC+DFTyAAAAAL4NVPMAAAAAvg5U9AAAAAC+D1T1AAAA
AL4QVPYAAAAABsgOy2gBAF8HAGUHABEhAABfCAAppAMBNgEAMVAAERAACAgACAgACAgACFAACCIA
class Kankan70Spider extends Spider { CCAACBoACCAACEIACBIACBAACDIACCIACCArNgAKSA5DBgHAAwEAAQIAAK4CAe4DAAEAzwT4AAAA
constructor() { q+gHBPkAAAAozwT6AAAAq+gHBPsAAAAozwT8AAAAq+gHBP0AAAAozwT+AAAAq+gHBP8AAAAozwQA
super(); AQAAq+gHBAEBAAAozwQCAQAAq+gHBAMBAAAozwQEAQAAq+gHBAUBAAAozwQGAQAAq+gHBAcBAAAo
this.siteUrl = "http://cqdb6.com"; zwQIAQAAq+gHBAkBAAAozwQKAQAAq+gHBAsBAAAozwQMAQAAq+gHBA0BAAAozwQOAQAAq+gHBA8B
} AAAozwQQAQAAq+gHBBEBAAAozwQSAQAAq+gHBBMBAAAozwQUAQAAq+gHBBUBAAAozwQWAQAAq+gH
BBcBAAAozwQYAQAAq+gHBBkBAAAozwQaAQAAq+gHBBsBAAAozwQcAQAAq+gHBB0BAAAozwQeAQAA
getName() { q+gHBB8BAAAozyikAw4WA05OTk5OTk5OTk5OTk5OTk5OTk5PCA7GBwEAAAMAAwEANAPkAQABAOIB
return "📺┃70看看┃📺" AAEAEAABIOwBAQ0MAscMA8hhAgArwzTEIQAAEWQCAGUAABHoCGICABskAAAODmICAAQgAQAAQyEB
} AABiAgAopAMpBDWARBIOQgcBAAAAAAEAAAYABCIBAAAopAMuAgMcDkIHAQAAAAABAAAGAAQjAQAA
KKQDMgIDHA5CBwEAAAAAAQAABgAEJAEAACikAzYCAxwOQgcBAAAAAAEAAAIAtiikAzoCAwgOQgcB
getAppName() { AAEQAQsBAJ8FEcoEAAEAzAQBACDOBAEBINAEAQIg0gQBAyDUBAEEINYEAQUg2AQCCyDaBAMHINwE
return "70看看" Cwgg3gQBBiDgBAEKIOIEDAsw5AQPDCDmBA8NIK4BDw4g3AQQDzDAAwYAYQoAYQkAYQUAYQQAYQMA
} YQIAYQEAYQAAz0JdAAAABDQBAAAkAQDHC8i/ybPKs8EEv8EFYQYAs8EGYgYAYgAA56NpSgEAAGEH
AGIAAGIGAEfBB2IHAEI1AQAABDYBAAAkAQCypehAYgcAQl0AAAAENwEAACQBALNHQl0AAAAEOAEA
getJSName() { ACQBALRHEWMCAA5iAgBCXQAAAATZAAAAJAEAtEcRYwUADup6YgcAQjUBAAAEOQEAACQBALKl6Dti
return "kankan70" BwBCXQAAAAQ3AQAAJAEAtEcRYwMADmIBAGICAHELYgMATCkBAAAmAABMOgEAAGIEAEw7AQAASeos
} YgcAQjUBAAAEPAEAACQBALKl6BhiBwBCXQAAAAQ3AQAAJAEAtEcRYwQADmIHAEI1AQAABD0BAABC
XAAAAGIFAAQ+AQAAJAIAJAEAsqXoQGEIAGIHAEJdAAAABD8BAAAkAQC0R0JdAAAABEABAAAkAQCz
getType() { R8EIYgEAYgIARwQ6AQAAR0JBAQAAYggAJAEADmIGAJFjBgAO66/+JgAAwQkmAADBCmELADiPAAAA
return 3 QkIBAABiAQAkAQB9678AwQtiCwBCNQEAAATZAAAAJAEAsqVpqAAAAGEOAGENAGEMANtiCwBCXQAA
} AATZAAAAJAEAtEftwQxiCgBCQQEAAGIMACQBAA4mAADBDbPBDmEPAGIBAGILAEcEOgEAAEd96jrB
D2IOALSdEWMOAA5iDQBCQQEAAARDAQAAYg4AQjcAAAAkAACdBEQBAACdBEUBAACdYg8AnSQBAA6A
paraseUrlObject(js_str) { AOjEDoNiCQBCQQEAAGINAEJbAAAABEYBAAAkAQAkAQAOgABpQP///w6DC2IKAEJbAAAABEcBAAAk
let content_list = js_str.split(";") AQBMSAEAAGIJAEJbAAAABEcBAAAkAQBMLgEAACikAz4je04NDQ0SEnEwZ8F2cXaocXfGsoE6NYCj
let urlObject = {} cU4cEmw15CGQMNoOYgcBAAEFAQcBANUBBooFAAEAkgUBACCUBQEBIJYFAgIwmAUDAyCaBQMEILgD
let js_name = "" BAxhAQBhAAAmAADHzwROAQAA7chhAgBiAQB9664AyWEEAGEDAGUAABEhAADKYgMABE8BAABiAgBB
let play_id = 0 UAEAAARRAQAAR51DUgEAAGIDAGICAEFQAQAABFMBAABHQ1QBAABiAwDPYgIA7UJVAQAABFYBAAAk
let pldy_id = 0 AQCzR0FQAQAABFcBAABHQ1gBAADPYgIA7UJVAQAABFkBAAAkAQCzR8EEYgQA57Ol6BhiAwBiBABB
let js_key = "" WgEAALNHQVsBAABDXAEAAGIAAEJBAQAAYgMAJAEADoAAaVH///8Og2IAAC6kA2YNIRcrWCuPccZx
for (let i = 0; i < content_list.length; i++) { K3dOMA5iBwEAAQQBBQIGsAIFigUAAQC6BQEAILwFAQEgvgUBAiDABQEDILYDAwy+AwAMYQMAYQIA
let content = content_list[i] YQEAYQAAZQAAESEAAMfPBGEBAADtyM9iAQDtQlUBAAAEYgEAACQBALNHyWIAAGICAEFaAQAAs0dB
if (content.indexOf("var lianzaijs") > -1) { WwEAAENUAQAAYgAAYgIAQVoBAAC0R0FaAQAAs0dBWwEAAENcAQAAz2IBAO1CVQEAAARjAQAAJAEA
js_name = content.split("=")[0].split(" ")[1] QmQBAAAkAADKYgAAZQEAQmUBAAC9AL0BM2IDACQCAENmAQAAYgAAZQEAQmUBAAC9Ar0DM2IDACQC
js_key = js_name.split("_")[1] AENnAQAAYgAAZQEAQmUBAAC9BL0FM2IDACQCAENoAQAAYgAAz2IBAO1CVQEAAARpAQAAJAEAQmQB
} else if (content.indexOf("pl_id=") > -1) { AAAkAABCagEAAARrAQAAvyQCAEJqAQAABGwBAAC/JAIAQ20BAABiAADPBG4BAADts0dBUAEAAARX
play_id = content.split("=")[1] AQAAR0NYAQAAYgAALqQDdw4/KytsdpmKioqKAD4CkAcTMFc6Uxr/KAAuACoAPwApACAAB2QAAgAr
urlObject[js_name] = {"play_id": play_id, "list": [], "pl_dy": pldy_id} AAAACAYAAAAEB/X///8LAAEwVwE6UwEa/wsBCAYAAAADB/X///8MAQEgAAwACgcVdF7jThr/KAAu
} else if (content.indexOf("var pl_dy") > -1) { ACoAPwApAFwAbgAHZAACACsAAAAIBgAAAAQH9f///wsAAXReAeNOARr/CwEIBgAAAAMH9f///wwB
pldy_id = content.split("=")[1] AQoADAAKBxV7fItXGv8oAC4AKgA/ACkAXABuAAdkAAIAKwAAAAgGAAAABAf1////CwABe3wBi1cB
} Gv8LAQgGAAAAAwf1////DAEBCgAMAAoOYgcBAAEDAQYBAHcE3gUAAQCSBQEAIOAFAgEwmAUDAiC4
if (content.indexOf(`playarr_${js_key}[`) > -1) { AwQMYQAAJgAAx2EBAM996mDIYQIAZQAAESEAAMliAgBiAQAEcQEAAEdDUgEAAGICAGIBAARyAQAA
let play_url = content.split("=\"")[1].split(",")[0] R0NYAQAAYgIAYgEABHMBAABHQ1wBAABiAgBiAQAEUwEAAEdDVAEAAGIAAEJBAQAAYgIAJAEADoAA
urlObject[js_name]["list"].push(play_url) 6J4Og2IAAC6kA4cBChIXOitYWFhYTiEOYgcBAAAIAAcCAO8BCOgFAQAgigUDASDqBQMCIOwFBAMw
} 7gUFBCDwBQUFINAFBQYgEAABALIDAQy0AwIMCMEHYQAAwAdCeQEAAMAHQSEBAAAHwAdCegEAACQA
} ACQDAIvHZQAAQnsBAABiAAAkAQCWabkAAABhAgBhAQBlAQBiAADtyGIBAAR8AQAA7clhAwBiAgB9
let play_url_list = [], play_format_list = []; 64wAymEGAGEFAGEEAGIBAGIBAGIDAO1CVQEAAAR9AQAAJAEAs0ftQlUBAAAEfgEAACQBAMEEYgQA
for (const key of Object.keys(urlObject)) { s0dBUAEAAARRAQAAR8EFYgEAYgQAtEftQmQBAAAkAADBBmUAAEJ7AQAAYgYAJAEAlugiwAdBfwEA
if (key.indexOf("_") > -1) { AEJBAQAAC2IFAEx4AQAAYgYATGgBAAAkAQAOgABpc////w6DBi6kA5QBDCGZhSs1Z9BdYlipMQ5i
let play_format_name = get_qp_name44(key.split("_")[1]) BwEAAQ4BCwIAyQMP8AUAAQDiBQEAIOgFAQEggAYBAiCKBQMDIOoFAwQg2AQDBSDsBQQGMNAFBQcg
play_format_list.push(play_format_name) ggYFCCCEBgUJIK4BBQoghgYMCzCIBg0MIBAAAQCyAwEMtAMCDAjBDWECAGEBAGEAAMANQSEBAADP
let vodItems = [] ncfADUJ5AQAAYgAAB8ANQnoBAAAkAAAkAwCLyCYAAMllAABCewEAAGIBACQBAJZpgQEAAGEFAGEE
let index = 0 AGEDAGUBAGIBAO3KYgMABIUBAADtQlUBAAAEhgEAACQBAMEEs8EFYQYAYgQAfetAAcEGYQoAYQkA
for (const play_url of urlObject[key]["list"]) { YQgAYQcAYgMAYgMAYgYA7UJVAQAABIcBAAAkAQDtQmQBAAAkAABCiAEAAASJAQAAvyQCAEKIAQAA
index = index + 1 BIoBAAC/JAIAwQcLYgUAtJ1CNwAAACQAAEwxAQAAYgcATDYAAAAmAABMQAAAAMEIYgMAYgYA7UJV
vodItems.push("第" + index.toString() + "集" + "$" + play_url) AQAABH4BAAAkAQDBCbPBCmIHAASLAQAAq+gJthFjCgAO6iViBwAEjAEAAKvoCbURYwoADuoSYgcA
} BI0BAACr6Ae3EWMKAA5hCwBiCQB96lbBC2EMAGILAEFQAQAABFEBAABHQl0AAAAETwEAACQBAMEM
play_url_list.push(vodItems.join("#")) YggABEAAAABHQkEBAAALYgMAYgsA7UJkAQAAJAAATI4BAABiDABiCgBHTI8BAAAkAQAOgADoqA6D
} YgIAQkEBAABiCAAkAQAOYgUAtJ0RYwUADoAAab/+//8Og2ICAC6kA6QBID81hReUK3sSewA+Agit
} DXESOiFEIUQiSZQAMwIhTjUxDmIHAQAAAwAIAABHA6AGAgAw8AUDASAQAAEACMlhAADFQX8BAAB9
return {"play_format": play_format_list.join("$$$"), "play_url": play_url_list.join("$$$")} 6jLHYQEAYgAABHgBAABHyGIBAASRAQAArOgZxUGSAQAAYgEAccVC8QAAAGIBACQBAItJgADozA6D
} Bi6kA8UBBg1TNTp8IQ5iBwEAAAMABgIAUQPoBQEAIIoFAwEgEAABALIDAQy0AwIMCMlhAADFQnkB
AADFQSEBAAAHxUJ6AQAAJAAAJAMAi8dlAABCewEAAGIAACQBAJboH2EBAGUBAGIAAO3IxcVC7QAA
async parseVodShortListFromDoc($) { AGIBACQBAItDkwEAAAYupAPOAQUcimcrYw5iBwEABAkEBgMHpQINqAYAAQCqBgABAKwGAAEArgYA
let vod_list = [] AQDiBQEAIOgFAQEgsAYDAiCyBgMDILQGAwQgtgYDBSC4BgMGIIoFBQcgEAABALIDAQy+AwAMtAMC
let vod_elements = $("a.li-hv") DAjBCGEBAGEAAMAIQSEBAADPncfACEJ5AQAAYgAAB8AIQnoBAAAkAAAkAwCLyGUAAEJ7AQAAYgEA
for (const vod_element of vod_elements) { JAEAlmnmAAAAYQYAYQUAYQQAYQMAYQIAz0JdAAAABE8BAAAkAQC0R8nPQl0AAAAETwEAACQBALVH
let vodShort = new VodShort() ymUBAEJlAQAAvQC9ATNiAQAkAgDBBAtiAgBMnQEAADieAQAA0O1MnwEAANK9AkcRsOgEDr0DTKAB
vodShort.vod_id = "/" + vod_element.attribs["href"] AADSvQRHEbDoBw4EoQEAAEyiAQAA0r0FRxGw6AQOvQZMHgAAAL9MowEAAGIDAEyZAQAAwQXACEJ5
vodShort.vod_name = vod_element.attribs["title"] AQAAYgQAYgUAwAhCegEAACQAACQDAIvBBmIGAPHpImEHAGUCAGIGAO3BB8AIwAhC7QAAAGIHACQB
vodShort.vod_pic = $(vod_element).find("img")[0].attribs["data-original"] AItDpAEAAAYupAPWARYwNYWyWFhsCCs/U2JTISsNlDAwABUIByx2YXIgX3l1X2dkYV9zPSIoLio/
let remarkEle = $(vod_element).find("p.bz")[0] KSI7B7IBAAIAUgAAAAgGAAAABAf1////CwABdgABYQABcgABIAABXwABeQABdQABXwABZwABZAAB
if (remarkEle.length > 0) { YQABXwABcwABPQABIgALAQgGAAAAAwf1////DAEBIgABOwAMAAoHAjIHAjAHAjMHAjEHAjAOYgcB
vodShort.vod_remarks = remarkEle.children[0].data AAEIAQYCAvIBCbIGAAEAygYBACDoBQEBIIoFAwIgzAYDAyDOBgMEIMoEAwUg0AYFBiAQAAEAsgMB
} DLQDAgwIwQdhAQBhAADAB0EhAQAAz53HwAdCeQEAAGIAAAfAB0J6AQAAJAAAJAMAi8hlAABCewEA
vod_list.push(vodShort) AGIBACQBAJZpswAAAGEFAGEEAGEDAGECAGUBAGIBAO3JwAfAB0LuAAAAYgIAJAEAi0NdAQAAvQC9
} ATNChgAAAGIBACQBAMoEqQEAAGIDALRHncEEwAdCeQEAAGIEAAfAB0J6AQAAJAAAJAMAi8EFZQAA
return vod_list QnsBAABiBQAkAQCW6D1hBgDAB0LsAAAAYgUAJAEAwQbAB0FdAQAAYgYABC4BAABHQ6oBAADAB0Fd
} AQAAYgYABEgBAABHQ6sBAAAGLqQD7wENMDWFoytsWESKZ05sbgeuATxzY3JpcHQgdHlwZT0idGV4
dFwvamF2YXNjcmlwdCIgc3JjPSJodHRwOlwvXC90ZXN0LmdxeXk4LmNvbTo4MDc3XC9uZTIoLio/
async parseVodDetailFromDoc($) { KSI+PFwvc2NyaXB0PgeSBAECAAIBAAAIBgAAAAQH9f///wsAATwAAXMAAWMAAXIAAWkAAXAAAXQA
let vodDetail = new VodDetail() ASAAAXQAAXkAAXAAAWUAAT0AASIAAXQAAWUAAXgAAXQAAS8AAWoAAWEAAXYAAWEAAXMAAWMAAXIA
let infoElement = $("[class=info]") AWkAAXAAAXQAASIAASAAAXMAAXIAAWMAAT0AASIAAWgAAXQAAXQAAXAAAToAAS8AAS8AAXQAAWUA
let dtElement = $(infoElement).find("dt.name")[0] AXMAAXQAAwFnAAFxAAF5AAF5AAE4AAMBYwABbwABbQABOgABOAABMAABNwABNwABLwABbgABZQAB
vodDetail.vod_name = dtElement.children[0].data MgALAQgGAAAAAwf1////DAEBIgABPgABPAABLwABcwABYwABcgABaQABcAABdAABPgAMAAoOYgcB
vodDetail.vod_remarks = dtElement.children[1].children[0].data AAIHAgYCAtkBCdgGAAEA2gYAAQDiBQEAIOgFAQEgtgYDAiDcBgMDINoEAwQg3gYFBSAQAAEAsgMB
let ddString = $(infoElement).find("dd").text() DL4DAAwIwQZhAQBhAADABkEhAQAABLABAACdx8AGQnkBAABiAAAHwAZCegEAACQAACQDAIvIZQAA
vodDetail.vod_area = Utils.getStrByRegex(/地区:(.*?) /, ddString) QnsBAABiAQAkAQCWaZYAAABhBABhAwBhAgALuwpMsQEAAM9MsgEAAMllAQBCZQEAAL0AvQEzYgEA
vodDetail.vod_year = Utils.getStrByRegex(/年代:(.*?)\n/, ddString) JAIAysAGQnkBAABiAwBiAgDABkJ6AQAAJAAAJAMAi8EEZQAAQnsBAABiBAAkAQCW6DlhBQA4mAAA
vodDetail.type_name = Utils.getStrByRegex(/类型:(.*?)\n/, ddString) AEKzAQAAYgQAQmoBAAAEtAEAAL8kAgAkAQDBBcAGwAZC7wAAAGIFACQBAItDpAEAAAYupAOAAgww
vodDetail.vod_content = $(infoElement).find("[class=des2]").text().replaceAll("\n", "").replaceAll("剧情:", "") SYWUCEQIZ5Rno24HLHZhciBteV9zZWFyY2g9JyguKj8pJzsHsgEAAgBSAAAACAYAAAAEB/X///8L
vodDetail.vod_pic = $("img.lazy")[0].attribs["data-original"] AAF2AAFhAAFyAAEgAAFtAAF5AAFfAAFzAAFlAAFhAAFyAAFjAAFoAAE9AAEnAAsBCAYAAAADB/X/
//8MAQEnAAE7AAwACg5iBgHCAwEAAQMBABAB6gYAAQCwAwgIZQAAQuEAAADPJAEAiw4GLqQDkwIC
return vodDetail A0kOYgYBxAMBAAEDAQAOAawGAAEAsAMICGUAAELiAAAAzyQBAIsupAOXAgEDDmIGAcYDAAAAAgEA
} DQCwAwgIZQAAQuMAAAAkAACLLqQDmwIBAw5iBgHIAwQABAYBABEEqAYAAQCqBgABAKwGAAEArgYA
AQCwAwgIZQAAQuQAAADP0NHSJAQAiy6kA58CAQMOYgYBygMBAAEDAQAOAbIGAAEAsAMICGUAAELl
async parseVodShortListFromJson(obj) { AAAAzyQBAIsupAOjAgEDDmIGAcwDAwADBQEAEAPsBgABALIGAAEA2gEAAQCwAwgIZQAAQuYAAADP
let vod_list = [] 0NEkAwCLLqQDpwIBAw5iBgHOAwIAAgQBAA8C2AYAAQDaBgABALADCAhlAABC5wAAAM/QJAIAiy6k
for (const vod_object of obj) { A6sCAQMOQwYBrgMAAAACBwAyAMIDCQDEAwoAxgMLAMgDDADKAw0AzAMOAM4DDwAL20zhAAAA3Ezi
let vodShort = new VodShort() AAAA3UzjAAAA3kzkAAAAXgQATOUAAABeBQBM5gAAAF4GAEznAAAAKKQDrwIDAwj0
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}