360.js 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843
  1. var rule = {
  2. title: '360影视[官]',
  3. host: 'https://www.360kan.com',
  4. homeUrl: 'https://api.web.360kan.com/v1/rank?cat=2&size=9',
  5. detailUrl: 'https://api.web.360kan.com/v1/detail?cat=fyclass&id=fyid',
  6. searchUrl: 'https://api.so.360kan.com/index?force_v=1&kw=**&from=&pageno=fypage&v_ap=1&tab=all',
  7. url: 'https://api.web.360kan.com/v1/fyfilter&size=35&pageno=fypage&callback=',
  8. filterable: 1,
  9. filter_url: 'filter/list?catid=fyclass&rank={{fl.排序}}&cat={{fl.类型}}&year={{fl.年代}}&area={{fl.地区}}',
  10. filter: {
  11. "1": [{
  12. "key": "类型",
  13. "name": "类型",
  14. "value": [{
  15. "n": "全部",
  16. "v": ""
  17. }, {
  18. "n": "喜剧",
  19. "v": "喜剧"
  20. }, {
  21. "n": "爱情",
  22. "v": "爱情"
  23. }, {
  24. "n": "动作",
  25. "v": "动作"
  26. }, {
  27. "n": "恐怖",
  28. "v": "恐怖"
  29. }, {
  30. "n": "科幻",
  31. "v": "科幻"
  32. }, {
  33. "n": "剧情",
  34. "v": "剧情"
  35. }, {
  36. "n": "犯罪",
  37. "v": "犯罪"
  38. }, {
  39. "n": "奇幻",
  40. "v": "奇幻"
  41. }, {
  42. "n": "战争",
  43. "v": "战争"
  44. }, {
  45. "n": "悬疑",
  46. "v": "悬疑"
  47. }, {
  48. "n": "动画",
  49. "v": "动画"
  50. }, {
  51. "n": "文艺",
  52. "v": "文艺"
  53. }, {
  54. "n": "纪录",
  55. "v": "纪录"
  56. }, {
  57. "n": "传记",
  58. "v": "传记"
  59. }, {
  60. "n": "歌舞",
  61. "v": "歌舞"
  62. }, {
  63. "n": "古装",
  64. "v": "古装"
  65. }, {
  66. "n": "历史",
  67. "v": "历史"
  68. }, {
  69. "n": "惊悚",
  70. "v": "惊悚"
  71. }, {
  72. "n": "伦理",
  73. "v": "伦理"
  74. }, {
  75. "n": "其他",
  76. "v": "其他"
  77. }]
  78. }, {
  79. "key": "地区",
  80. "name": "地区",
  81. "value": [{
  82. "n": "全部",
  83. "v": ""
  84. }, {
  85. "n": "内地",
  86. "v": "大陆"
  87. }, {
  88. "n": "中国香港",
  89. "v": "香港"
  90. }, {
  91. "n": "中国台湾",
  92. "v": "台湾"
  93. }, {
  94. "n": "泰国",
  95. "v": "泰国"
  96. }, {
  97. "n": "美国",
  98. "v": "美国"
  99. }, {
  100. "n": "韩国",
  101. "v": "韩国"
  102. }, {
  103. "n": "日本",
  104. "v": "日本"
  105. }, {
  106. "n": "法国",
  107. "v": "法国"
  108. }, {
  109. "n": "英国",
  110. "v": "英国"
  111. }, {
  112. "n": "德国",
  113. "v": "德国"
  114. }, {
  115. "n": "印度",
  116. "v": "印度"
  117. }, {
  118. "n": "其他",
  119. "v": "其他"
  120. }]
  121. }, {
  122. "key": "年代",
  123. "name": "年代",
  124. "value": [{
  125. "n": "全部",
  126. "v": ""
  127. }, {
  128. "n": "2025",
  129. "v": "2025"
  130. }, {
  131. "n": "2024",
  132. "v": "2024"
  133. }, {
  134. "n": "2023",
  135. "v": "2023"
  136. }, {
  137. "n": "2022",
  138. "v": "2022"
  139. }, {
  140. "n": "2021",
  141. "v": "2021"
  142. }, {
  143. "n": "2020",
  144. "v": "2020"
  145. }, {
  146. "n": "2019",
  147. "v": "2019"
  148. }, {
  149. "n": "2018",
  150. "v": "2018"
  151. }, {
  152. "n": "2017",
  153. "v": "2017"
  154. }, {
  155. "n": "2016",
  156. "v": "2016"
  157. }, {
  158. "n": "2015",
  159. "v": "2015"
  160. }, {
  161. "n": "2014",
  162. "v": "2014"
  163. }, {
  164. "n": "2013",
  165. "v": "2013"
  166. }, {
  167. "n": "2012",
  168. "v": "2012"
  169. }, {
  170. "n": "2010",
  171. "v": "2010"
  172. }, {
  173. "n": "2009",
  174. "v": "2009"
  175. }, {
  176. "n": "2008",
  177. "v": "2008"
  178. }, {
  179. "n": "2007",
  180. "v": "2007"
  181. }, {
  182. "n": "更早",
  183. "v": "lt_year"
  184. }]
  185. }, {
  186. "key": "排序",
  187. "name": "排序",
  188. "value": [{
  189. "n": "最近热映",
  190. "v": "rankhot"
  191. }, {
  192. "n": "最近上映",
  193. "v": "ranklatest"
  194. }, {
  195. "n": "最受好评",
  196. "v": "rankpoint"
  197. }]
  198. }],
  199. "2": [{
  200. "key": "类型",
  201. "name": "类型",
  202. "value": [{
  203. "n": "全部",
  204. "v": ""
  205. }, {
  206. "n": "言情",
  207. "v": "言情"
  208. }, {
  209. "n": "剧情",
  210. "v": "剧情"
  211. }, {
  212. "n": "伦理",
  213. "v": "伦理"
  214. }, {
  215. "n": "喜剧",
  216. "v": "喜剧"
  217. }, {
  218. "n": "悬疑",
  219. "v": "悬疑"
  220. }, {
  221. "n": "都市",
  222. "v": "都市"
  223. }, {
  224. "n": "偶像",
  225. "v": "偶像"
  226. }, {
  227. "n": "古装",
  228. "v": "古装"
  229. }, {
  230. "n": "军事",
  231. "v": "军事"
  232. }, {
  233. "n": "警匪",
  234. "v": "警匪"
  235. }, {
  236. "n": "历史",
  237. "v": "历史"
  238. }, {
  239. "n": "励志",
  240. "v": "励志"
  241. }, {
  242. "n": "神话",
  243. "v": "神话"
  244. }, {
  245. "n": "谍战",
  246. "v": "谍战"
  247. }, {
  248. "n": "青春",
  249. "v": "青春剧"
  250. }, {
  251. "n": "家庭",
  252. "v": "家庭剧"
  253. }, {
  254. "n": "动作",
  255. "v": "动作"
  256. }, {
  257. "n": "情景",
  258. "v": "情景"
  259. }, {
  260. "n": "武侠",
  261. "v": "武侠"
  262. }, {
  263. "n": "科幻",
  264. "v": "科幻"
  265. }, {
  266. "n": "其他",
  267. "v": "其他"
  268. }]
  269. }, {
  270. "key": "地区",
  271. "name": "地区",
  272. "value": [{
  273. "n": "全部",
  274. "v": ""
  275. }, {
  276. "n": "内地",
  277. "v": "内地"
  278. }, {
  279. "n": "中国香港",
  280. "v": "香港"
  281. }, {
  282. "n": "中国台湾",
  283. "v": "台湾"
  284. }, {
  285. "n": "泰国",
  286. "v": "泰国"
  287. }, {
  288. "n": "日本",
  289. "v": "日本"
  290. }, {
  291. "n": "韩国",
  292. "v": "韩国"
  293. }, {
  294. "n": "美国",
  295. "v": "美国"
  296. }, {
  297. "n": "英国",
  298. "v": "英国"
  299. }, {
  300. "n": "新加坡",
  301. "v": "新加坡"
  302. }]
  303. }, {
  304. "key": "年代",
  305. "name": "年代",
  306. "value": [{
  307. "n": "全部",
  308. "v": ""
  309. }, {
  310. "n": "2025",
  311. "v": "2025"
  312. }, {
  313. "n": "2024",
  314. "v": "2024"
  315. }, {
  316. "n": "2023",
  317. "v": "2023"
  318. }, {
  319. "n": "2022",
  320. "v": "2022"
  321. }, {
  322. "n": "2021",
  323. "v": "2021"
  324. }, {
  325. "n": "2020",
  326. "v": "2020"
  327. }, {
  328. "n": "2019",
  329. "v": "2019"
  330. }, {
  331. "n": "2018",
  332. "v": "2018"
  333. }, {
  334. "n": "2017",
  335. "v": "2017"
  336. }, {
  337. "n": "2016",
  338. "v": "2016"
  339. }, {
  340. "n": "2015",
  341. "v": "2015"
  342. }, {
  343. "n": "2014",
  344. "v": "2014"
  345. }, {
  346. "n": "2013",
  347. "v": "2013"
  348. }, {
  349. "n": "2012",
  350. "v": "2012"
  351. }, {
  352. "n": "2010",
  353. "v": "2010"
  354. }, {
  355. "n": "2009",
  356. "v": "2009"
  357. }, {
  358. "n": "2008",
  359. "v": "2008"
  360. }, {
  361. "n": "2007",
  362. "v": "2007"
  363. }, {
  364. "n": "更早",
  365. "v": "lt_year"
  366. }]
  367. }, {
  368. "key": "排序",
  369. "name": "排序",
  370. "value": [{
  371. "n": "最近热映",
  372. "v": "rankhot"
  373. }, {
  374. "n": "最近上映",
  375. "v": "ranklatest"
  376. }, {
  377. "n": "最受好评",
  378. "v": "rankpoint"
  379. }]
  380. }],
  381. "3": [{
  382. "key": "类型",
  383. "name": "类型",
  384. "value": [{
  385. "n": "全部",
  386. "v": ""
  387. }, {
  388. "n": "脱口秀",
  389. "v": "脱口秀"
  390. }, {
  391. "n": "真人秀",
  392. "v": "真人秀"
  393. }, {
  394. "n": "搞笑",
  395. "v": "搞笑"
  396. }, {
  397. "n": "选秀",
  398. "v": "选秀"
  399. }, {
  400. "n": "八卦",
  401. "v": "八卦"
  402. }, {
  403. "n": "访谈",
  404. "v": "访谈"
  405. }, {
  406. "n": "情感",
  407. "v": "情感"
  408. }, {
  409. "n": "生活",
  410. "v": "生活"
  411. }, {
  412. "n": "晚会",
  413. "v": "晚会"
  414. }, {
  415. "n": "音乐",
  416. "v": "音乐"
  417. }, {
  418. "n": "职场",
  419. "v": "职场"
  420. }, {
  421. "n": "美食",
  422. "v": "美食"
  423. }, {
  424. "n": "时尚",
  425. "v": "时尚"
  426. }, {
  427. "n": "游戏",
  428. "v": "游戏"
  429. }, {
  430. "n": "少儿",
  431. "v": "少儿"
  432. }, {
  433. "n": "体育",
  434. "v": "体育"
  435. }, {
  436. "n": "纪实",
  437. "v": "纪实"
  438. }, {
  439. "n": "科教",
  440. "v": "科教"
  441. }, {
  442. "n": "曲艺",
  443. "v": "曲艺"
  444. }, {
  445. "n": "歌舞",
  446. "v": "歌舞"
  447. }, {
  448. "n": "财经",
  449. "v": "财经"
  450. }, {
  451. "n": "汽车",
  452. "v": "汽车"
  453. }, {
  454. "n": "播报",
  455. "v": "播报"
  456. }, {
  457. "n": "其他",
  458. "v": "其他"
  459. }]
  460. }, {
  461. "key": "地区",
  462. "name": "地区",
  463. "value": [{
  464. "n": "全部",
  465. "v": ""
  466. }, {
  467. "n": "内地",
  468. "v": "大陆"
  469. }, {
  470. "n": "中国香港",
  471. "v": "香港"
  472. }, {
  473. "n": "中国台湾",
  474. "v": "台湾"
  475. }, {
  476. "n": "日本",
  477. "v": "日本"
  478. }, {
  479. "n": "欧美",
  480. "v": "欧美"
  481. }]
  482. }, {
  483. "key": "排序",
  484. "name": "排序",
  485. "value": [{
  486. "n": "最近热映",
  487. "v": "rankhot"
  488. }, {
  489. "n": "最近上映",
  490. "v": "ranklatest"
  491. }]
  492. }],
  493. "4": [{
  494. "key": "类型",
  495. "name": "类型",
  496. "value": [{
  497. "n": "全部",
  498. "v": ""
  499. }, {
  500. "n": "热血",
  501. "v": "热血"
  502. }, {
  503. "n": "科幻",
  504. "v": "科幻"
  505. }, {
  506. "n": "美少女",
  507. "v": "美少女"
  508. }, {
  509. "n": "魔幻",
  510. "v": "魔幻"
  511. }, {
  512. "n": "经典",
  513. "v": "经典"
  514. }, {
  515. "n": "励志",
  516. "v": "励志"
  517. }, {
  518. "n": "少儿",
  519. "v": "少儿"
  520. }, {
  521. "n": "冒险",
  522. "v": "冒险"
  523. }, {
  524. "n": "搞笑",
  525. "v": "搞笑"
  526. }, {
  527. "n": "推理",
  528. "v": "推理"
  529. }, {
  530. "n": "恋爱",
  531. "v": "恋爱"
  532. }, {
  533. "n": "治愈",
  534. "v": "治愈"
  535. }, {
  536. "n": "幻想",
  537. "v": "幻想"
  538. }, {
  539. "n": "校园",
  540. "v": "校园"
  541. }, {
  542. "n": "动物",
  543. "v": "动物"
  544. }, {
  545. "n": "机战",
  546. "v": "机战"
  547. }, {
  548. "n": "亲子",
  549. "v": "亲子"
  550. }, {
  551. "n": "儿歌",
  552. "v": "儿歌"
  553. }, {
  554. "n": "运动",
  555. "v": "运动"
  556. }, {
  557. "n": "悬疑",
  558. "v": "悬疑"
  559. }, {
  560. "n": "怪物",
  561. "v": "怪物"
  562. }, {
  563. "n": "战争",
  564. "v": "战争"
  565. }, {
  566. "n": "益智",
  567. "v": "益智"
  568. }, {
  569. "n": "青春",
  570. "v": "青春"
  571. }, {
  572. "n": "童话",
  573. "v": "童话"
  574. }, {
  575. "n": "竞技",
  576. "v": "竞技"
  577. }, {
  578. "n": "动作",
  579. "v": "动作"
  580. }, {
  581. "n": "社会",
  582. "v": "社会"
  583. }, {
  584. "n": "友情",
  585. "v": "友情"
  586. }, {
  587. "n": "真人版",
  588. "v": "真人版"
  589. }, {
  590. "n": "电影版",
  591. "v": "电影版"
  592. }, {
  593. "n": "OVA版",
  594. "v": "OVA版"
  595. }, {
  596. "n": "TV版",
  597. "v": "TV版"
  598. }, {
  599. "n": "新番动画",
  600. "v": "新番动画"
  601. }, {
  602. "n": "完结动画",
  603. "v": "完结动画"
  604. }]
  605. }, {
  606. "key": "地区",
  607. "name": "地区",
  608. "value": [{
  609. "n": "全部",
  610. "v": ""
  611. }, {
  612. "n": "内地",
  613. "v": "大陆"
  614. }, {
  615. "n": "日本",
  616. "v": "日本"
  617. }, {
  618. "n": "美国",
  619. "v": "美国"
  620. }]
  621. }, {
  622. "key": "年代",
  623. "name": "年代",
  624. "value": [{
  625. "n": "全部",
  626. "v": ""
  627. }, {
  628. "n": "2025",
  629. "v": "2025"
  630. }, {
  631. "n": "2024",
  632. "v": "2024"
  633. }, {
  634. "n": "2023",
  635. "v": "2023"
  636. }, {
  637. "n": "2022",
  638. "v": "2022"
  639. }, {
  640. "n": "2021",
  641. "v": "2021"
  642. }, {
  643. "n": "2020",
  644. "v": "2020"
  645. }, {
  646. "n": "2019",
  647. "v": "2019"
  648. }, {
  649. "n": "2018",
  650. "v": "2018"
  651. }, {
  652. "n": "2017",
  653. "v": "2017"
  654. }, {
  655. "n": "2016",
  656. "v": "2016"
  657. }, {
  658. "n": "2015",
  659. "v": "2015"
  660. }, {
  661. "n": "2014",
  662. "v": "2014"
  663. }, {
  664. "n": "2013",
  665. "v": "2013"
  666. }, {
  667. "n": "2012",
  668. "v": "2012"
  669. }, {
  670. "n": "2011",
  671. "v": "2011"
  672. }, {
  673. "n": "2010",
  674. "v": "2010"
  675. }, {
  676. "n": "2009",
  677. "v": "2009"
  678. }, {
  679. "n": "2008",
  680. "v": "2008"
  681. }, {
  682. "n": "2007",
  683. "v": "2007"
  684. }, {
  685. "n": "2006",
  686. "v": "2006"
  687. }, {
  688. "n": "2005",
  689. "v": "2005"
  690. }, {
  691. "n": "2004",
  692. "v": "2004"
  693. }, {
  694. "n": "更早",
  695. "v": "更早"
  696. }]
  697. }, {
  698. "key": "排序",
  699. "name": "排序",
  700. "value": [{
  701. "n": "最近热映",
  702. "v": "rankhot"
  703. }, {
  704. "n": "最近上映",
  705. "v": "ranklatest"
  706. }]
  707. }]
  708. },
  709. filter_def: {},
  710. headers: {
  711. 'User-Agent': 'MOBILE_UA'
  712. },
  713. timeout: 5000,
  714. class_name: '电视剧&电影&综艺&动漫',
  715. class_url: '2&1&3&4',
  716. limit: 5,
  717. multi: 1,
  718. searchable: 2,
  719. play_parse: true,
  720. lazy: $js.toString(() => {
  721. try {
  722. let api = "" + input.split("?")[0];
  723. console.log(api);
  724. let response = fetch(api, {
  725. method: 'get',
  726. headers: {
  727. 'User-Agent': 'okhttp/3.14.9',
  728. 'Content-Type': 'application/x-www-form-urlencoded'
  729. }
  730. });
  731. let bata = JSON.parse(response);
  732. if (bata.url.includes("qq,qiyi,imgo,youku,leshi,bilibili1,m1905")) {
  733. input = {
  734. parse: 0,
  735. url: bata.url,
  736. jx: 0,
  737. danmaku: "http://103.45.162.207:25252/hbdm.php?key=7894561232&id=" + input.split("?")[0]
  738. };
  739. } else {
  740. input = {
  741. parse: 0,
  742. url: input.split("?")[0],
  743. jx: 1,
  744. danmaku: "http://103.45.162.207:25252/hbdm.php?key=7894561232&id=" + input.split("?")[0]
  745. };
  746. }
  747. } catch {
  748. input = {
  749. parse: 0,
  750. url: input.split("?")[0],
  751. jx: 1,
  752. danmaku: "http://103.45.162.207:25252/hbdm.php?key=7894561232&id=" + input.split("?")[0]
  753. };
  754. }
  755. }),
  756. // 疑似t4专用的
  757. // lazy:'js:input={parse: 1, playUrl: "", jx: 1, url: input.split("?")[0]}',
  758. // 手动调用解析请求json的url,此lazy不方便
  759. // lazy:'js:input="https://cache.json.icu/home/api?type=ys&uid=292796&key=fnoryABDEFJNPQV269&url="+input.split("?")[0];log(input);let html=JSON.parse(request(input));log(html);input=html.url||input',
  760. 推荐: 'json:data;title;cover;comment;cat+ent_id;description',
  761. 一级: 'json:data.movies;title;cover;pubdate;id;description',
  762. 二级: '',
  763. 二级: $js.toString(() => {
  764. let html = JSON.parse(fetch(input, fetch_params));
  765. let data = html.data;
  766. let tilte = data.title;
  767. let img = data.cdncover;
  768. let vod_type = data.moviecategory.join(",");
  769. let area = data.area.join(",");
  770. let director = data.director.join(",");
  771. let actor = data.actor.join(",");
  772. let content = data.description;
  773. let base_vod = {
  774. vod_id: input,
  775. vod_name: tilte,
  776. type_name: vod_type,
  777. vod_actor: actor,
  778. vod_director: director,
  779. vod_content: content,
  780. vod_remarks: area,
  781. vod_pic: urljoin2(input, img)
  782. };
  783. let delta = 50;
  784. let vod_play = {};
  785. let sites = data.playlink_sites;
  786. sites.forEach(function(site) {
  787. let playList = "";
  788. let vodItems = [];
  789. print(data)
  790. if (data.allupinfo) {
  791. let total = parseInt(data.allupinfo[site]);
  792. print(total)
  793. for (let j = 1; j < total; j += delta) {
  794. let end = Math.min(total, j + delta - 1);
  795. print(end)
  796. let url2 = buildUrl(input, {
  797. start: j,
  798. end: end,
  799. site: site
  800. });
  801. let vod_data = JSON.parse(fetch(url2), fetch_params).data;
  802. if (vod_data != null) {
  803. if (vod_data.allepidetail) {
  804. vod_data = vod_data.allepidetail[site];
  805. vod_data.forEach(function(item, index) {
  806. vodItems.push((item.playlink_num || "") + "$" + urlDeal(item.url || ""))
  807. })
  808. } else {
  809. vod_data = vod_data.defaultepisode;
  810. vod_data.forEach(function(item, index) {
  811. vodItems.push((item.period || "") + (item.name || "") + "$" + urlDeal(item.url) || "")
  812. })
  813. }
  814. }
  815. }
  816. } else {
  817. let item = data.playlinksdetail[site];
  818. vodItems.push((item.sort || "") + "$" + urlDeal(item.default_url || ""))
  819. }
  820. if (vodItems.length > 0) {
  821. playList = vodItems.join("#")
  822. }
  823. if (playList.length < 1) {
  824. return
  825. }
  826. vod_play[site] = playList
  827. });
  828. let tabs = Object.keys(vod_play);
  829. let playUrls = [];
  830. for (let id in tabs) {
  831. print("id:" + id);
  832. playUrls.push(vod_play[tabs[id]])
  833. }
  834. if (tabs.length > 0) {
  835. let vod_play_from = tabs.join("$$$");
  836. let vod_play_url = playUrls.join("$$$");
  837. base_vod.vod_play_from = vod_play_from;
  838. base_vod.vod_play_url = vod_play_url
  839. }
  840. VOD = base_vod;
  841. }),
  842. 搜索: 'json:data.longData.rows;titleTxt||titlealias;cover;cat_name;cat_id+en_id;description',
  843. }