mirror of
https://github.com/alantang1977/X.git
synced 2024-11-06 11:03:11 +02:00
135 lines
3.5 KiB
JavaScript
135 lines
3.5 KiB
JavaScript
|
// 搜索滑块验证
|
||
|
import { load, _ } from './lib/cat.js';
|
||
|
|
||
|
let key = '短视频';
|
||
|
let HOST = 'http://www.sharenice.net';
|
||
|
let siteKey = '';
|
||
|
let siteType = 0;
|
||
|
let PC_UA = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36';
|
||
|
|
||
|
async function request(reqUrl, agentSp) {
|
||
|
let res = await req(reqUrl, {
|
||
|
method: 'get',
|
||
|
headers: {
|
||
|
'User-Agent': agentSp || PC_UA,
|
||
|
},
|
||
|
});
|
||
|
return res.content;
|
||
|
}
|
||
|
|
||
|
async function init(cfg) {
|
||
|
siteKey = cfg.skey;
|
||
|
siteType = cfg.stype;
|
||
|
}
|
||
|
|
||
|
function clsjoin(cls) {
|
||
|
_.each(cls, (s) => {
|
||
|
let typeId = s.attribs['href'];
|
||
|
typeId = typeId.substring(typeId.lastIndexOf('t/') + 2);
|
||
|
classes.push({
|
||
|
type_id: typeId,
|
||
|
type_name: s.children[0].data,
|
||
|
});
|
||
|
});
|
||
|
}
|
||
|
|
||
|
let classes = [];
|
||
|
async function home(filter) {
|
||
|
let filterObj = {};
|
||
|
let html = await request(HOST);
|
||
|
let $ = load(html);
|
||
|
let series = $('div.nav > ul > li > a[href*=net/]');
|
||
|
let tag = $('div.hot-tags-list > a[href*=net]');
|
||
|
clsjoin(series);
|
||
|
clsjoin(tag);
|
||
|
return JSON.stringify({
|
||
|
class: classes,
|
||
|
filters: filterObj,
|
||
|
});
|
||
|
}
|
||
|
|
||
|
async function homeVod() {
|
||
|
let link = HOST + '/t-576O5aWz';
|
||
|
let html = await request(link);
|
||
|
let $ = load(html);
|
||
|
let items = $('div.item-box ul li');
|
||
|
let videos = _.map(items, (item) => {
|
||
|
let a = $(item).find('a:first')[0];
|
||
|
let img = $(item).find('img:first')[0];
|
||
|
return {
|
||
|
vod_id: a.attribs.href,
|
||
|
vod_name: a.attribs.title,
|
||
|
vod_pic: img.attribs['data-original'],
|
||
|
vod_remarks: '',
|
||
|
};
|
||
|
});
|
||
|
return JSON.stringify({
|
||
|
list: videos,
|
||
|
});
|
||
|
}
|
||
|
|
||
|
async function category(tid, pg, filter, extend) {
|
||
|
if (pg <= 0 || typeof(pg) == 'undefined') pg = 1;
|
||
|
let link = HOST + '/' + tid + '?page=' + pg;
|
||
|
let html = await request(link);
|
||
|
let $ = load(html);
|
||
|
let items = $('div.item-box ul li');
|
||
|
let videos = _.map(items, (item) => {
|
||
|
let a = $(item).find('a:first')[0];
|
||
|
let img = $(item).find('img:first')[0];
|
||
|
return {
|
||
|
vod_id: a.attribs.href,
|
||
|
vod_name: a.attribs.title,
|
||
|
vod_pic: img.attribs['data-original'],
|
||
|
vod_remarks: '',
|
||
|
};
|
||
|
});
|
||
|
let hasMore = $('ul.pagination > li > a:contains(»)').length > 0;
|
||
|
let pgCount = hasMore ? parseInt(pg) + 1 : parseInt(pg);
|
||
|
return JSON.stringify({
|
||
|
page: parseInt(pg),
|
||
|
pagecount: pgCount,
|
||
|
limit: 16,
|
||
|
total: 16 * pgCount,
|
||
|
list: videos,
|
||
|
});
|
||
|
}
|
||
|
|
||
|
async function detail(id) {
|
||
|
let vod = {
|
||
|
vod_id: id,
|
||
|
vod_remarks: '',
|
||
|
};
|
||
|
let playlist = ['观看视频' + '$' + id];
|
||
|
vod.vod_play_from = '道长在线';
|
||
|
vod.vod_play_url = playlist.join('#');
|
||
|
return JSON.stringify({
|
||
|
list: [vod],
|
||
|
});
|
||
|
}
|
||
|
|
||
|
async function play(flag, id, flags) {
|
||
|
let html = await request(id);
|
||
|
let $ = load(html);
|
||
|
let playUrl = $('div.video-play-box').find('video:first')[0].attribs.src + '#.mp4';
|
||
|
return JSON.stringify({
|
||
|
parse: 0,
|
||
|
url: playUrl,
|
||
|
});
|
||
|
}
|
||
|
|
||
|
async function search(wd, quick, pg) {
|
||
|
return '{}';
|
||
|
}
|
||
|
|
||
|
export function __jsEvalReturn() {
|
||
|
return {
|
||
|
init: init,
|
||
|
home: home,
|
||
|
homeVod: homeVod,
|
||
|
category: category,
|
||
|
detail: detail,
|
||
|
play: play,
|
||
|
search: search,
|
||
|
};
|
||
|
}
|