update UG
This commit is contained in:
+278
-1
@@ -1 +1,278 @@
|
||||
//bbQ0FUT1CkAR5pa2FuYm90X29wZW4uanMsYXNzZXRzOi8vanMvbGliL2NhdC5qcxxfX2pzRXZhbFJldHVybgxDcnlwdG8IbG9hZAJfBmtleQZ1cmwOc2l0ZUtleRBzaXRlVHlwZQRVQQ5yZXF1ZXN0CGluaXQQZ2V0Q2xhc3MIaG9tZQ5ob21lVm9kEGNhdGVnb3J5DGRldGFpbBhiYXNlNjRFbmNvZGUYYmFzZTY0RGVjb2RlCHBsYXkMc2VhcmNoDmlrYW5ib3QuaHR0cHM6Ly93d3cuaWthbmJvdC5jb22WAk1vemlsbGEvNS4wIChpUGhvbmU7IENQVSBpUGhvbmUgT1MgMTNfMl8zIGxpa2UgTWFjIE9TIFgpIEFwcGxlV2ViS2l0LzYwNS4xLjE1IChLSFRNTCwgbGlrZSBHZWNrbykgVmVyc2lvbi8xMy4wLjMgTW9iaWxlLzE1RTE0OCBTYWZhcmkvNjA0LjEMcmVxVXJsDmFnZW50U3AGcmVzBnJlcQxtZXRob2QUVXNlci1BZ2VudA5yZWZlcmVyDmhlYWRlcnMOY29udGVudAZjZmcIc2tleQpzdHlwZQIkBm5hdgh0YWdzCnRpdGxlNnVsLm5hdi1waWxsczplcSgxKSA+IGxpID4gYQZ0YWcFB2h+ewZtYXACdhZ0aXRsZTpmaXJzdAh0ZXh0Ai0Sc3Vic3RyaW5nDnR5cGVfaWQSdHlwZV9uYW1lBmNscwJuEGNoaWxkcmVuCGRhdGEOYXR0cmlicwhocmVmDGZpbHRlcg5jbGFzc2VzEmZpbHRlck9iaghjYXRlCGh0bWwxLwBoAG8AdAAvAGkAbgBkAGUAeAAtAG0AbwB2AGkAZQAtAO1w6JUuAGgAdABtAGwAKy8AaABvAHQALwBpAG4AZABlAHgALQB0AHYALQDtcOiVLgBoAHQAbQBsAAhwdXNoEnN0cmluZ2lmeQ5maWx0ZXJzCml0ZW1zDGpzQmFzZQx2aWRlb3MiZGl2LnYtbGlzdCBhLml0ZW0QanMyUHJveHkIaW1nLwhsaXN0CGl0ZW0GaW1nCGZpbmQSaW1nOmZpcnN0DHZvZF9pZAZhbHQQdm9kX25hbWUQZGF0YS1zcmMOdm9kX3BpYxZ2b2RfcmVtYXJrcwZ0aWQEcGcMZXh0ZW5kCGxpbmsOaGFzTW9yZQ5wZ0Nv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
|
||||
import { Crypto, load, _ } from 'assets://js/lib/cat.js';
|
||||
|
||||
let key = 'ikanbot';
|
||||
let url = 'https://www.aikanbot.com';
|
||||
let siteKey = '';
|
||||
let siteType = 0;
|
||||
|
||||
const UA = 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1';
|
||||
|
||||
async function request(reqUrl, agentSp) {
|
||||
let res = await req(reqUrl, {
|
||||
method: 'get',
|
||||
headers: {
|
||||
'User-Agent': agentSp || UA,
|
||||
'referer': url
|
||||
},
|
||||
});
|
||||
return res.content;
|
||||
}
|
||||
|
||||
// cfg = {skey: siteKey, ext: extend}
|
||||
async function init(cfg) {
|
||||
siteKey = cfg.skey;
|
||||
siteType = cfg.stype;
|
||||
}
|
||||
|
||||
function getClass($) {
|
||||
const nav = $('ul.nav-pills:eq(1) > li > a');
|
||||
let tags = {
|
||||
key: 'tag',
|
||||
name: '标签',
|
||||
value: _.map(nav, (n) => {
|
||||
return { n: n.children[0].data, v: n.attribs.href };
|
||||
}),
|
||||
};
|
||||
tags['init'] = tags.value[0].v;
|
||||
const title = $('title:first').text().split('-')[0].substring(2);
|
||||
return { cls: { type_id: tags.value[0].v, type_name: title }, tags: [tags] };
|
||||
}
|
||||
|
||||
async function home(filter) {
|
||||
let classes = [];
|
||||
let filterObj = {};
|
||||
for (const cate of ['/hot/index-movie-热门.html', '/hot/index-tv-热门.html']) {
|
||||
const html = await request(url + cate);
|
||||
const $ = load(html);
|
||||
const { cls, tags } = getClass($);
|
||||
classes.push(cls);
|
||||
filterObj[cls.type_id] = tags;
|
||||
}
|
||||
return JSON.stringify({
|
||||
class: classes,
|
||||
filters: filterObj,
|
||||
});
|
||||
}
|
||||
|
||||
async function homeVod() {
|
||||
const html = await request(url);
|
||||
const $ = load(html);
|
||||
const items = $('div.v-list a.item');
|
||||
var jsBase = await js2Proxy(true, siteType, siteKey, 'img/', {});
|
||||
let videos = _.map(items, (item) => {
|
||||
const img = $(item).find('img:first')[0];
|
||||
return {
|
||||
vod_id: item.attribs.href,
|
||||
vod_name: img.attribs.alt,
|
||||
vod_pic: jsBase + base64Encode(img.attribs['data-src']),
|
||||
vod_remarks: '',
|
||||
};
|
||||
});
|
||||
return JSON.stringify({
|
||||
list: videos,
|
||||
});
|
||||
}
|
||||
|
||||
async function category(tid, pg, filter, extend) {
|
||||
if (pg <= 0) pg = 1;
|
||||
const link = url + (extend.tag || tid).replace('.html', pg > 1 ? `-p-${pg}.html` : '.html');
|
||||
const html = await request(link);
|
||||
const $ = load(html);
|
||||
const items = $('div.v-list a.item');
|
||||
var jsBase = await js2Proxy(true, siteType, siteKey, 'img/', {});
|
||||
let videos = _.map(items, (item) => {
|
||||
const img = $(item).find('img:first')[0];
|
||||
return {
|
||||
vod_id: item.attribs.href,
|
||||
vod_name: img.attribs.alt,
|
||||
vod_pic: jsBase + base64Encode(img.attribs['data-src']),
|
||||
vod_remarks: '',
|
||||
};
|
||||
});
|
||||
const hasMore = $('div.page-more > a:contains(下一页)').length > 0;
|
||||
const pgCount = hasMore ? parseInt(pg) + 1 : parseInt(pg);
|
||||
return JSON.stringify({
|
||||
page: parseInt(pg),
|
||||
pagecount: pgCount,
|
||||
limit: 24,
|
||||
total: 24 * pgCount,
|
||||
list: videos,
|
||||
});
|
||||
}
|
||||
|
||||
async function detail(id) {
|
||||
const html = await request(url + id);
|
||||
const $ = load(html);
|
||||
var jsBase = await js2Proxy(true, siteType, siteKey, 'img/', {});
|
||||
const detail = $('div.detail');
|
||||
const remarks = $('span#line-tips').text();
|
||||
let vod = {
|
||||
vod_id: id,
|
||||
vod_pic: jsBase + base64Encode($('div.item-root > img')[0].attribs['data-src']),
|
||||
vod_remarks: '',
|
||||
vod_content: remarks || '',
|
||||
vod_name: $(detail).find('h2').text().trim(),
|
||||
vod_year: $(detail).find('h3:nth-child(3)').text(),
|
||||
vod_area: $(detail).find('h3:nth-child(4)').text(),
|
||||
vod_actor: $(detail).find('h3:nth-child(5)').text(),
|
||||
};
|
||||
const token = getToken($);
|
||||
const res = await req(url + '/api/getResN?videoId=' + id.substring(id.lastIndexOf('/') + 1) + '&mtype=2&token=' + token, {
|
||||
headers: {
|
||||
Referer: 'play',
|
||||
'User-Agent': UA,
|
||||
},
|
||||
});
|
||||
const list = JSON.parse(res.content).data.list;
|
||||
let playlist = {};
|
||||
let arr = []
|
||||
for (const l of list) {
|
||||
const flagData = JSON.parse(l.resData);
|
||||
for (const f of flagData) {
|
||||
const from = f.flag;
|
||||
const urls = f.url;
|
||||
if (!from || !urls) continue;
|
||||
if (playlist[from]) continue;
|
||||
playlist[from] = urls;
|
||||
}
|
||||
}
|
||||
for (var key in playlist) {
|
||||
if ('kuaikan' == key) {
|
||||
arr.push({
|
||||
flag: '快看',
|
||||
url: playlist[key],
|
||||
sort: 1
|
||||
})
|
||||
} else if ('bfzym3u8' == key) {
|
||||
arr.push({
|
||||
flag: '暴风',
|
||||
url: playlist[key],
|
||||
sort: 2
|
||||
})
|
||||
} else if ('ffm3u8' == key) {
|
||||
arr.push({
|
||||
flag: '非凡',
|
||||
url: playlist[key],
|
||||
sort: 3
|
||||
})
|
||||
} else if ('lzm3u8' == key) {
|
||||
arr.push({
|
||||
flag: '量子',
|
||||
url: playlist[key],
|
||||
sort: 4
|
||||
})
|
||||
} else {
|
||||
arr.push({
|
||||
flag: key,
|
||||
url: playlist[key],
|
||||
sort: 5
|
||||
})
|
||||
}
|
||||
}
|
||||
arr.sort((a, b) => a.sort - b.sort);
|
||||
let playFrom = [];
|
||||
let playList = [];
|
||||
arr.map(val => {
|
||||
playFrom.push(val.flag);
|
||||
playList.push(val.url);
|
||||
})
|
||||
vod.vod_play_from = playFrom.join("$$$");
|
||||
vod.vod_play_url = playList.join("$$$");
|
||||
return JSON.stringify({
|
||||
list: [vod],
|
||||
});
|
||||
}
|
||||
|
||||
function getToken($) {
|
||||
const currentId = $('#current_id').val();
|
||||
let eToken = $('#e_token').val();
|
||||
if (!currentId || !eToken) return '';
|
||||
const idLength = currentId.length;
|
||||
const subId = currentId.substring(idLength - 4, idLength);
|
||||
let keys = [];
|
||||
for (let i = 0; i < subId.length; i++) {
|
||||
const curInt = parseInt(subId[i]);
|
||||
const splitPos = curInt % 3 + 1;
|
||||
keys[i] = eToken.substring(splitPos, splitPos + 8);
|
||||
eToken = eToken.substring(splitPos + 8, eToken.length);
|
||||
}
|
||||
return keys.join('');
|
||||
}
|
||||
|
||||
function base64Encode(text) {
|
||||
return Crypto.enc.Base64.stringify(Crypto.enc.Utf8.parse(text));
|
||||
}
|
||||
|
||||
function base64Decode(text) {
|
||||
return Crypto.enc.Utf8.stringify(Crypto.enc.Base64.parse(text));
|
||||
}
|
||||
|
||||
async function proxy(segments, headers) {
|
||||
let what = segments[0];
|
||||
let url = base64Decode(segments[1]);
|
||||
if (what == 'img') {
|
||||
var resp = await req(url, {
|
||||
buffer: 2,
|
||||
headers: {
|
||||
Referer: url,
|
||||
'User-Agent': UA,
|
||||
},
|
||||
});
|
||||
return JSON.stringify({
|
||||
code: resp.code,
|
||||
buffer: 2,
|
||||
content: resp.content,
|
||||
headers: resp.headers,
|
||||
});
|
||||
}
|
||||
return JSON.stringify({
|
||||
code: 500,
|
||||
content: '',
|
||||
});
|
||||
}
|
||||
|
||||
async function play(flag, id, flags) {
|
||||
return JSON.stringify({
|
||||
parse: 0,
|
||||
url: id,
|
||||
});
|
||||
}
|
||||
|
||||
async function search(wd, quick, pg) {
|
||||
if (pg <= 0 || typeof(pg) == 'undefined') pg = 1;
|
||||
const html = await request(url + '/search?q=' + wd + '&p=' + pg);
|
||||
const $ = load(html);
|
||||
const items = $('div.media');
|
||||
var jsBase = await js2Proxy(true, siteType, siteKey, 'img/', {});
|
||||
let videos = _.map(items, (item) => {
|
||||
const a = $(item).find('a:first')[0];
|
||||
const img = $(item).find('img:first')[0];
|
||||
const remarks = $($(item).find('span.label')[0]).text().trim();
|
||||
return {
|
||||
vod_id: a.attribs.href,
|
||||
vod_name: img.attribs.alt,
|
||||
vod_pic: jsBase + base64Encode(img.attribs['data-src']),
|
||||
vod_remarks: remarks || '',
|
||||
};
|
||||
});
|
||||
const hasMore = $('div.page-more > a:contains(下一页)').length > 0;
|
||||
const pgCount = hasMore ? parseInt(pg) + 1 : parseInt(pg);
|
||||
return JSON.stringify({
|
||||
page: parseInt(pg),
|
||||
pagecount: pgCount,
|
||||
list: videos,
|
||||
});
|
||||
}
|
||||
|
||||
export function __jsEvalReturn() {
|
||||
return {
|
||||
init: init,
|
||||
home: home,
|
||||
homeVod: homeVod,
|
||||
category: category,
|
||||
detail: detail,
|
||||
play: play,
|
||||
proxy: proxy,
|
||||
search: search,
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user