123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256 |
- if (typeof Object.assign != 'function') {
- Object.assign = function () {
- var target = arguments[0];
- for (var i = 1; i < arguments.length; i++) {
- var source = arguments[i];
- for (var key in source) {
- if (Object.prototype.hasOwnProperty.call(source, key)) {
- target[key] = source[key];
- }
- }
- }
- return target;
- };
- }
- if (!String.prototype.includes) {
- String.prototype.includes = function (search, start) {
- if (typeof start !== 'number') {
- start = 0;
- }
- if (start + search.length > this.length) {
- return false;
- } else {
- return this.indexOf(search, start) !== -1;
- }
- };
- }
- if (!Array.prototype.includes) {
- Object.defineProperty(Array.prototype, 'includes', {
- value: function (searchElement, fromIndex) {
- if (this == null) {//this是空或者未定义,抛出错误
- throw new TypeError('"this" is null or not defined');
- }
- var o = Object(this);//将this转变成对象
- var len = o.length >>> 0;//无符号右移0位,获取对象length属性,如果未定义就会变成0
- if (len === 0) {//length为0直接返回false未找到目标值
- return false;
- }
- var n = fromIndex | 0;//查找起始索引
- var k = Math.max(n >= 0 ? n : len - Math.abs(n), 0);//计算正确起始索引,因为有可能是负值
- while (k < len) {//从起始索引处开始循环
- if (o[k] === searchElement) {//如果某一位置与寻找目标相等,返回true,找到了
- return true;
- }
- k++;
- }
- return false;//未找到,返回false
- }
- });
- }
- if (typeof String.prototype.startsWith != 'function') {
- String.prototype.startsWith = function (prefix){
- return this.slice(0, prefix.length) === prefix;
- };
- }
- if (typeof String.prototype.endsWith != 'function') {
- String.prototype.endsWith = function(suffix) {
- return this.indexOf(suffix, this.length - suffix.length) !== -1;
- };
- }
- Object.prototype.myValues=function(obj){
- if(obj ==null) {
- throw new TypeError("Cannot convert undefined or null to object");
- }
- var res=[]
- for(var k in obj){
- if(obj.hasOwnProperty(k)){//需判断是否是本身的属性
- res.push(obj[k]);
- }
- }
- return res;
- }
- if (typeof Object.prototype.values != 'function') {
- Object.prototype.values=function(obj){
- if(obj ==null) {
- throw new TypeError("Cannot convert undefined or null to object");
- }
- var res=[]
- for(var k in obj){
- if(obj.hasOwnProperty(k)){//需判断是否是本身的属性
- res.push(obj[k]);
- }
- }
- return res;
- }
- }
- if (typeof Array.prototype.join != 'function') {
- Array.prototype.join = function (emoji) {
- // emoji = emoji||',';
- emoji = emoji||'';
- let self = this;
- let str = "";
- let i = 0;
- if (!Array.isArray(self)) {throw String(self)+'is not Array'}
- if(self.length===0){return ''}
- if (self.length === 1){return String(self[0])}
- i = 1;
- str = this[0];
- for (; i < self.length; i++) {
- str += String(emoji)+String(self[i]);
- }
- return str;
- };
- }
- String.prototype.rstrip = function (chars) {
- let regex = new RegExp(chars + "$");
- return this.replace(regex, "");
- };
- Array.prototype.append = Array.prototype.push;
- String.prototype.strip = String.prototype.trim;
- function 是否正版(vipUrl){
- let flag = new RegExp('qq\.com|iqiyi\.com|youku\.com|mgtv\.com|bilibili\.com|sohu\.com|ixigua\.com|pptv\.com|miguvideo\.com|le\.com|1905\.com|fun\.tv');
- return flag.test(vipUrl);
- }
- function urlDeal(vipUrl){
- if(!vipUrl){
- return ''
- }
- if(!是否正版(vipUrl)){
- return vipUrl
- }
- if(!/miguvideo/.test(vipUrl)){
- vipUrl=vipUrl.split('#')[0].split('?')[0];
- }
- return vipUrl
- }
- function setResult(d){
- if(!Array.isArray(d)){
- return []
- }
- VODS = [];
- // console.log(JSON.stringify(d));
- d.forEach(function (it){
- let obj = {
- vod_id:it.url||'',
- vod_name: it.title||'',
- vod_remarks: it.desc||'',
- vod_content: it.content||'',
- vod_pic: it.pic_url||it.img||'',
- };
- let keys = Object.keys(it);
- if(keys.includes('tname')){
- obj.type_name = it.tname||'';
- }
- if(keys.includes('tid')){
- obj.type_id = it.tid||'';
- }
- if(keys.includes('year')){
- obj.vod_year = it.year||'';
- }
- if(keys.includes('actor')){
- obj.vod_actor = it.actor||'';
- }
- if(keys.includes('director')){
- obj.vod_director = it.director||'';
- }
- if(keys.includes('area')){
- obj.vod_area = it.area||'';
- }
- VODS.push(obj);
- });
- return VODS
- }
- function setResult2(res){
- VODS = res.list||[];
- return VODS
- }
- function setHomeResult(res){
- if(!res||typeof(res)!=='object'){
- return []
- }
- return setResult(res.list);
- }
- // 千万不要用for in 推荐 forEach (for in 会打乱顺序)
- //猫函数
- function maoss(jxurl, ref, key) {
- eval(getCryptoJS());
- try {
- var getVideoInfo = function (text) {
- return CryptoJS.AES.decrypt(text, key, {iv: iv, padding: CryptoJS.pad.Pkcs7}).toString(CryptoJS.enc.Utf8);
- };
- var token_key = key == undefined ? 'dvyYRQlnPRCMdQSe' : key;
- if (ref) {
- var html = request(jxurl, {
- headers: {
- 'Referer': ref
- }
- });
- } else {
- var html = request(jxurl);
- }
- // print(html);
- if (html.indexOf('&btwaf=') != -1) {
- html = request(jxurl + '&btwaf' + html.match(/&btwaf(.*?)"/)[1], {
- headers: {
- 'Referer': ref
- }
- })
- }
- var token_iv = html.split('_token = "')[1].split('"')[0];
- var key = CryptoJS.enc.Utf8.parse(token_key);
- var iv = CryptoJS.enc.Utf8.parse(token_iv);
- // log("iv:"+iv);
- // log(html);
- // print(key);
- // print(iv);
- eval(html.match(/var config = {[\s\S]*?}/)[0] + '');
- // config.url = config.url.replace(/,/g,'');
- // print(config.url);
- if (!config.url.startsWith('http')) {
- //config.url = decodeURIComponent(AES(config.url, key, iv));
- config.url = CryptoJS.AES.decrypt(config.url, key, {
- iv: iv,
- padding: CryptoJS.pad.Pkcs7
- }).toString(CryptoJS.enc.Utf8)
- }
- return config.url;
- } catch (e) {
- return '';
- }
- }
- function urlencode (str) {
- str = (str + '').toString();
- return encodeURIComponent(str).replace(/!/g, '%21').replace(/'/g, '%27').replace(/\(/g, '%28').
- replace(/\)/g, '%29').replace(/\*/g, '%2A').replace(/%20/g, '+');
- }
- globalThis.VODS = [];// 一级或者搜索需要的数据列表
- globalThis.VOD = {};// 二级的单个数据
- globalThis.encodeUrl = urlencode;
- globalThis.urlencode = urlencode;
- globalThis.是否正版 = 是否正版;
- globalThis.urlDeal = urlDeal;
- globalThis.setResult = setResult;
- globalThis.setResult2 = setResult2;
- globalThis.setHomeResult = setHomeResult;
- globalThis.maoss = maoss;
- // globalThis.urljoin2 = joinUrl;
- // export default {
- // 是否正版:是否正版,
- // urlDeal:urlDeal,
- // setResult:setResult,
- // setResult2:setResult2,
- // setHomeResult:setHomeResult,
- // maoss:maoss,
- // urlencode:urlencode
- // }
|