You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

307 lines
17 KiB

8 months ago
  1. var rule = {
  2. title: '爱迪[V2]', // csp_AppYsV2
  3. // host: 'https://api123.adys.app/xgapp.php/v3/',
  4. host: 'https://adys.tv/xgapp.php/v1/',
  5. url: 'video?tid=fyclassfyfilter&limit=20&pg=fypage',
  6. filter_url:'&class={{fl.class}}&area={{fl.area}}&lang={{fl.lang}}&letter={{fl.letter}}&year={{fl.year}}&by={{fl.by}}',
  7. filter:{
  8. "1":[{"key":"class","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":"历史"},{"n":"运动","v":"运动"},{"n":"农村","v":"农村"},{"n":"儿童","v":"儿童"},{"n":"网络电影","v":"网络电影"},{"n":"情色","v":"情色"}]},{"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":"lang","name":"语言","value":[{"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":"2024","v":"2024"},{"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"}]}],
  9. "2":[{"key":"class","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":"其他"}]},{"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":"lang","name":"语言","value":[{"n":"全部","v":""},{"n":"国语","v":"国语"},{"n":"英语","v":"英语"},{"n":"粤语","v":"粤语"},{"n":"闽南语","v":"闽南语"},{"n":"韩语","v":"韩语"},{"n":"日语","v":"日语"},{"n":"其它","v":"其它"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2024","v":"2024"},{"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"}]}],
  10. "3":[{"key":"class","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":"求职"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"内地","v":"内地"},{"n":"港台","v":"港台"},{"n":"日韩","v":"日韩"},{"n":"欧美","v":"欧美"}]},{"key":"lang","name":"语言","value":[{"n":"全部","v":""},{"n":"国语","v":"国语"},{"n":"英语","v":"英语"},{"n":"粤语","v":"粤语"},{"n":"闽南语","v":"闽南语"},{"n":"韩语","v":"韩语"},{"n":"日语","v":"日语"},{"n":"其它","v":"其它"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2024","v":"2024"},{"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"}]}],
  11. "4":[{"key":"class","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":"其他"}]},{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"国产","v":"国产"},{"n":"日本","v":"日本"},{"n":"欧美","v":"欧美"},{"n":"其他","v":"其他"}]},{"key":"lang","name":"语言","value":[{"n":"全部","v":""},{"n":"国语","v":"国语"},{"n":"英语","v":"英语"},{"n":"粤语","v":"粤语"},{"n":"闽南语","v":"闽南语"},{"n":"韩语","v":"韩语"},{"n":"日语","v":"日语"},{"n":"其它","v":"其它"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2024","v":"2024"},{"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"}]}],
  12. "20":[{"key":"area","name":"地区","value":[{"n":"全部","v":""},{"n":"韩国","v":"韩国"}]},{"key":"lang","name":"语言","value":[{"n":"全部","v":""},{"n":"韩语","v":"韩语"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2024","v":"2024"},{"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"}]}],
  13. "24":[{"key":"lang","name":"语言","value":[{"n":"全部","v":""},{"n":"国语","v":"国语"},{"n":"英语","v":"英语"},{"n":"粤语","v":"粤语"},{"n":"闽南语","v":"闽南语"},{"n":"韩语","v":"韩语"},{"n":"日语","v":"日语"},{"n":"其它","v":"其它"}]},{"key":"year","name":"年份","value":[{"n":"全部","v":""},{"n":"2024","v":"2024"},{"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"}]}]
  14. },
  15. detailUrl:'/detail?vod_id=fyid',
  16. searchUrl: '/search?text=**&pg=fypage',
  17. searchable: 2,
  18. quickSearch: 0,
  19. filterable:1,//是否启用分类筛选,
  20. headers:{'User-Agent':'okhttp/4.1.0'},
  21. timeout:5000,
  22. // 分类筛选 /api.php/app/nav || /xgapp.php/v1/nav || /api.php/v1.vod/types
  23. class_name:'电影&连续剧&综艺&韩国电影&樱花动漫&纪录片',
  24. class_url:'1&2&3&20&4&24',
  25. play_parse:true,
  26. lazy:`js:
  27. let play_Url = '';
  28. if (/\\.m3u8|\\.mp4/.test(input)) {
  29. input = {
  30. jx: 0,
  31. url: input,
  32. parse: 0
  33. }
  34. } else if (/,/.test(input) && /url=/.test(input)) {
  35. input = input.split('url=');
  36. play_Url = input[0].split(',')[0];
  37. input = {
  38. jx: 0,
  39. url: input[1],
  40. playUrl: play_Url,
  41. parse: 1
  42. }
  43. } else if (/url=|id=/.test(input)) {
  44. input = {
  45. jx: 0,
  46. url: JSON.parse(request(input)).url,
  47. parse: 0
  48. }
  49. } else if (/youku|iqiyi|v\\.qq\\.com|pptv|sohu|le\\.com|1905\\.com|mgtv|bilibili|ixigua/.test(input)) {
  50. play_Url = /bilibili/.test(input) ? 'https://jx.xmflv.com/?url=' : 'https://jx.777jiexi.com/player/?url='; // type0的parse
  51. // play_Url = /bilibili/.test(input) ? 'https://jx.xmflv.com/?url=' : 'json:http://pandown.pro/app/kkdy.php?url='; // type1的parse可加'json:'直接解析url (除了蜂蜜的'影视TV',其它的壳皆可用)
  52. input = {
  53. jx: 0,
  54. url: input,
  55. playUrl: play_Url,
  56. parse: 1,
  57. header: JSON.stringify({
  58. 'user-agent': 'Mozilla/5.0',
  59. }),
  60. }
  61. } else {
  62. input
  63. }
  64. `,
  65. limit:6,
  66. // 图片来源:'@Referer=https://api.douban.com/@User-Agent=Mozilla/5.0%20(Windows%20NT%2010.0;%20Win64;%20x64)%20AppleWebKit/537.36%20(KHTML,%20like%20Gecko)%20Chrome/113.0.0.0%20Safari/537.36',
  67. 推荐:`js:
  68. let d = [];
  69. let jsondata = [];
  70. let videoList = [];
  71. if (/v1\\.vod/.test(HOST)) {
  72. if(HOST.endsWith('/')){
  73. jsondata = JSON.parse(request(HOST + 'vodPhbAll'));
  74. } else {
  75. jsondata = JSON.parse(request(HOST + '/vodPhbAll'));
  76. }
  77. videoList = jsondata.data.list;
  78. } else {
  79. if(HOST.endsWith('/')){
  80. jsondata = JSON.parse(request(HOST + 'index_video'));
  81. } else {
  82. jsondata = JSON.parse(request(HOST + '/index_video'));
  83. }
  84. videoList = /xgapp/.test(HOST) ? jsondata.data : jsondata.list;
  85. }
  86. // log('videoList =========> '+stringify(videoList));
  87. videoList.forEach((it,idex) => {
  88. let vlist = /v1\\.vod/.test(HOST) ? videoList[idex].vod_list : videoList[idex].vlist ;
  89. vlist.forEach(it => {
  90. d.push({
  91. url:it.vod_id,
  92. title:it.vod_name,
  93. img:it.vod_pic.startsWith('http') ? it.vod_pic : it.vod_pic.startsWith('//') ? 'https:' + it.vod_pic : it.vod_pic.startsWith('/') ? getHome(HOST) + it.vod_pic : getHome(HOST) + '/' + it.vod_pic,
  94. desc:it.vod_remarks,
  95. });
  96. });
  97. });
  98. setResult(d);
  99. `,
  100. 一级:`js:
  101. let d = [];
  102. let jsondata = [];
  103. let videoList = [];
  104. if (/v1\\.vod/.test(HOST)) {
  105. input = input.replace('video','v1.vod').replace('tid','type').replace('pg=','page=');
  106. jsondata = JSON.parse(request(input));
  107. videoList = jsondata.data.list;
  108. } else {
  109. input = HOST + '/'+ input.split('/')[4];
  110. jsondata = JSON.parse(request(input));
  111. videoList = jsondata.list || jsondata.data;
  112. }
  113. // log('videoList =========> '+stringify(videoList));
  114. videoList.forEach(it => {
  115. d.push({
  116. url:it.vod_id,
  117. title:it.vod_name,
  118. img:it.vod_pic.startsWith('http') ? it.vod_pic : it.vod_pic.startsWith('//') ? 'https:' + it.vod_pic : it.vod_pic.startsWith('/') ? getHome(HOST) + it.vod_pic : getHome(HOST) + '/' + it.vod_pic,
  119. desc:it.vod_remarks,
  120. });
  121. });
  122. setResult(d);
  123. `,
  124. 二级:`js:
  125. if (/v1\\.vod/.test(HOST)) {
  126. input = HOST + '/'+ input.split('/')[3];
  127. } else {
  128. input = HOST + '/'+ input.split('/')[3].replace('detail','video_detail').replace('vod_id','id');
  129. }
  130. try {
  131. let html = request(input);
  132. html = JSON.parse(html);
  133. let node = /xgapp/.test(HOST) ? html.data.vod_info : html.data;
  134. VOD = {
  135. vod_id: node.vod_id,
  136. vod_name: node.vod_name,
  137. vod_pic: node.vod_pic,
  138. type_name: node.vod_class,
  139. vod_year: node.vod_year,
  140. vod_area: node.vod_area,
  141. vod_remarks: node.vod_remarks,
  142. vod_actor: node.vod_actor,
  143. vod_director: node.vod_director,
  144. vod_content: node.vod_content.strip()
  145. };
  146. if (typeof play_url === 'undefined') {
  147. var play_url = ''
  148. }
  149. var name = {
  150. 'bfzym3u8': '暴风',
  151. '1080zyk': '优质',
  152. 'kuaikan': '快看',
  153. 'lzm3u8': '量子',
  154. 'ffm3u8': '非凡',
  155. 'haiwaikan': '海外看',
  156. 'gsm3u8': '光速',
  157. 'zuidam3u8': '最大',
  158. 'bjm3u8': '八戒',
  159. 'snm3u8': '索尼',
  160. 'wolong': '卧龙',
  161. 'xlm3u8': '新浪',
  162. 'yhm3u8': '樱花',
  163. 'tkm3u8': '天空',
  164. 'jsm3u8': '极速',
  165. 'wjm3u8': '无尽',
  166. 'sdm3u8': '闪电',
  167. 'kcm3u8': '快车',
  168. 'jinyingm3u8': '金鹰',
  169. 'fsm3u8': '飞速',
  170. 'tpm3u8': '淘片',
  171. 'lem3u8': '鱼乐',
  172. 'dbm3u8': '百度',
  173. 'tomm3u8': '番茄',
  174. 'ukm3u8': 'U酷',
  175. 'ikm3u8': '爱坤',
  176. 'hnzym3u8': '红牛资源',
  177. 'hnm3u8': '红牛',
  178. '68zy_m3u8': '68',
  179. 'kdm3u8': '酷点',
  180. 'bdxm3u8': '北斗星',
  181. 'qhm3u8': '奇虎',
  182. 'hhm3u8': '豪华',
  183. 'kbm3u8': '快播'
  184. };
  185. let episodes = /v1\\.vod/.test(HOST)?node.vod_play_list:node.vod_url_with_player;
  186. if (episodes != '') {
  187. let playMap = {};
  188. let arr = [];
  189. episodes.forEach(ep => {
  190. let from = [];
  191. if (/v1\\.vod/.test(HOST)) {
  192. from = ep.player_info.from||ep.player_info.show||ep.from||ep.show;
  193. } else {
  194. from = ep.code||ep.name;
  195. }
  196. if (!playMap.hasOwnProperty(from)) {
  197. playMap[from] = []
  198. }
  199. let parse_api = '';
  200. if (/v1\\.vod/.test(HOST)) {
  201. parse_api = ep.player_info.parse != null ? ep.player_info.parse : ep.player_info.parse2;
  202. // parse_api = /,/.test(parse_api) ? parse_api.split(',')[1] : parse_api;
  203. } else {
  204. parse_api = ep.parse_api;
  205. }
  206. log('parse_api =========> '+parse_api);
  207. if (parse_api != null && !/\\.m3u8|\\.mp4/.test(ep.url)) {
  208. parse_api = parse_api.replaceAll('..','.') ;
  209. ep.url = ep.url.replaceAll('$','$'+parse_api);
  210. }
  211. if (from != null) playMap[from].push(ep.url)
  212. });
  213. for (var key in playMap) {
  214. if ('bfzym3u8' == key) {
  215. arr.push({
  216. flag: name[key],
  217. url: playMap[key],
  218. sort: 1
  219. })
  220. } else if ('1080zyk' == key) {
  221. arr.push({
  222. flag: name[key],
  223. url: playMap[key],
  224. sort: 2
  225. })
  226. } else if ('kuaikan' == key) {
  227. arr.push({
  228. flag: name[key],
  229. url: playMap[key],
  230. sort: 3
  231. })
  232. } else if ('lzm3u8' == key) {
  233. arr.push({
  234. flag: name[key],
  235. url: playMap[key],
  236. sort: 4
  237. })
  238. } else if ('ffm3u8' == key) {
  239. arr.push({
  240. flag: name[key],
  241. url: playMap[key],
  242. sort: 5
  243. })
  244. } else if ('snm3u8' == key) {
  245. arr.push({
  246. flag: name[key],
  247. url: playMap[key],
  248. sort: 6
  249. })
  250. } else if ('qhm3u8' == key) {
  251. arr.push({
  252. flag: name[key],
  253. url: playMap[key],
  254. sort: 7
  255. })
  256. } else {
  257. arr.push({
  258. flag: name[key] ? name[key] : key,
  259. url: playMap[key],
  260. sort: 8
  261. })
  262. }
  263. }
  264. arr.sort((a, b) => a.sort - b.sort);
  265. let playFrom = [];
  266. let playList = [];
  267. arr.map(val => {
  268. if (!/undefined/.test(val.flag)) {
  269. playFrom.push(val.flag);
  270. playList.push(val.url);
  271. }
  272. })
  273. VOD.vod_play_from = playFrom.join('$$$');
  274. VOD.vod_play_url = playList.join('$$$');
  275. } else {
  276. VOD.vod_play_from = node.vod_play_from;
  277. VOD.vod_play_url = node.vod_play_url;
  278. }
  279. } catch (e) {
  280. log("获取二级详情页发生错误:" + e.message);
  281. }
  282. `,
  283. 搜索:`js:
  284. let d = [];
  285. let jsondata = [];
  286. let videoList = [];
  287. if (/v1\\.vod/.test(HOST)) {
  288. input = (HOST + '/'+ input.split('/')[3]).replace('/search','').replace('text=','wd=').replace('pg=','page=');
  289. jsondata = JSON.parse(request(input));
  290. videoList = jsondata.data.list;
  291. } else {
  292. input = HOST + '/'+ input.split('/')[3]
  293. jsondata = JSON.parse(request(input));
  294. videoList = jsondata.list || jsondata.data;
  295. }
  296. // log('videoList =========> '+stringify(videoList));
  297. videoList.forEach(it => {
  298. d.push({
  299. url:it.vod_id,
  300. title:it.vod_name,
  301. img:it.vod_pic.startsWith('http') ? it.vod_pic : it.vod_pic.startsWith('//') ? 'https:' + it.vod_pic : it.vod_pic.startsWith('/') ? getHome(HOST) + it.vod_pic : getHome(HOST) + '/' + it.vod_pic,
  302. desc:it.vod_remarks,
  303. });
  304. });
  305. setResult(d);
  306. `,
  307. }