提交 314a5cdd 编写于 作者: H hjdhnx

优化drpy豆瓣源支持本地js

上级 f160ead3
无法预览此类型文件
...@@ -28,7 +28,7 @@ var rule = { ...@@ -28,7 +28,7 @@ var rule = {
lazy:'', lazy:'',
// 推荐:'.list_item;img&&alt;img&&src;a&&Text;a&&data-float', // 推荐:'.list_item;img&&alt;img&&src;a&&Text;a&&data-float',
一级:'', 一级:'',
一级:'js:let d=[];let douban=input.split("douban=")[1].split("&")[0];let douban_api_host="https://frodo.douban.com/api/v2";let miniapp_apikey="0ac44ae016490db2204ce0a042db2916";const count=30;function miniapp_request(path,query){try{let url=douban_api_host+path;query.apikey=miniapp_apikey;fetch_params.headers=oheaders;url=buildUrl(url,query);let html=fetch(url,fetch_params);return JSON.parse(html)}catch(e){print("发生了错误:"+e.message);return{}}}function cate_filter(d,douban){douban=douban||"";try{if(MY_CATE==="interests"){if(douban){let status=MY_FL.status||"mark";let subtype_tag=MY_FL.subtype_tag||"";let year_tag=MY_FL.year_tag||"全部";let path="/user/"+douban+"/interests";let res=miniapp_request(path,{type:"movie",status:status,subtype_tag:subtype_tag,year_tag:year_tag,start:(MY_PAGE-1)*count,count:count})}else{return{}}}else if(MY_CATE==="hot_gaia"){let sort=MY_FL.sort||"recommend";let area=MY_FL.area||"全部";let path="/movie/"+MY_CATE;let res=miniapp_request(path,{area:area,sort:sort,start:(MY_PAGE-1)*count,count:count})}else if(MY_CATE==="tv_hot"||MY_CATE==="show_hot"){let stype=MY_FL.type||MY_CATE;let path="/subject_collection/"+stype+"/items";let res=miniapp_request(path,{start:(MY_PAGE-1)*count,count:count})}else if(MY_CATE.startsWith("rank_list")){let id=MY_CATE==="rank_list_movie"?"movie_real_time_hotest":"tv_real_time_hotest";id=MY_FL.榜单||id;let path="/subject_collection/"+id+"/items";let res=miniapp_request(path,{start:(MY_PAGE-1)*count,count:count})}else{let path="/"+MY_CATE+"/recommend";let selected_categories;if(Object.keys(MY_FL).length>0){let sort=MY_FL.sort||"T";let tags=Object.Values(MY_FL).join(",");if(MY_CATE==="movie"){selected_categories={"类型":MY_FL.类型||"","地区":MY_FL.地区||""}}else{selected_categories={"类型":MY_FL.类型||"","形式":MY_FL.类型?MY_FL.类型+"地区":"","地区":MY_FL.地区||""}}}else{let sort="T";let tags="";if(MY_CATE==="movie"){selected_categories={"类型":"","地区":""}}else{selected_categories={"类型":"","形式":"","地区":""}}}let params={tags:tags,sort:sort,refresh:0,selected_categories:stringify(selected_categories),start:(MY_PAGE-1)*count,count:count};let res=miniapp_request(path,params)}let result={page:MY_PAGE,pagecount:Math.ceil(res.total/count),limit:count,total:res.total};let items=[];if(/^rank_list|tv_hot|show_hot/.test(MY_CATE)){items=res["subject_collection_items"]}else if(MY_CATE==="interests"){res["interests"].forEach(function(it){items.push(it.subject)})}else{items=res.items}let lists=[];items.forEach(function(item){if(item.type==="movie"||item.type==="tv"){let rating=item.rating?item.rating.value:"";let rat_str=rating||"暂无评分";let title=item.title;let honor=item.honor_infos||[];let honor_str=honor.map(function(it){return it.title}).join("|");let vod_obj={vod_name:title!=="未知电影"?title:"暂不支持展示",vod_pic:item.pic.normal,vod_remarks:rat_str+" "+honor_str};let vod_obj_d={url:item.type+"$"+item.id,title:title!=="未知电影"?title:"暂不支持展示",pic_url:item.pic.normal,desc:rat_str+" "+honor_str};lists.push(vod_obj);d.push(vod_obj_d)}});result.list=lists;return result}catch(e){print(e.message)}return{}}let res=cate_filter(d);setResult2(res);', 一级:'js:let d=[];let douban=input.split("douban=")[1].split("&")[0];let douban_api_host="https://frodo.douban.com/api/v2";let miniapp_apikey="0ac44ae016490db2204ce0a042db2916";const count=30;function miniapp_request(path,query){try{let url=douban_api_host+path;query.apikey=miniapp_apikey;fetch_params.headers=oheaders;url=buildUrl(url,query);let html=fetch(url,fetch_params);return JSON.parse(html)}catch(e){print("发生了错误:"+e.message);return{}}}function cate_filter(d,douban){douban=douban||"";try{let res={};if(MY_CATE==="interests"){if(douban){let status=MY_FL.status||"mark";let subtype_tag=MY_FL.subtype_tag||"";let year_tag=MY_FL.year_tag||"全部";let path="/user/"+douban+"/interests";res=miniapp_request(path,{type:"movie",status:status,subtype_tag:subtype_tag,year_tag:year_tag,start:(MY_PAGE-1)*count,count:count})}else{return{}}}else if(MY_CATE==="hot_gaia"){let sort=MY_FL.sort||"recommend";let area=MY_FL.area||"全部";let path="/movie/"+MY_CATE;res=miniapp_request(path,{area:area,sort:sort,start:(MY_PAGE-1)*count,count:count})}else if(MY_CATE==="tv_hot"||MY_CATE==="show_hot"){let stype=MY_FL.type||MY_CATE;let path="/subject_collection/"+stype+"/items";res=miniapp_request(path,{start:(MY_PAGE-1)*count,count:count})}else if(MY_CATE.startsWith("rank_list")){let id=MY_CATE==="rank_list_movie"?"movie_real_time_hotest":"tv_real_time_hotest";id=MY_FL.榜单||id;let path="/subject_collection/"+id+"/items";res=miniapp_request(path,{start:(MY_PAGE-1)*count,count:count})}else{let path="/"+MY_CATE+"/recommend";let selected_categories;let tags;let sort;if(Object.keys(MY_FL).length>0){sort=MY_FL.sort||"T";tags=Object.values(MY_FL).join(",");if(MY_CATE==="movie"){selected_categories={"类型":MY_FL.类型||"","地区":MY_FL.地区||""}}else{selected_categories={"类型":MY_FL.类型||"","形式":MY_FL.类型?MY_FL.类型+"地区":"","地区":MY_FL.地区||""}}}else{sort="T";tags="";if(MY_CATE==="movie"){selected_categories={"类型":"","地区":""}}else{selected_categories={"类型":"","形式":"","地区":""}}}let params={tags:tags,sort:sort,refresh:0,selected_categories:stringify(selected_categories),start:(MY_PAGE-1)*count,count:count};res=miniapp_request(path,params)}let result={page:MY_PAGE,pagecount:Math.ceil(res.total/count),limit:count,total:res.total};let items=[];if(/^rank_list|tv_hot|show_hot/.test(MY_CATE)){items=res["subject_collection_items"]}else if(MY_CATE==="interests"){res["interests"].forEach(function(it){items.push(it.subject)})}else{items=res.items}let lists=[];items.forEach(function(item){if(item.type==="movie"||item.type==="tv"){let rating=item.rating?item.rating.value:"";let rat_str=rating||"暂无评分";let title=item.title;let honor=item.honor_infos||[];let honor_str=honor.map(function(it){return it.title}).join("|");let vod_obj={vod_name:title!=="未知电影"?title:"暂不支持展示",vod_pic:item.pic.normal,vod_remarks:rat_str+" "+honor_str};let vod_obj_d={url:item.type+"$"+item.id,title:title!=="未知电影"?title:"暂不支持展示",pic_url:item.pic.normal,desc:rat_str+" "+honor_str};lists.push(vod_obj);d.push(vod_obj_d)}});result.list=lists;return result}catch(e){print(e.message)}return{}}let res=cate_filter(d);setResult2(res);',
二级:'', 二级:'',
搜索:'', 搜索:'',
} }
\ No newline at end of file
var rule = {
title:'drpy',
host:'https://frodo.douban.com',
homeUrl:'',
searchUrl:'',
searchable:1,
quickSearch:1,
filterable:1,
// 分类链接fypage参数支持1个()表达式
url:'/?pg=fypage&class=fyclass&douban=',
filter_url:'fl={{fl}}',
headers:{
"Host": "frodo.douban.com",
"Connection": "Keep-Alive",
"Referer": "https://servicewechat.com/wx2f9b06c1de1ccfca/84/page-frame.html",
"content-type": "application/json",
"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36 MicroMessenger/7.0.9.501 NetType/WIFI MiniProgramEnv/Windows WindowsWechat"
},
timeout:5000,
class_name:'我的豆瓣&热门电影&热播剧集&热播综艺&电影筛选&电视筛选&电影榜单&电视榜单',
class_url:'interests&hot_gaia&tv_hot&show_hot&movie&tv&rank_list_movie&rank_list_tv',
filter:{'interests': [{'key': 'status', 'name': '状态', 'value': [{'n': '想看', 'v': 'mark'}, {'n': '在看', 'v': 'doing'}, {'n': '看过', 'v': 'done'}]}, {'key': 'subtype_tag', 'name': '形式', 'value': [{'n': '全部', 'v': ''}, {'n': '电影', 'v': 'movie'}, {'n': '电视', 'v': 'tv'}]}, {'key': 'year_tag', 'name': '年代', 'value': [{'n': '全部', 'v': '全部'}, {'n': '2022', 'v': '2022'}, {'n': '2021', 'v': '2021'}, {'n': '2020', 'v': '2020'}, {'n': '2019', 'v': '2019'}, {'n': '2010年代', 'v': '2010年代'}, {'n': '2000年代', 'v': '2000年代'}, {'n': '90年代', 'v': '90年代'}, {'n': '80年代', 'v': '80年代'}, {'n': '70年代', 'v': '70年代'}, {'n': '60年代', 'v': '60年代'}, {'n': '更早', 'v': '更早'}]}], 'hot_gaia': [{'key': 'sort', 'name': '排序', 'value': [{'n': '热度', 'v': 'recommend'}, {'n': '最新', 'v': 'time'}, {'n': '评分', 'v': 'rank'}]}, {'key': 'area', 'name': '地区', 'value': [{'n': '全部', 'v': '全部'}, {'n': '华语', 'v': '华语'}, {'n': '欧美', 'v': '欧美'}, {'n': '韩国', 'v': '韩国'}, {'n': '日本', 'v': '日本'}]}], 'tv_hot': [{'key': 'type', 'name': '分类', 'value': [{'n': '综合', 'v': 'tv_hot'}, {'n': '国产剧', 'v': 'tv_domestic'}, {'n': '欧美剧', 'v': 'tv_american'}, {'n': '日剧', 'v': 'tv_japanese'}, {'n': '韩剧', 'v': 'tv_korean'}, {'n': '动画', 'v': 'tv_animation'}]}], 'show_hot': [{'key': 'type', 'name': '分类', 'value': [{'n': '综合', 'v': 'show_hot'}, {'n': '国内', 'v': 'show_domestic'}, {'n': '国外', 'v': 'show_foreign'}]}], 'movie': [{'key': '类型', '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': '传记'}, {'n': '歌舞', 'v': '歌舞'}, {'n': '武侠', 'v': '武侠'}, {'n': '情色', 'v': '情色'}, {'n': '灾难', 'v': '灾难'}, {'n': '西部', 'v': '西部'}, {'n': '纪录片', 'v': '纪录片'}, {'n': '短片', 'v': '短片'}]}, {'key': '地区', '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': '泰国'}, {'n': '俄罗斯', 'v': '俄罗斯'}, {'n': '加拿大', 'v': '加拿大'}, {'n': '澳大利亚', 'v': '澳大利亚'}, {'n': '爱尔兰', 'v': '爱尔兰'}, {'n': '瑞典', 'v': '瑞典'}, {'n': '巴西', 'v': '巴西'}, {'n': '丹麦', 'v': '丹麦'}]}, {'key': 'sort', 'name': '排序', 'value': [{'n': '近期热度', 'v': 'T'}, {'n': '首映时间', 'v': 'R'}, {'n': '高分优先', 'v': 'S'}]}, {'key': '年代', 'name': '年代', 'value': [{'n': '全部年代', 'v': ''}, {'n': '2022', 'v': '2022'}, {'n': '2021', 'v': '2021'}, {'n': '2020', 'v': '2020'}, {'n': '2019', 'v': '2019'}, {'n': '2010年代', 'v': '2010年代'}, {'n': '2000年代', 'v': '2000年代'}, {'n': '90年代', 'v': '90年代'}, {'n': '80年代', 'v': '80年代'}, {'n': '70年代', 'v': '70年代'}, {'n': '60年代', 'v': '60年代'}, {'n': '更早', 'v': '更早'}]}], 'tv': [{'key': '类型', 'name': '类型', 'value': [{'n': '不限', 'v': ''}, {'n': '电视剧', 'v': '电视剧'}, {'n': '综艺', 'v': '综艺'}]}, {'key': '电视剧形式', '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': '传记'}, {'n': '剧情', 'v': '剧情'}, {'n': '奇幻', 'v': '奇幻'}, {'n': '惊悚', 'v': '惊悚'}, {'n': '灾难', 'v': '灾难'}, {'n': '歌舞', 'v': '歌舞'}, {'n': '音乐', 'v': '音乐'}]}, {'key': '综艺形式', 'name': '综艺形式', 'value': [{'n': '不限', 'v': ''}, {'n': '真人秀', 'v': '真人秀'}, {'n': '脱口秀', 'v': '脱口秀'}, {'n': '音乐', 'v': '音乐'}, {'n': '歌舞', 'v': '歌舞'}]}, {'key': '地区', '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': '西班牙'}, {'n': '俄罗斯', 'v': '俄罗斯'}, {'n': '瑞典', 'v': '瑞典'}, {'n': '巴西', 'v': '巴西'}, {'n': '丹麦', 'v': '丹麦'}, {'n': '印度', 'v': '印度'}, {'n': '加拿大', 'v': '加拿大'}, {'n': '爱尔兰', 'v': '爱尔兰'}, {'n': '澳大利亚', 'v': '澳大利亚'}]}, {'key': 'sort', 'name': '排序', 'value': [{'n': '近期热度', 'v': 'T'}, {'n': '首播时间', 'v': 'R'}, {'n': '高分优先', 'v': 'S'}]}, {'key': '年代', 'name': '年代', 'value': [{'n': '全部', 'v': ''}, {'n': '2022', 'v': '2022'}, {'n': '2021', 'v': '2021'}, {'n': '2020', 'v': '2020'}, {'n': '2019', 'v': '2019'}, {'n': '2010年代', 'v': '2010年代'}, {'n': '2000年代', 'v': '2000年代'}, {'n': '90年代', 'v': '90年代'}, {'n': '80年代', 'v': '80年代'}, {'n': '70年代', 'v': '70年代'}, {'n': '60年代', 'v': '60年代'}, {'n': '更早', 'v': '更早'}]}, {'key': '平台', 'name': '平台', 'value': [{'n': '全部', 'v': ''}, {'n': '腾讯视频', 'v': '腾讯视频'}, {'n': '爱奇艺', 'v': '爱奇艺'}, {'n': '优酷', 'v': '优酷'}, {'n': '湖南卫视', 'v': '湖南卫视'}, {'n': 'Netflix', 'v': 'Netflix'}, {'n': 'HBO', 'v': 'HBO'}, {'n': 'BBC', 'v': 'BBC'}, {'n': 'NHK', 'v': 'NHK'}, {'n': 'CBS', 'v': 'CBS'}, {'n': 'NBC', 'v': 'NBC'}, {'n': 'tvN', 'v': 'tvN'}]}], 'rank_list_movie': [{'key': '榜单', 'name': '榜单', 'value': [{'n': '实时热门电影', 'v': 'movie_real_time_hotest'}, {'n': '一周口碑电影榜', 'v': 'movie_weekly_best'}, {'n': '豆瓣电影Top250', 'v': 'movie_top250'}]}], 'rank_list_tv': [{'key': '榜单', 'name': '榜单', 'value': [{'n': '实时热门电视', 'v': 'tv_real_time_hotest'}, {'n': '华语口碑剧集榜', 'v': 'tv_chinese_best_weekly'}, {'n': '全球口碑剧集榜', 'v': 'tv_global_best_weekly'}, {'n': '国内口碑综艺榜', 'v': 'show_chinese_best_weekly'}, {'n': '国外口碑综艺榜', 'v': 'show_global_best_weekly'}]}]},
limit:20,
play_parse:false,
推荐:'',
推荐:'js:let d=[];let douban_api_host="https://frodo.douban.com/api/v2";let miniapp_apikey="0ac44ae016490db2204ce0a042db2916";const count=30;function miniapp_request(path,query){try{let url=douban_api_host+path;query.apikey=miniapp_apikey;fetch_params.headers=oheaders;url=buildUrl(url,query);let html=fetch(url,fetch_params);return JSON.parse(html)}catch(e){print("发生了错误:"+e.message);return{}}}function subject_real_time_hotest(){try{let res=miniapp_request("/subject_collection/subject_real_time_hotest/items",{});let lists=[];let arr=res.subject_collection_items||[];arr.forEach(function(item){if(item.type==="movie"||item.type==="tv"){let rating=item.rating?item.rating.value:"暂无评分";let honnor=(item.honor_infos||[]).map(function(it){return it.title}).join("|");lists.append({vod_id:"msearch:"+TYPE,vod_name:item.title||"",vod_pic:item.pic.normal,vod_remarks:rating+" "+honnor})}});return lists}catch(e){print("发生了错误:"+e.message);return[]}}VODS=subject_real_time_hotest();print(VODS);',
// 手动调用解析请求json的url,此lazy不方便
lazy:'',
// 推荐:'.list_item;img&&alt;img&&src;a&&Text;a&&data-float',
一级:'',
一级:'js:let d=[];let douban=input.split("douban=")[1].split("&")[0];let douban_api_host="https://frodo.douban.com/api/v2";let miniapp_apikey="0ac44ae016490db2204ce0a042db2916";const count=30;function miniapp_request(path,query){try{let url=douban_api_host+path;query.apikey=miniapp_apikey;fetch_params.headers=oheaders;url=buildUrl(url,query);let html=fetch(url,fetch_params);return JSON.parse(html)}catch(e){print("发生了错误:"+e.message);return{}}}function cate_filter(d,douban){douban=douban||"";try{if(MY_CATE==="interests"){if(douban){let status=MY_FL.status||"mark";let subtype_tag=MY_FL.subtype_tag||"";let year_tag=MY_FL.year_tag||"全部";let path="/user/"+douban+"/interests";let res=miniapp_request(path,{type:"movie",status:status,subtype_tag:subtype_tag,year_tag:year_tag,start:(MY_PAGE-1)*count,count:count})}else{return{}}}else if(MY_CATE==="hot_gaia"){let sort=MY_FL.sort||"recommend";let area=MY_FL.area||"全部";let path="/movie/"+MY_CATE;let res=miniapp_request(path,{area:area,sort:sort,start:(MY_PAGE-1)*count,count:count})}else if(MY_CATE==="tv_hot"||MY_CATE==="show_hot"){let stype=MY_FL.type||MY_CATE;let path="/subject_collection/"+stype+"/items";let res=miniapp_request(path,{start:(MY_PAGE-1)*count,count:count})}else if(MY_CATE.startsWith("rank_list")){let id=MY_CATE==="rank_list_movie"?"movie_real_time_hotest":"tv_real_time_hotest";id=MY_FL.榜单||id;let path="/subject_collection/"+id+"/items";let res=miniapp_request(path,{start:(MY_PAGE-1)*count,count:count})}else{let path="/"+MY_CATE+"/recommend";let selected_categories;if(Object.keys(MY_FL).length>0){let sort=MY_FL.sort||"T";let tags=Object.Values(MY_FL).join(",");if(MY_CATE==="movie"){selected_categories={"类型":MY_FL.类型||"","地区":MY_FL.地区||""}}else{selected_categories={"类型":MY_FL.类型||"","形式":MY_FL.类型?MY_FL.类型+"地区":"","地区":MY_FL.地区||""}}}else{let sort="T";let tags="";if(MY_CATE==="movie"){selected_categories={"类型":"","地区":""}}else{selected_categories={"类型":"","形式":"","地区":""}}}let params={tags:tags,sort:sort,refresh:0,selected_categories:stringify(selected_categories),start:(MY_PAGE-1)*count,count:count};let res=miniapp_request(path,params)}let result={page:MY_PAGE,pagecount:Math.ceil(res.total/count),limit:count,total:res.total};let items=[];if(/^rank_list|tv_hot|show_hot/.test(MY_CATE)){items=res["subject_collection_items"]}else if(MY_CATE==="interests"){res["interests"].forEach(function(it){items.push(it.subject)})}else{items=res.items}let lists=[];items.forEach(function(item){if(item.type==="movie"||item.type==="tv"){let rating=item.rating?item.rating.value:"";let rat_str=rating||"暂无评分";let title=item.title;let honor=item.honor_infos||[];let honor_str=honor.map(function(it){return it.title}).join("|");let vod_obj={vod_name:title!=="未知电影"?title:"暂不支持展示",vod_pic:item.pic.normal,vod_remarks:rat_str+" "+honor_str};let vod_obj_d={url:item.type+"$"+item.id,title:title!=="未知电影"?title:"暂不支持展示",pic_url:item.pic.normal,desc:rat_str+" "+honor_str};lists.push(vod_obj);d.push(vod_obj_d)}});result.list=lists;return result}catch(e){print(e.message)}return{}}let res=cate_filter(d);setResult2(res);',
二级:'',
搜索:'',
}
\ No newline at end of file
...@@ -73,6 +73,7 @@ def getRulesJs2py(path='cache',js_mode=0): ...@@ -73,6 +73,7 @@ def getRulesJs2py(path='cache',js_mode=0):
# rule_codes 是个 js2py.base.JsObjectWrapper 类型,所以下面才能用. 获取属性 # rule_codes 是个 js2py.base.JsObjectWrapper 类型,所以下面才能用. 获取属性
new_rule_list = [] new_rule_list = []
for i in range(len(rule_list)): for i in range(len(rule_list)):
# 过滤排除drpy
if js_mode == 1 and rule_list[i] == 'drpy': if js_mode == 1 and rule_list[i] == 'drpy':
continue continue
sable = rule_codes[i].searchable or 0 sable = rule_codes[i].searchable or 0
...@@ -125,8 +126,9 @@ def getRules(path='cache',js_mode=0): ...@@ -125,8 +126,9 @@ def getRules(path='cache',js_mode=0):
# rule_codes 是个 js2py.base.JsObjectWrapper 类型,所以下面才能用. 获取属性 # rule_codes 是个 js2py.base.JsObjectWrapper 类型,所以下面才能用. 获取属性
new_rule_list = [] new_rule_list = []
for i in range(len(rule_list)): for i in range(len(rule_list)):
if js_mode == 1 and rule_list[i] == 'drpy': # 过滤排除drpy
continue # if js_mode == 1 and rule_list[i] == 'drpy':
# continue
rule_codes[i] = ujson.loads(rule_codes[i].json()) rule_codes[i] = ujson.loads(rule_codes[i].json())
sable = rule_codes[i].get('searchable',0) sable = rule_codes[i].get('searchable',0)
tmpObj = { tmpObj = {
......
3.9.9 3.9.9beta1
\ No newline at end of file \ No newline at end of file
js: js:
// print(input);
// print(MY_CATE);
// print(MY_PAGE);
// print(MY_FL);
let d = []; let d = [];
let douban = input.split('douban=')[1].split('&')[0]; let douban = input.split("douban=")[1].split("&")[0];
let douban_api_host = 'https://frodo.douban.com/api/v2'; let douban_api_host = "https://frodo.douban.com/api/v2";
let miniapp_apikey = '0ac44ae016490db2204ce0a042db2916'; let miniapp_apikey = "0ac44ae016490db2204ce0a042db2916";
const count = 30; const count = 30;
function miniapp_request(path, query){ function miniapp_request(path, query) {
try { try {
let url = douban_api_host + path; let url = douban_api_host + path;
query.apikey = miniapp_apikey; query.apikey = miniapp_apikey;
// let headers = {
// "Host": "frodo.douban.com",
// "Connection": "Keep-Alive",
// "Referer": "https://servicewechat.com/wx2f9b06c1de1ccfca/84/page-frame.html",
// "content-type": "application/json",
// "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36 MicroMessenger/7.0.9.501 NetType/WIFI MiniProgramEnv/Windows WindowsWechat"
// }
// fetch_params.headers = headers;
fetch_params.headers = oheaders; fetch_params.headers = oheaders;
// print(fetch_params); url = buildUrl(url, query);
url = buildUrl(url,query); let html = fetch(url, fetch_params);
// let html = request(url); return JSON.parse(html)
let html = fetch(url,fetch_params); } catch (e) {
// print(html); print("发生了错误:" + e.message);
return JSON.parse(html); return {}
}
catch(e){
print('发生了错误:'+e.message);
return {}
} }
} }
function cate_filter(d,douban){ function cate_filter(d, douban) {
douban = douban||''; douban = douban || "";
try { try {
if(MY_CATE==='interests'){ let res = {};
if(douban){ if (MY_CATE === "interests") {
let status = MY_FL.status||"mark"; if (douban) {
let subtype_tag = MY_FL.subtype_tag||""; let status = MY_FL.status || "mark";
let year_tag = MY_FL.year_tag||"全部"; let subtype_tag = MY_FL.subtype_tag || "";
let path = "/user/"+douban+"/interests"; let year_tag = MY_FL.year_tag || "全部";
let res = miniapp_request(path, { let path = "/user/" + douban + "/interests";
"type": "movie", res = miniapp_request(path, {
"status": status, type: "movie",
"subtype_tag": subtype_tag, status: status,
"year_tag": year_tag, subtype_tag: subtype_tag,
"start": (MY_PAGE - 1) * count, year_tag: year_tag,
"count": count start: (MY_PAGE - 1) * count,
}); count: count
// print(res); })
}else{ } else {
return {} return {}
} }
}else if(MY_CATE === "hot_gaia"){ } else if (MY_CATE === "hot_gaia") {
let sort =MY_FL.sort||"recommend"; let sort = MY_FL.sort || "recommend";
let area =MY_FL.area||"全部"; let area = MY_FL.area || "全部";
let path = '/movie/'+MY_CATE; let path = "/movie/" + MY_CATE;
let res = miniapp_request(path, { res = miniapp_request(path, {
"area": area, area: area,
"sort": sort, sort: sort,
"start": (MY_PAGE - 1) * count, start: (MY_PAGE - 1) * count,
"count": count count: count
}); })
// print(res); } else if (MY_CATE === "tv_hot" || MY_CATE === "show_hot") {
}else if(MY_CATE === "tv_hot" || MY_CATE === "show_hot"){ let stype = MY_FL.type || MY_CATE;
let stype = MY_FL.type||MY_CATE; let path = "/subject_collection/" + stype + "/items";
let path = "/subject_collection/"+stype+"/items" res = miniapp_request(path, {
let res = miniapp_request(path, { start: (MY_PAGE - 1) * count,
"start": (MY_PAGE - 1) * count, count: count
"count": count })
}); } else if (MY_CATE.startsWith("rank_list")) {
// print(res); let id = MY_CATE === "rank_list_movie" ? "movie_real_time_hotest" : "tv_real_time_hotest";
} id = MY_FL.榜单 || id;
else if(MY_CATE.startsWith("rank_list")){ let path = "/subject_collection/" + id + "/items";
let id = MY_CATE === "rank_list_movie"?"movie_real_time_hotest":"tv_real_time_hotest"; res = miniapp_request(path, {
id = MY_FL.榜单||id; start: (MY_PAGE - 1) * count,
let path = "/subject_collection/"+id+"/items"; count: count
let res = miniapp_request(path, { })
"start": (MY_PAGE - 1) * count, } else {
"count": count let path = "/" + MY_CATE + "/recommend";
});
// print(res);
}else{
let path = "/"+MY_CATE+"/recommend";
let selected_categories; let selected_categories;
if(Object.keys(MY_FL).length > 0){ let tags;
let sort = MY_FL.sort||"T"; let sort;
let tags = Object.Values(MY_FL).join(','); if (Object.keys(MY_FL).length > 0) {
if(MY_CATE === "movie"){ sort = MY_FL.sort || "T";
tags = Object.values(MY_FL).join(",");
if (MY_CATE === "movie") {
selected_categories = { selected_categories = {
"类型": MY_FL.类型||'', "类型": MY_FL.类型 || "",
"地区": MY_FL.地区||'' "地区": MY_FL.地区 || ""
} }
}else{ } else {
selected_categories = { selected_categories = {
"类型": MY_FL.类型||"", "类型": MY_FL.类型 || "",
"形式": MY_FL.类型?MY_FL.类型+'地区':'', "形式": MY_FL.类型 ? MY_FL.类型 + "地区" : "",
"地区": MY_FL.地区||"" "地区": MY_FL.地区 || ""
} }
} }
}else{ } else {
let sort = "T"; sort = "T";
let tags = ""; tags = "";
if(MY_CATE === "movie"){ if (MY_CATE === "movie") {
selected_categories = { selected_categories = {
"类型": "", "类型": "",
"地区": "" "地区": ""
}; }
}else{ } else {
selected_categories = { selected_categories = {
"类型": "", "类型": "",
"形式": "", "形式": "",
"地区": "" "地区": ""
} }
} }
} }
let params = { let params = {
"tags": tags, tags: tags,
"sort": sort, sort: sort,
"refresh": 0, refresh: 0,
"selected_categories": stringify(selected_categories), selected_categories: stringify(selected_categories),
"start": (MY_PAGE - 1) * count, start: (MY_PAGE - 1) * count,
"count": count count: count
} };
// print(params); // print(params);
let res = miniapp_request(path, params) res = miniapp_request(path, params)
} }
let result = { let result = {
"page": MY_PAGE, page: MY_PAGE,
"pagecount": Math.ceil(res.total / count), pagecount: Math.ceil(res.total / count),
"limit": count, limit: count,
"total": res.total total: res.total
} };
let items = []; let items = [];
if(/^rank_list|tv_hot|show_hot/.test(MY_CATE)) { if (/^rank_list|tv_hot|show_hot/.test(MY_CATE)) {
items = res['subject_collection_items'] items = res["subject_collection_items"]
} } else if (MY_CATE === "interests") {
else if(MY_CATE==='interests'){ res["interests"].forEach(function(it) {
res["interests"].forEach(function (it){
items.push(it.subject) items.push(it.subject)
}); })
}else{ } else {
items = res.items items = res.items
} }
let lists = []; let lists = [];
// print(items); items.forEach(function(item) {
items.forEach(function (item){ if (item.type === "movie" || item.type === "tv") {
if( item.type==='movie'||item.type==='tv'){ let rating = item.rating ? item.rating.value : "";
let rating = item.rating?item.rating.value:''; let rat_str = rating || "暂无评分";
let rat_str = rating||'暂无评分';
let title = item.title; let title = item.title;
let honor = item.honor_infos||[]; let honor = item.honor_infos || [];
let honor_str = honor.map(function (it){return it.title}).join('|'); let honor_str = honor.map(function(it) {
return it.title
}).join("|");
let vod_obj = { let vod_obj = {
// "vod_id": f'msearch:{item.get("type", "")}__{item.get("id", "")}', vod_name: title !== "未知电影" ? title : "暂不支持展示",
// "vod_id": item.type+'$'+item.id, vod_pic: item.pic.normal,
"vod_name": title !== "未知电影"?title: "暂不支持展示", vod_remarks: rat_str + " " + honor_str
"vod_pic": item.pic.normal,
"vod_remarks": rat_str + " " + honor_str
}; };
let vod_obj_d = { let vod_obj_d = {
url: item.type+'$'+item.id, url: item.type + "$" + item.id,
title: title !== "未知电影"?title: "暂不支持展示", title: title !== "未知电影" ? title : "暂不支持展示",
pic_url: item.pic.normal, pic_url: item.pic.normal,
desc: rat_str + " " + honor_str desc: rat_str + " " + honor_str
}; };
lists.push(vod_obj); lists.push(vod_obj);
d.push(vod_obj_d); d.push(vod_obj_d)
} }
}); });
result.list = lists; result.list = lists;
return result return result
} catch (e) {
}catch (e) { print(e.message)
print(e.message);
} }
return {} return {}
} }
// cate_filter(d);
// setResult(d);
let res = cate_filter(d); let res = cate_filter(d);
// setHomeResult(res);
setResult2(res); setResult2(res);
\ No newline at end of file
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
"ext":"{{ host }}/admin/view/{{ rule.name }}.js" "ext":"{{ host }}/admin/view/{{ rule.name }}.js"
}{% endif %}{% if loop.last==False %},{% endif %}{% endfor %} }{% endif %}{% if loop.last==False %},{% endif %}{% endfor %}
{% if js_mode == 1 %},{ {% if js_mode == 1 %},{
"key":"dr_drpy", "key":"js_drpy",
"name":"drpy(道长)", "name":"drpy(道长)",
"type":1, "type":1,
"api":"{{ host }}/vod?rule=drpy", "api":"{{ host }}/vod?rule=drpy",
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册