123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209 |
- globalThis.h_ost = 'http://xxsp.xxmh.top/';
- var key = CryptoJS.enc.Base64.parse("MGY3OTFiZmMwZGM2MWU4Zg==");
- var iv = CryptoJS.enc.Base64.parse("MGY3OTFiZmMwZGM2MWU4Zg==");
- globalThis.AES_Decrypt = function(word) {
- try {
- var decrypt = CryptoJS.AES.decrypt(word, key, {
- iv: iv,
- mode: CryptoJS.mode.CBC,
- padding: CryptoJS.pad.Pkcs7,
- });
- const decryptedText = decrypt.toString(CryptoJS.enc.Utf8);
- if (!decryptedText) {
- throw new Error("解密后的内容为空");
- }
- return decryptedText;
- } catch (e) {
- console.error("解密失败:", e);
- return null;
- }
- };
- globalThis.AES_Encrypt = function(word) {
- var encrypted = CryptoJS.AES.encrypt(word, key, {
- iv: iv,
- mode: CryptoJS.mode.CBC,
- padding: CryptoJS.pad.Pkcs7
- });
- return encrypted.toString();
- };
- globalThis.vod1 = function(t, pg) {
- let html1 = request(h_ost + 'api.php/getappapi.index/typeFilterVodList', {
- body: {
- area: '全部',
- year: '全部',
- type_id: t,
- page: pg,
- sort: '最新',
- lang: '全部',
- class: '全部'
- },
- headers: {
- 'User-Agent': 'okhttp/3.14.9',
- 'Content-Type': 'application/x-www-form-urlencoded'
- },
- 'method': 'POST'
- }, true);
- let html = JSON.parse(html1);
- return (AES_Decrypt(html.data));
- }
- globalThis.vodids = function(ids) {
- let html1 = fetch(h_ost + 'api.php/getappapi.index/vodDetail', {
- method: 'POST',
- headers: {
- 'User-Agent': 'okhttp/3.14.9',
- 'Content-Type': 'application/x-www-form-urlencoded'
- },
- body: {
- vod_id: ids,
- }
- });
- let html = JSON.parse(html1);
- const rdata = JSON.parse(AES_Decrypt(html.data));
- const data = {
- vod_id: ids,
- vod_name: rdata.vod.vod_name,
- vod_remarks: rdata.vod.vod_remarks,
- vod_actor: rdata.vod.vod_actor,
- vod_director: rdata.vod.vod_director,
- vod_content: rdata.vod.vod_content,
- vod_play_from: '',
- vod_play_url: ''
- };
- rdata.vod_play_list.forEach((value) => {
- data.vod_play_from += value.player_info.show + '$$$';
- value.urls.forEach((v) => {
- data.vod_play_url += v.name + '$' + value.player_info.parse + '|' + v.url + '#';
- });
- data.vod_play_url += '$$$';
- });
- return data;
- }
- //搜索
- globalThis.ssvod = function(wd) {
- var html1 = fetch(h_ost + 'api.php/getappapi.index/searchList', {
- method: 'POST',
- headers: {
- 'User-Agent': 'okhttp/3.14.9',
- 'Content-Type': 'application/x-www-form-urlencoded'
- },
- body: {
- keywords: wd,
- typepage_id: 1,
- }
- });
- let html = JSON.parse(html1);
- return AES_Decrypt(html.data);
- }
- //解析
- globalThis.jxx = function(id, url) {
- /* if(""!=='104847347'){
- return 'https://mp4.ziyuan.wang/view.php/3c120366111dde9c318be64962b5684f.mp4';
- }*/
- if (id.startsWith('http')) {
- return {
- parse: 1,
- url: id + url,
- jx: 0,
- danmaku: 'http://dm.sds11.top/tdm.php?url=' + url
- };
- }
- if (id == 0) {
- return {
- parse: 0,
- url: id + url,
- jx: 1,
- danmaku: 'http://dm.sds11.top/tdm.php?url=' + url
- };
- }
- let html1 = request(h_ost + 'api.php/getappapi.index/vodParse', {
- method: 'POST',
- headers: {
- 'User-Agent': 'okhttp/3.14.9',
- 'Content-Type': 'application/x-www-form-urlencoded'
- },
- body: {
- parse_api: id,
- url: AES_Encrypt(url),
- }
- });
- let html = AES_Decrypt(JSON.parse(html1).data);
- console.log(html);
- let decry = html.replace(/\n/g, '').replace(/\\/g, '');
- let matches = decry.match(/"url":"([^"]+)"/);
- if (!matches || matches[1] === null) {
- matches = decry.match(/"url": "([^"]+)"/);
- }
- return {
- parse: 0,
- url: matches[1],
- jx: 0,
- danmaku: 'http://dm.sds11.top/tdm.php?url=' + url
- };
- }
- var rule = {
- title: '小虎斑|小熊',
- host: '',
- detailUrl: 'fyid',
- searchUrl: '**',
- url: 'fyclass',
- searchable: 2,
- quickSearch: 1,
- filterable: 0,
- class_name: '电影&电视剧&综艺&动漫',
- class_url: '1&2&3&4',
- play_parse: true,
- lazy: $js.toString(() => {
- const parts = input.split('|');
- input = jxx(parts[0], parts[1]);
- }),
- 推荐: $js.toString(() => {
- let data = vod1(0, 0);
- let bata = JSON.parse(data).recommend_list;
- bata.forEach(it => {
- d.push({
- url: it.vod_id,
- title: it.vod_name,
- img: it.vod_pic,
- desc: it.vod_remarks
- });
- });
- setResult(d);
- }),
- 一级: $js.toString(() => {
- let data = vod1(input, MY_PAGE);
- let bata = JSON.parse(data).recommend_list;
- bata.forEach(it => {
- d.push({
- url: it.vod_id,
- title: it.vod_name,
- img: it.vod_pic,
- desc: it.vod_remarks
- });
- });
- setResult(d);
- }),
- 二级: $js.toString(() => {
- console.log("调试信息2" + input);
- let data = vodids(input);
- //console.log(data);
- VOD = data;
- }),
- 搜索: $js.toString(() => {
- let data = ssvod(input);
- let bata = JSON.parse(data).search_list;
- bata.forEach(it => {
- d.push({
- url: it.vod_id,
- title: it.vod_name,
- img: it.vod_pic,
- desc: it.vod_remarks
- });
- });
- // console.log(data);
- setResult(d);
- }),
- }
|