3 lines
4.7 KiB
JavaScript
3 lines
4.7 KiB
JavaScript
// 本资源来源于互联网公开渠道,仅可用于个人学习爬虫技术。
|
|
// 严禁将其用于任何商业用途,下载后请于 24 小时内删除,搜索结果均来自源站,本人不承担任何责任。
|
|
import{Crypto as e}from"assets://js/lib/cat.js";let a={"User-Agent":"Dart/3.4 (dart:io)","x-device-id":"","x-app-package":"","x-app-signature":"","x-app-version-code":"","x-app-version-name":""},t="";async function r(e){const r=e.ext;if(r.host&&r.host.indexOf("http")>-1&&r.verCode&&r.verName&&r.deviceId&&r.package&&r.package&&r.signature&&/^[0-9a-fA-F]{16}$/.test(r.deviceId))try{t=r.host,a["x-app-version-code"]=r.verCode,a["x-app-version-name"]=r.verName,a["x-device-id"]=r.deviceId,a["x-app-package"]=r.package,a["x-app-signature"]=r.signature;let e=await req(`${t}/api/health`,{headers:a});console.log(e)}catch(e){t=""}}async function o(e){let r=[],o={};try{let e=await req(`${t}/api/categories`,{headers:a}),i=JSON.parse(e.content);if(0===i.code&&i.data){const e={classes:"类型",years:"年份",areas:"地区",sort:"排序"};for(let a of i.data)if(r.push({type_id:a.type_id,type_name:a.type_name}),a.filters){let t=[],r=Object.keys(a.filters);for(let o of r){let r=a.filters[o];if(Array.isArray(r)&&r.length>0){let a=[];a.push({n:"全部",v:""});for(let e of r)a.push({n:e,v:e});t.push({key:o,name:e[o]||o,init:"",value:a})}}t.length>0&&(o[a.type_id]=t)}}}catch(e){}return JSON.stringify({class:r,filters:o})}async function i(){let e=[],r={};try{let o=await req(`${t}/api/renren/homepage`,{headers:a}),i=JSON.parse(o.content);if(0===i.code&&i.data){if(i.data.banners&&i.data.banners.length>0)for(let a of i.data.banners)r[a.id]||(r[a.id]=!0,e.push({vod_id:a.id,vod_name:a.name,vod_pic:a.banner_url,vod_remarks:a.score?String(a.score):String(a.year)}));if(i.data.modules&&i.data.modules.length>0)for(let a of i.data.modules)if(!0===a.visible&&a.data&&a.data.content)for(let t of a.data.content)r[t.id]||(r[t.id]=!0,e.push({vod_id:t.id,vod_name:t.name,vod_pic:t.banner_url,vod_remarks:t.score?String(t.score):String(t.year)}))}}catch(e){}return JSON.stringify({list:e})}async function d(e,r,o,i){let d=[],n=parseInt(r)||1,s=0,c=0;try{let r=`${t}/api/category?type=${e}&page=${n}&limit=20`;if(i)for(let e in i)i[e]&&(r+=`&${e}=${encodeURIComponent(i[e])}`);let o=await req(r,{headers:a}),l=JSON.parse(o.content);if(0===l.code&&l.data){if(l.data.list&&l.data.list.length>0)for(let e of l.data.list)d.push({vod_id:e.vod_id,vod_name:e.vod_name,vod_pic:e.image_url,vod_remarks:e.vod_remarks||e.score||e.vod_year});s=l.data.total||0,c=Math.ceil(s/20)}}catch(e){}return JSON.stringify({list:d,page:n,pagecount:c,limit:20,total:s})}async function n(e,r,o){let i=[],d=parseInt(o)||1,n=0,s=0;try{let r=`${t}/api/search?keyword=${encodeURIComponent(e)}&page=${d}&limit=20`,o=await req(r,{headers:a}),c=JSON.parse(o.content);if(0===c.code&&c.data){if(c.data.list&&c.data.list.length>0)for(let e of c.data.list)i.push({vod_id:e.vod_id,vod_name:e.vod_name,vod_pic:e.image_url,vod_remarks:e.vod_remarks,type_name:e.type_name});n=c.data.total||0,s=Math.ceil(n/20)}}catch(e){}return JSON.stringify({list:i,page:d,pagecount:s,limit:20,total:n})}async function s(e){let r=[];try{let o=`${t}/api/videos/`+e,i=await req(o,{headers:a}),d=JSON.parse(i.content);if(0===d.code&&d.data){let e=d.data,a={vod_id:e.vod_id,vod_name:e.vod_name,vod_pic:e.vod_pic,type_name:e.type_name,vod_year:e.vod_year,vod_area:e.vod_area,vod_remarks:e.vod_remarks,vod_actor:e.vod_actor,vod_director:e.vod_director,vod_content:e.vod_blurb},t=[],o=[];if(e.play_sources&&e.play_sources.length>0)for(let a of e.play_sources){if(1===a.is_disabled)continue;t.push(a.source_name);let e=[],r=a.source_code;if(a.episodes&&a.episodes.length>0)for(let t of a.episodes){let a=r+","+t.url;e.push(t.name+"$"+a)}o.push(e.join("#"))}a.vod_play_from=t.join("$$$"),a.vod_play_url=o.join("$$$"),r.push(a)}}catch(e){}return JSON.stringify({list:r})}async function c(r,o,i){try{let r=o.split(","),i=r[1],d=r[0];if(!d||!i)return{};let n=`${t}/api/videos/parse-url`,s=await req(n,{method:"POST",headers:a,data:{url:i,source_code:d}}),c=JSON.parse(s.content);if(0===c.code&&c.data){let a=c.data.result;if(c.data.encrypted&&a.startsWith("enc:")){let t=a.replace("enc:","");a=e.AES.decrypt(t,e.enc.Hex.parse("54e88af0876c0a378c6ad0c426380c0c6c9c5743b51c684c1c45f7d213b16bb4"),{iv:e.enc.Hex.parse("2961e94261178e295a36c6ae873b8d2a"),mode:e.mode.CBC,padding:e.pad.Pkcs7}).toString(e.enc.Utf8)}let t=JSON.parse(a),r=t.parsed_url;if(r&&r.indexOf("http")>-1){let e=t.headers;return e&&0!==Object.keys(e).length||(e={"User-Agent":"ExoPlayer"}),JSON.stringify({parse:0,url:r,header:e})}}}catch(e){}return JSON.stringify({parse:0,url:o.split(",")[1],header:{}})}export function __jsEvalReturn(){return{init:r,home:o,homeVod:i,category:d,search:n,detail:s,play:c}} |