diff --git a/js/厂长.js b/js/厂长.js deleted file mode 100644 index c1a52c6..0000000 --- a/js/厂长.js +++ /dev/null @@ -1,315 +0,0 @@ -/* -title: '厂长资源', author: '小可乐/v6.1.1' -说明:可以不写ext,也可以写ext,ext支持的参数和格式参数如下 -"ext": { - "host": "xxxx", //站点网址 - "timeout": 6000 //请求超时,单位毫秒 -} -*/ - -const MOBILE_UA = 'Mozilla/5.0 (Linux; Android 11; Pixel 5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.91 Mobile Safari/537.36'; -const DefHeader = {'User-Agent': MOBILE_UA}; -var HOST; -var KParams = { - headers: {'User-Agent': MOBILE_UA}, - timeout: 5000 -}; - -async function init(cfg) { - try { - HOST = (cfg.ext?.host?.trim() || 'https://www.cz01.org').replace(/\/$/, ''); - KParams.headers['Referer'] = HOST; - let parseTimeout = parseInt(cfg.ext?.timeout?.trim(), 10); - if (parseTimeout > 0) {KParams.timeout = parseTimeout;} - } catch (e) { - console.error('初始化参数失败:', e.message); - } -} - -async function home(filter) { - try { - let kclassName = '全部$movie_bt&电影$movie_bt_series/dyy&剧集$movie_bt_series/dianshiju&动画$movie_bt_series/dohua'; - let classes = kclassName.split('&').map(it => { - let [cName, cId] = it.split('$'); - return {type_name: cName, type_id: cId}; - }); - let filters = {}; - try { - const nameObj = { cateId: 'cateId,分类', area: 'area,地区', year: 'year,年份', class: 'class,影片类型', series: 'series,子类'}; - const flValues = { - cateId: {'movie_bt_series/dyy': '全部$movie_bt_series/dyy&豆瓣电影Top250$dbtop250&最新电影$zuixindianying&高分影视$gaofenyingshi&热映中$reyingzhong&会员专区$movie_bt_series/huiyuanzhuanqu&站长推荐$movie_bt_series/zhanchangtuijian&华语电影$movie_bt_series/huayudianying&欧美电影$movie_bt_series/meiguodianying&韩国电影$movie_bt_series/hanguodianying&日本电影$movie_bt_series/ribendianying&印度电影$movie_bt_series/yindudianying&俄罗斯电影$movie_bt_series/eluosidianying&加拿大电影$movie_bt_series/jianadadianying', 'movie_bt_series/dianshiju': '全部$movie_bt_series/dianshiju&国产剧$gcj&美剧$meijutt&韩剧$hanjutv&日剧$movie_bt_series/rj&海外剧$movie_bt_series/hwj', 'movie_bt_series/dohua': '全部$movie_bt_series/dohua&剧场版$dongmanjuchangban&番剧$fanju'}, - area: {'movie_bt': '全部$&中国台湾$tw&中国大陆$zh&中国香港$hk&丹麦$dm&乌克兰$wukelan&以色列$ysl&伊朗$yilang&俄罗斯$els&保加利亚$baojialiya&其他$qt&冰岛$冰岛&利比里亚$libiliya&加拿大$jnd&匈牙利$xiongyali&南非$nanfei&卡塔尔$kataer&卢森堡$lusenbao&印度$yidu&印度尼西亚$yindunixiya&哈萨克斯坦$hasakesitan&哥伦比亚$gelunbiya&土耳其$tuerqi&埃及$aiji&塞尔维亚$塞尔维亚&塞浦路斯$saipulusi&墨西哥$mxg&奥地利$aodili&巴哈马$bahama&巴基斯坦$bajisitan&巴西$bx&希腊$xila&德国$dg&意大利$ydl&拉脱维亚$拉脱维亚&挪威$nuewei&捷克$jieke&摩洛哥$moluoge&摩纳哥$monage&新加坡$xinjiapo&新西兰$xinxilan&日本$riben&柬埔寨$jianpuzhai&比利时$bilishi&法国$fg&波兰$bolan&泰国$taiguo&澳大利亚$adly&爱尔兰$aierlan&瑞典$ruidian&瑞士$ruishi&白俄罗斯$baieluosi&立陶宛$立陶宛&罗马尼亚$luomaniya&美国$meiguo&芬兰$fenlan&英国$yinguo&荷兰$hnwe&蒙古$menggu&西德$xide&西班牙$xby&越南$yuenan&阿根廷$agenting&阿联酋$alianqiu&韩国$hggggg&马来西亚$malaixiya&马耳他$maerta&黎巴嫩$libanen'}, - year: {'movie_bt': '全部$&1900~2000年代$19002000nd&2001~2010年代$20012010nd&2011$2011nd&2012$2012&2013$2013&2014$2014&2015$2015&2016$2016&2017$2017&2018$2018&2019$2019&2020$2020&2021$2021&2022$2022&2023$2023&2024$2024&2025$2025&2026$2026'}, - class: {'movie_bt': '全部$&传记$chuanji&儿童$etet&冒险$maoxian&剧情$juqing&动作$dozuo&动漫$doman&动画$dhh&历史$lishi&古装$guzhuang&同性$tongxing&喜剧$xiju&奇幻$qihuan&家庭$jiating&恐怖$kubu&悬疑$xuanyi&情色$qingse&惊悚$kingsong&战争$zhanzheng&歌舞$gw&武侠$wuxia&灾难$zainan&爱情$aiqing&犯罪$fanzui&真人秀$zrx&短片$dp&科幻$kh&纪录片$jlpp&西部$xb&运动$yd&音乐$yy&鬼怪$鬼怪'}, - series: {'movie_bt': '全部$&会员专区$huiyuanzhuanqu&站长推荐$zhanchangtuijian&电影$dyy&华语电影$huayudianying&欧美电影$meiguodianying&韩国电影$hanguodianying&日本电影$ribendianying&印度电影$yindudianying&俄罗斯电影$eluosidianying&加拿大电影$jianadadianying&电视剧$dianshiju&国产剧$guochanju&美剧$mj&韩剧$hj&日剧$rj&海外剧(其他)$hwj&动画$dohua'} - }; - for (let item of classes) { - filters[item.type_id] = Object.entries(nameObj).map(([nObjk, nObjv]) => { - let [kkey, kname] = nObjv.split(','); - let fvalue = flValues[kkey]?.[item.type_id]?.split('&') || []; - let kvalue = fvalue.map(it => { - let [n, v] = it.split('$'); - return {n: n, v: v}; - }); - return {key: kkey, name: kname, value: kvalue}; - }).filter(flt => flt.key && flt.value.length); - } - } catch (e) { - filters = {}; - } - return JSON.stringify({class: classes, filters: filters}); - } catch (e) { - console.error('获取分类失败:', e.message); - return JSON.stringify({class: [], filters: {}}); - } -} - -async function homeVod() { - try { - let resHtml = await request(HOST); - let VODS = getVodList(resHtml); - return JSON.stringify({list: VODS}); - } catch (e) { - console.error('推荐页获取失败:', e.message); - return JSON.stringify({list: []}); - } -} - -async function category(tid, pg, filter, extend) { - try { - pg = parseInt(pg, 10), pg = pg > 0 ? pg : 1; - let fl = extend ? extend : {}; - let cateUrl = `${HOST}/${fl.cateId || tid}${fl.area ? `/movie_bt_cat/${fl.area}` : ''}${fl.year ? `/year/${fl.year}` : ''}${fl.class ? `/movie_bt_tags/${fl.class}` : ''}${fl.series ? `/movie_bt_series/${fl.series}` : ''}/page/${pg}`; - let resHtml = await request(cateUrl); - let VODS = getVodList(resHtml); - let limit = VODS.length; - let hasMore = cutStr(resHtml, 'pagenavi_txt">', '').includes('>'); - let pagecount = hasMore ? pg + 1 : pg; - return JSON.stringify({list: VODS, page: pg, pagecount: pagecount, limit: limit, total: limit*pagecount}); - } catch (e) { - console.error('类别页获取失败:', e.message); - return JSON.stringify({list: [], page: 1, pagecount: 0, limit: 30, total: 0}); - } -} - -async function search(wd, quick, pg) { - try { - pg = parseInt(pg, 10), pg = pg > 0 ? pg : 1; - let VODS = []; - let searchStop = false, cPage = 1, pgMax = 228; - while (!searchStop && cPage < pgMax) { - let batchEnd = Math.min(cPage + 10, pgMax); - let batchUrlList = []; - for (let page = cPage; page < batchEnd; page++) { - batchUrlList.push(`${HOST}/movie_bt/page/${page}`); - } - let resHtmlList = await Promise.all( - batchUrlList.map(async (burl) => { - try {return await request(burl);} catch (sErr) {return '';} - }) - ); - for (let resHtml of resHtmlList) { - let svods = getVodList(resHtml).filter(it => it.vod_name.includes(wd)); - if (svods.length) {VODS.push(...svods)}; - } - if (VODS.length) {searchStop = true;} - cPage = batchEnd; - } - return JSON.stringify({list: VODS, page: pg, pagecount: 10, limit: 30, total: 300}); - } catch (e) { - console.error('搜索页获取失败:', e.message); - return JSON.stringify({list: [], page: 1, pagecount: 0, limit: 30, total: 0}); - } -} - -function getVodList(khtml) { - try { - if (!khtml) {throw new Error('源码为空');} - let kvods = []; - let listArr = cutStr(khtml, '