tx4k.js 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212
  1. var rule = {
  2. title: '腾云驾雾[官]',
  3. //parseUrl: 'http://pan.qiaoji8.com/tvbox/neibu.php?url=',
  4. //parseUrl: 'http://jx.hjfggzs.top/api/diy/?key=ASSNxYwYLK3KDm2IA0&url=',
  5. parseUrl: 'http://222.186.57.24:7600/jx.php?url=',
  6. host: 'https://v.%71%71.com',
  7. // homeUrl: '/x/bu/pagesheet/list?_all=1&append=1&channel=choice&listpage=1&offset=0&pagesize=21&iarea=-1&sort=18',
  8. // homeUrl: '/x/bu/pagesheet/list?_all=1&append=1&channel=cartoon&listpage=1&offset=0&pagesize=21&iarea=-1&sort=18',
  9. detailUrl: 'https://node.video.%71%71.com/x/api/float_vinfo2?cid=fyid',
  10. searchUrl: '/x/search/?q=**&stag=fypage',
  11. searchable: 2,
  12. filterable: 1,
  13. multi: 1,
  14. // url:'/channel/fyclass?listpage=fypage&channel=fyclass&sort=18&_all=1',
  15. url: '/x/bu/pagesheet/list?_all=1&append=1&channel=fyclass&listpage=1&offset=((fypage-1)*21)&pagesize=21&iarea=-1',
  16. // filter_url: 'sort={{fl.sort or 18}}&year={{fl.year}}&pay={{fl.pay}}',
  17. // filter_url: 'sort={{fl.sort or 75}}&year={{fl.year}}&pay={{fl.pay}}',
  18. filter_url: 'sort={{fl.sort or 75}}&iyear={{fl.iyear}}&year={{fl.year}}&itype={{fl.type}}&ifeature={{fl.feature}}&iarea={{fl.area}}&itrailer={{fl.itrailer}}&gender={{fl.sex}}',
  19. // filter: 'H4sIAAAAAAAAA+2UzUrDQBCA32XOEZLUJrGvIj0saaDBNisxBkIJCG3Fi4oepIg3EQoieqiH+vM23Zq+hRuaZLZ4ce9z2/lmd2d2+NgR+H0e+gF0DkdwFGTQgRMeJ2BAxIaSwvrqVnxcyzhlg9PttqjED2c/45cSy8DyIDcavr57q/lBw8XTd/E6qbnT8M3zTFyc72RtC/Jumd+2c8wy7KZ4nxSL5Z9uxHS+Gc+r83sWVp1eVttl4Dluk1h93YubWZVwduplAYuxoFguVp+P/y5om/Z+/YxyqfAW8pbKbeS2yi3kO/ebyE2Fy1nXXBm7DDzknspd5K7KHeSOytvI2+XAugYkKWlD2mhrM+RpSB8OmaNvTsriMEgycofc0XbHZ3HCeUTukDv67vTDQY/MIXO0zelxn5M4JI6mOPkvgswSEpgPAAA=',
  20. filter: 'H4sIAAAAAAAAA+1Y3U8aWRT/X+ZZEwYEtI9207Rp0r40+9CNDxM7G8laaZCamsYEinyoDYp1sa1I/aJSK4ita3Eo9J+Ze2fmv9g7yOWc22u3xJX0RZ7gd+ee7/M7h3mujE+EQ+O6cuOP58pf+qxyQ5kOR6LKgDKlPWaoQrOrxFhmv2e0yafnj025cCFmJSouzH4E/crcQBen+VoHH/Z1cVJq2kfzHFeVuTH35FxhaFbXIqCRnJ2YjV1JI0mWnUS5I2FQ7Ur2erxDHbT9FeE+wH0Y9wLuxbgKuCDfA7gH4epIF2dfET4M+DDGg4AHMR4APIBxP+B+N2JjA0p0pi+ZCo5cnCnXHpSpP3Ut+jSig07ruEGKSz3nysoc00SSywaVy3v2LochI/TFoZXPdWBIoJNokvqLDgz5JtVTYnA/wU2SL5CF/Q4M0TW/bpFSmnsPKivvzdYWL1MQktqg69xACBXdTNi1Je4OlIaz+YHkmhxH7mdrpFrkOPJoc5W+LnEcXLJeZsFIFXyy9nPkrIFSxPGPRboY43gQ6Z1Hzw9fN98lm+9xeCb0S5kyOvvkfzTf4pHVPJD7ZvGYfFuXmk/oG9XDPqguExV7O4bOAurFTdu+B9kR2989+1FNsyMVEUF8hcby+MyDzC9ba8I9FOLMa9NYwPogwwJdtO9BVTDHRTtRpbKG/M5OkCmwR/sMcVw2RZY/YZlwZsfi1kIa34NysEvfIJsIrtZI82/xltsfqFiuG7vnxp7RIiE9OtuX1naDdM23l0rLuBaJhsNTv5JxtYiuoWwVauSl0XO2SCrJbkjrDl0v0cKhvO4c7lutrNTpJHlqNjj5DV3hOMBLAeJozMNQYCK1IetSq86bD5LRjHlpng8VlIGVonWYkwMSX2KjQVrGnMoamPKDLQfVqDh5gjjcpF6Xtyi6tU02uhMAyS+8Mw0DbUv8+WzZWknJW5rI7CiSjWWSrP93Pt0hd00OlyOHidDko/78GUJbAqaG7+brtP4M6Yvtk8zH3pmh9JlUeNugnlz7ArC3T0Tkw51xERGJFfqTAnVa87T6T8+WeAZ95FNccnxoMAAwWBIcHAEY7FY9DDUbJbO+KK+zybJg1TmjtCvmUXg83J+CEWk5FI1ooUkdxyltkFdxmj/rOU6jozelIJGNpru1FmpAQ+D37dH7PE4qsvPe7btyftuE5ezknPgriXTvPPidy/H7ELlmd6yTHeEO0wPqH/52C2DoHzvZsqtHdvqAZE5lBiYrGbNZoAWDFnmPBS6uQv/VzT1mjDV/KsWPjV5n9113mwZ8r2V+fSuVIJsQNJ+WjRZmAX5/YBpLUiLYrIVJBvxon+yw2SEPGpYDmLX4dUDzgG5npEyKbwPQnrGepDAP2/09NvcvaIIuCAgUAAA=',
  21. headers: {
  22. 'User-Agent': 'PC_UA'
  23. },
  24. timeout: 5000,
  25. // class_parse:'.site_channel a;a&&Text;a&&href;channel/(.*)',
  26. cate_exclude: '会员|游戏|全部',
  27. // class_name: '精选&电视剧&电影&综艺&动漫&少儿&纪录片',
  28. // class_url: 'choice&tv&movie&variety&cartoon&child&doco',
  29. class_name: '电视剧&电影&综艺&动漫&少儿&纪录片',
  30. class_url: 'tv&movie&variety&cartoon&child&doco',
  31. //预处理: $js.toString(() => {
  32. // let html = request('http://www.mpanso.com/ceshi/titi.json');
  33. // rule.parseUrl = JSON.parse(html).parses[0].url
  34. //}),
  35. limit: 20,
  36. play_parse:true,
  37. // play_parse:true,
  38. lazy: $js.toString(() => {
  39. let d = [];
  40. try {
  41. // 发起请求并获取响应,添加请求头
  42. let headers = {
  43. 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36' // 替换为您的 User-Agent 字符串
  44. };
  45. let responseText = request(rule.parseUrl + input, { headers: headers });
  46. //let responseText = request("http://jx.jwl.icu/jx.php?url=" + input, { headers: headers });
  47. //let responseText = request("http://110.42.99.99:3722/lg.php/?url=" + input, { headers: headers });
  48. console.log("响应文本:", responseText); // 查看原始响应内容
  49. // 解析 JSON 数据
  50. let response = JSON.parse(responseText);
  51. // 查找以 'url' 开头的字段
  52. let urlField = Object.keys(response).find(key => key.startsWith('url'));
  53. // 提取找到的字段值
  54. let urlValue = urlField ? response[urlField] : null;
  55. console.log("提取的随机字段值:", urlValue); // 查看提取的值
  56. if (urlValue) {
  57. // 处理 urlValue,或将其用于 input
  58. input = {
  59. url: urlValue,
  60. parse: 0,
  61. header: rule.headers
  62. };
  63. } else {
  64. // 处理没有找到字段的情况
  65. console.error("没有找到以 'url' 开头的字段");
  66. }
  67. } catch (error) {
  68. console.error("处理请求或数据时发生错误:", error);
  69. }
  70. setResult(d);
  71. }),
  72. 推荐: '.list_item;img&&alt;img&&src;a&&Text;a&&data-float',
  73. 一级: '.list_item;img&&alt;img&&src;a&&Text;a&&data-float',
  74. 二级: $js.toString(() => {
  75. VOD = {};
  76. let d = [];
  77. let video_list = [];
  78. let video_lists = [];
  79. let list = [];
  80. let QZOutputJson;
  81. let html = fetch(input, fetch_params);
  82. let sourceId = /get_playsource/.test(input) ? input.match(/id=(\d*?)&/)[1] : input.split("cid=")[1];
  83. let cid = sourceId;
  84. let detailUrl = "https://v.%71%71.com/detail/m/" + cid + ".html";
  85. log("详情页:" + detailUrl);
  86. pdfh = jsp.pdfh;
  87. pd = jsp.pd;
  88. try {
  89. let json = JSON.parse(html);
  90. VOD = {
  91. vod_url: input,
  92. vod_name: json.c.title,
  93. type_name: json.typ.join(","),
  94. vod_actor: json.nam.join(","),
  95. vod_year: json.c.year,
  96. vod_content: json.c.description,
  97. vod_remarks: json.rec,
  98. vod_pic: urljoin2(input, json.c.pic)
  99. }
  100. } catch (e) {
  101. log("解析片名海报等基础信息发生错误:" + e.message)
  102. }
  103. if (/get_playsource/.test(input)) {
  104. eval(html);
  105. let indexList = QZOutputJson.PlaylistItem.indexList;
  106. indexList.forEach(function (it) {
  107. let dataUrl = "https://s.video.qq.com/get_playsource?id=" + sourceId + "&plat=2&type=4&data_type=3&range=" + it + "&video_type=10&plname=qq&otype=json";
  108. eval(fetch(dataUrl, fetch_params));
  109. let vdata = QZOutputJson.PlaylistItem.videoPlayList;
  110. vdata.forEach(function (item) {
  111. d.push({
  112. title: item.title,
  113. pic_url: item.pic,
  114. desc: item.episode_number + "\t\t\t播放量:" + item.thirdLine,
  115. url: item.playUrl
  116. })
  117. });
  118. video_lists = video_lists.concat(vdata)
  119. })
  120. } else {
  121. let json = JSON.parse(html);
  122. video_lists = json.c.video_ids;
  123. let url = "https://v.qq.com/x/cover/" + sourceId + ".html";
  124. if (video_lists.length === 1) {
  125. let vid = video_lists[0];
  126. url = "https://v.qq.com/x/cover/" + cid + "/" + vid + ".html";
  127. d.push({
  128. title: "在线播放",
  129. url: url
  130. })
  131. } else if (video_lists.length > 1) {
  132. for (let i = 0; i < video_lists.length; i += 30) {
  133. video_list.push(video_lists.slice(i, i + 30))
  134. }
  135. video_list.forEach(function (it, idex) {
  136. let o_url = "https://union.video.qq.com/fcgi-bin/data?otype=json&tid=1804&appid=20001238&appkey=6c03bbe9658448a4&union_platform=1&idlist=" + it.join(",");
  137. let o_html = fetch(o_url, fetch_params);
  138. eval(o_html);
  139. QZOutputJson.results.forEach(function (it1) {
  140. it1 = it1.fields;
  141. let url = "https://v.qq.com/x/cover/" + cid + "/" + it1.vid + ".html";
  142. d.push({
  143. title: it1.title,
  144. pic_url: it1.pic160x90.replace("/160", ""),
  145. desc: it1.video_checkup_time,
  146. url: url,
  147. type: it1.category_map && it1.category_map.length > 1 ? it1.category_map[1] : ""
  148. })
  149. })
  150. })
  151. }
  152. }
  153. let yg = d.filter(function (it) {
  154. return it.type && it.type !== "正片"
  155. });
  156. let zp = d.filter(function (it) {
  157. return !(it.type && it.type !== "正片")
  158. });
  159. VOD.vod_content = '四季快云\r\n';
  160. VOD.vod_play_from = yg.length < 1 ? "四季快云" : "四季快云$$$预告及花絮";
  161. VOD.vod_play_url = yg.length < 1 ? d.map(function (it) {
  162. return it.title + "$" + it.url
  163. }).join("#") : [zp, yg].map(function (it) {
  164. return it.map(function (its) {
  165. return its.title + "$" + its.url
  166. }).join("#")
  167. }).join("$$$");
  168. }),
  169. 搜索: $js.toString(() => {
  170. let d = [];
  171. pdfa = jsp.pdfa;
  172. pdfh = jsp.pdfh;
  173. pd = jsp.pd;
  174. let html = request(input);
  175. let baseList = pdfa(html, "body&&.result_item_v");
  176. log(baseList.length);
  177. baseList.forEach(function (it) {
  178. let longText = pdfh(it, ".result_title&&a&&Text");
  179. let shortText = pdfh(it, ".type&&Text");
  180. let fromTag = pdfh(it, ".result_source&&Text");
  181. let score = pdfh(it, ".figure_info&&Text");
  182. let content = pdfh(it, ".desc_text&&Text");
  183. // let url = pdfh(it, ".result_title&&a&&href");
  184. let url = pdfh(it, "div&&r-data");
  185. // log(longText);
  186. // log(shortText);
  187. // log('url:'+url);
  188. let img = pd(it, ".figure_pic&&src");
  189. url = "https://node.video.qq.com/x/api/float_vinfo2?cid=" + url.match(/.*\/(.*?)\.html/)[1];
  190. log(shortText + "|" + url);
  191. if (fromTag.match(/腾讯/)) {
  192. d.push({
  193. title: longText.split(shortText)[0],
  194. img: img,
  195. url: url,
  196. content: content,
  197. desc: shortText + " " + score
  198. })
  199. }
  200. });
  201. setResult(d);
  202. }),
  203. }