zyj 3 months ago
parent
commit
7f461f7f95
5 changed files with 295 additions and 0 deletions
  1. 12 0
      fm/FreeOK.js
  2. 14 0
      fm/JustLive.js
  3. 53 0
      fm/LIBVIO.js
  4. 10 0
      fm/SC1080.js
  5. 206 0
      fm/jiohub.js

File diff suppressed because it is too large
+ 12 - 0
fm/FreeOK.js


File diff suppressed because it is too large
+ 14 - 0
fm/JustLive.js


+ 53 - 0
fm/LIBVIO.js

@@ -0,0 +1,53 @@
+// 永久网址:https://libvio.app
+muban.首图2.二级.title = 'h1&&Text;.data:eq(0)&&Text'
+muban.首图2.二级.desc = '.data.hidden-xs&&Text;;;.data:eq(1)&&Text;.data:eq(4)&&Text'
+muban.首图2.二级.content = '.detail-content&&Text'
+var rule = {
+	title:'LIBVIO',
+	模板:'首图2',
+	//host:'https://www.libvio.me',
+	host:'https://www.libvio.pro',
+	// hostJs:'print(HOST);let html=request(HOST,{headers:{"User-Agent":PC_UA}});let src=jsp.pdfh(html,"li:eq(0)&&a:eq(0)&&href");print(src);HOST=src',
+	// url:'/type/fyclass-fypage.html',
+	url:'/show/fyclassfyfilter.html',
+	// url:'/show_fyclassfyfilter.html',
+	filterable:1,//是否启用分类筛选,
+	filter_url:'-{{fl.area}}-{{fl.by}}--{{fl.lang}}----fypage---{{fl.year}}',
+	filter: {
+		"1":[{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"中国大陆","v":"中国大陆"},{"n":"中国香港","v":"中国香港"},{"n":"中国台湾","v":"中国台湾"},{"n":"美国","v":"美国"},{"n":"法国","v":"法国"},{"n":"英国","v":"英国"},{"n":"日本","v":"日本"},{"n":"韩国","v":"韩国"},{"n":"德国","v":"德国"},{"n":"泰国","v":"泰国"},{"n":"印度","v":"印度"},{"n":"意大利","v":"意大利"},{"n":"西班牙","v":"西班牙"},{"n":"加拿大","v":"加拿大"},{"n":"其他","v":"其他"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"2014","v":"2014"},{"n":"2013","v":"2013"},{"n":"2012","v":"2012"},{"n":"2011","v":"2011"},{"n":"2010","v":"2010"}]},{"key":"lang","name":"语言","value":[{"n":"全部","v":""},{"n":"国语","v":"国语"},{"n":"英语","v":"英语"},{"n":"粤语","v":"粤语"},{"n":"闽南语","v":"闽南语"},{"n":"韩语","v":"韩语"},{"n":"日语","v":"日语"},{"n":"法语","v":"法语"},{"n":"德语","v":"德语"},{"n":"其它","v":"其它"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}],
+		"2":[{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"中国大陆","v":"中国大陆"},{"n":"中国台湾","v":"中国台湾"},{"n":"中国香港","v":"中国香港"},{"n":"韩国","v":"韩国"},{"n":"日本","v":"日本"},{"n":"美国","v":"美国"},{"n":"泰国","v":"泰国"},{"n":"英国","v":"英国"},{"n":"新加坡","v":"新加坡"},{"n":"其他","v":"其他"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"2014","v":"2014"},{"n":"2013","v":"2013"},{"n":"2012","v":"2012"},{"n":"2011","v":"2011"},{"n":"2010","v":"2010"}]},{"key":"lang","name":"语言","value":[{"n":"全部","v":""},{"n":"国语","v":"国语"},{"n":"英语","v":"英语"},{"n":"粤语","v":"粤语"},{"n":"闽南语","v":"闽南语"},{"n":"韩语","v":"韩语"},{"n":"日语","v":"日语"},{"n":"其它","v":"其它"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}],
+		"4":[{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"中国","v":"中国"},{"n":"日本","v":"日本"},{"n":"欧美","v":"欧美"},{"n":"其他","v":"其他"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"2014","v":"2014"},{"n":"2013","v":"2013"},{"n":"2012","v":"2012"},{"n":"2011","v":"2011"},{"n":"2010","v":"2010"},{"n":"2009","v":"2009"},{"n":"2008","v":"2008"},{"n":"2007","v":"2007"},{"n":"2006","v":"2006"},{"n":"2005","v":"2005"},{"n":"2004","v":"2004"}]},{"key":"lang","name":"语言","value":[{"n":"全部","v":""},{"n":"国语","v":"国语"},{"n":"英语","v":"英语"},{"n":"粤语","v":"粤语"},{"n":"闽南语","v":"闽南语"},{"n":"韩语","v":"韩语"},{"n":"日语","v":"日语"},{"n":"其它","v":"其它"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}],
+		"27":[{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}],
+		"15":[{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"日本","v":"日本"},{"n":"韩国","v":"韩国"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"2014","v":"2014"},{"n":"2013","v":"2013"},{"n":"2012","v":"2012"},{"n":"2011","v":"2011"},{"n":"2010","v":"2010"}]},{"key":"lang","name":"语言","value":[{"n":"全部","v":""},{"n":"国语","v":"国语"},{"n":"英语","v":"英语"},{"n":"粤语","v":"粤语"},{"n":"闽南语","v":"闽南语"},{"n":"韩语","v":"韩语"},{"n":"日语","v":"日语"},{"n":"其它","v":"其它"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}],
+		"16":[{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"美国","v":"美国"},{"n":"英国","v":"英国"},{"n":"德国","v":"德国"},{"n":"加拿大","v":"加拿大"},{"n":"其他","v":"其他"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2023","v":"2023"},{"n":"2022","v":"2022"},{"n":"2021","v":"2021"},{"n":"2020","v":"2020"},{"n":"2019","v":"2019"},{"n":"2018","v":"2018"},{"n":"2017","v":"2017"},{"n":"2016","v":"2016"},{"n":"2015","v":"2015"},{"n":"2014","v":"2014"},{"n":"2013","v":"2013"},{"n":"2012","v":"2012"},{"n":"2011","v":"2011"},{"n":"2010","v":"2010"}]},{"key":"lang","name":"语言","value":[{"n":"全部","v":""},{"n":"国语","v":"国语"},{"n":"英语","v":"英语"},{"n":"粤语","v":"粤语"},{"n":"闽南语","v":"闽南语"},{"n":"韩语","v":"韩语"},{"n":"日语","v":"日语"},{"n":"其它","v":"其它"}]},{"key":"by","name":"排序","value":[{"n":"时间","v":"time"},{"n":"人气","v":"hits"},{"n":"评分","v":"score"}]}]
+	},
+	headers:{//网站的请求头,完整支持所有的,常带ua和cookies
+		// 'User-Agent':'MOBILE_UA'
+		'User-Agent':'Mozilla/5.0 (Linux; Android 9; ASUS_Z01QD Build/PQ3B.190801.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/91.0.4472.114 Safari/537.36'
+	},
+	class_parse:'.stui-header__menu li:gt(0):lt(7);a&&Text;a&&href;/(\\d+).html',
+	// class_parse:'.stui-header__menu li;a&&Text;a&&href;/.*_(\\d+).html',
+	tab_exclude:'夸克网盘|百度云盘',
+	pagecount:{"27":1},
+	lazy:`js: var html = JSON.parse(request(input).match(/r player_.*?=(.*?)</)[1]);
+var url = html.url;
+var from = html.from;
+var next = html.link_next;
+var id = html.id;
+var nid = html.nid;
+// var paurl = request("https://libvio.cc/static/player/" + from + ".js").match(/ src="(.*?)'/)[1];
+var paurl = request(HOST + "/static/player/" + from + ".js").match(/ src="(.*?)'/)[1];
+if (/https/.test(paurl)) {
+	var purl = paurl + url + "&next=" + next + "&id=" + id + "&nid=" + nid;
+	input = {
+		jx: 0,
+		url: request(purl).match(/var .* = '(.*?)'/)[1],
+		parse: 0
+	}
+}`,
+	searchUrl:'/index.php/ajax/suggest?mid=1&wd=**&limit=50',
+	detailUrl:'/detail/fyid.html', //非必填,二级详情拼接链接
+	// detailUrl:'/detail_fyid.html', //非必填,二级详情拼接链接
+	// searchUrl:'/search/**----------fypage---.html',
+	搜索:'json:list;name;pic;;id',
+}

File diff suppressed because it is too large
+ 10 - 0
fm/SC1080.js


+ 206 - 0
fm/jiohub.js

@@ -0,0 +1,206 @@
+import { Crypto, load, _, dayjs } from 'assets://js/lib/cat.js';
+
+let key = 'jiohub';
+let url = 'https://jiohub.top';
+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';
+
+const cookie = {};
+
+async function request(reqUrl, referer, mth, data, hd) {
+    const headers = {
+        'User-Agent': UA,
+        Cookie: _.map(cookie, (value, key) => {
+            return `${key}=${value}`;
+        }).join(';'),
+    };
+    if (referer) headers.referer = encodeURIComponent(referer);
+    let res = await req(reqUrl, {
+        method: mth || 'get',
+        headers: headers,
+        data: data,
+        postType: mth === 'post' ? 'form' : '',
+    });
+    return res.content;
+}
+
+// cfg = {skey: siteKey, ext: extend}
+async function init(cfg) {
+    siteKey = cfg.skey;
+    siteType = cfg.stype;
+}
+
+async function home(filter) {
+    const html = await request(url);
+    const $ = load(html);
+    const series = $('.nav-list a[href*=/video]');
+    let classes = _.map(series, (s) => {
+        let typeId = s.attribs['href'];
+        let typeName = typeId.match(/\/video\/(.*)\?/)[1];
+        typeName = decodeURIComponent(typeName);
+        return {
+            type_id: typeName,
+            type_name: typeName,
+        };
+    });
+    return JSON.stringify({
+        class: classes,
+    });
+}
+
+async function homeVod() {
+    return '{}';
+}
+
+async function category(tid, pg, filter, extend) {
+    let page = pg || 1;
+    if (page == 0) page = 1;
+    const link = url + '/video/' + tid + "?page=" + page + '&size=18';
+    const html = await request(link);
+    const $ = load(html);
+    const items = $('div.content-body > a');
+    let videos = _.map(items, (item) => {
+        const img = $(item).find('img:first')[0].attribs['src'];
+        const a = item.attribs['href'].match(/\/watch\/(.*)/)[1];
+        const n = ($(item).find('p.card-title')[0]).children[0].data;
+        let speed = ($(item).find('p.item-speed')[0]).children[0].data || '';
+        const score = ($(item).find('p.score')[0]).children[0].data || '';
+        if (speed == tid) speed = '';
+        return {
+            vod_id: a,
+            vod_name: n,
+            vod_pic: img,
+            vod_remarks: speed || score || '',
+        };
+    });
+
+    let total = 18;
+    const pag = $('ui-pagination');
+    if (pag.length > 0) {
+        try {
+            total = parseInt(pag[0].attribs['total']);
+        } catch (error) {
+
+        }
+    }
+
+    return JSON.stringify({
+        page: page,
+        pagecount: _.ceil(total / 18),
+        list: videos,
+    });
+}
+
+function stripHtmlTag(src) {
+    return src
+        .replace(/<\/?[^>]+(>|$)/g, '')
+        .replace(/&.{1,5};/g, '')
+        .replace(/\s{2,}/g, ' ');
+}
+
+async function detail(id) {
+    const html = await request(url + '/watch/' + id);
+    const $ = load(html);
+    const detail = $('div.content-detail > p');
+    let vod = {
+        vod_id: id,
+        vod_content: stripHtmlTag($('div.content-detail span.detail-sketch').html()).trim(),
+    };
+    for (const info of detail) {
+        const i = $(info).text().trim();
+        if (i.startsWith('地区:')) {
+            vod.vod_area = i.substring(3);
+        } else if (i.startsWith('年份:')) {
+            vod.vod_year = i.substring(3);
+        } else if (i.startsWith('类型:')) {
+            vod.vod_type = i.substring(3);
+        } else if (i.startsWith('导演:')) {
+            vod.vod_director = i.substring(3);
+        } else if (i.startsWith('主演:')) {
+            vod.vod_actor = i.substring(3);
+        } else if (i.startsWith('语言:')) {
+            vod.vod_lang = i.substring(3);
+        }
+    }
+
+    const urls = html.match(/let urls = \"(.*)\";/)[1].replace(/_/g, '/').replace(/-/g, '+');
+    var key = Crypto.enc.Utf8.parse("cf2d1a-6a4d-9ef8");
+    var playlist = Crypto.AES.decrypt(urls, key, { iv: key, padding: Crypto.pad.Pkcs7 });
+    playlist = Crypto.enc.Utf8.stringify(playlist).split('\n');
+    vod.vod_play_from = 'JOJO';
+    vod.vod_play_url = playlist.join('#');
+    return JSON.stringify({
+        list: [vod],
+    });
+}
+
+function playPid() {
+    var key = Crypto.enc.Utf8.parse('VSmJTRRE'+dayjs().format('YYYYMMDD'));
+    var iv = Crypto.enc.Hex.parse("00000000000000000000000000000000");
+    var pid = Crypto.AES.encrypt(dayjs().format('YYYY-MM-DD HH:mm'), key, { iv: iv, padding: Crypto.pad.Pkcs7 });
+    pid = pid.toString().replace(/\+/g, '-');
+    return pid;
+}
+
+async function play(flag, id, flags) {
+    return JSON.stringify({
+        parse: 0,
+        url: id + '?pid=' + playPid(),
+        header: {
+            'User-Agent': UA,
+        },
+    });
+}
+
+async function search(wd, quick, pg) {
+    let page = pg || 1;
+    if (page == 0) page = 1;
+    const link = url + '/video/search?q=' + wd + "&page=" + page + '&size=18&pid=' + playPid();
+    const html = await request(link);
+    const $ = load(html);
+    const items = $('div.content-body > a');
+    let videos = _.map(items, (item) => {
+        const img = $(item).find('img:first')[0].attribs['src'];
+        const a = item.attribs['href'].match(/\/watch\/(.*)/)[1];
+        const n = ($(item).find('p.card-title')[0]).children[0].data;
+        let speed = ($(item).find('p.item-speed')[0]).children[0].data || '';
+        const score = ($(item).find('p.score')[0]).children[0].data || '';
+        if (speed == '电影') speed = '';
+        return {
+            vod_id: a,
+            vod_name: n,
+            vod_pic: img,
+            vod_remarks: speed || score || '',
+        };
+    });
+
+    let total = 18;
+    const pag = $('ui-pagination');
+    if (pag.length > 0) {
+        try {
+            total = parseInt(pag[0].attribs['total']);
+        } catch (error) {
+
+        }
+    }
+
+    return JSON.stringify({
+        page: page,
+        pagecount: _.ceil(total / 18),
+        list: videos,
+    });
+}
+
+export function __jsEvalReturn() {
+    return {
+        init: init,
+        home: home,
+        homeVod: homeVod,
+        category: category,
+        detail: detail,
+        play: play,
+        search: search,
+    };
+}

Some files were not shown because too many files changed in this diff