spankbang.js 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. const videoSource = (stream_data, d) => {
  2. d.push({
  3. pic_url: stream_data.cover_image,
  4. col_type: 'pic_1'
  5. });
  6. if (stream_data['240p'].length > 0) {
  7. d.push({
  8. title: '240p',
  9. url: stream_data['240p'][0],
  10. col_type: 'text_2'
  11. });
  12. }
  13. if (stream_data['320p'].length > 0) {
  14. d.push({
  15. title: '320p',
  16. url: stream_data['320p'][0],
  17. col_type: 'text_2'
  18. });
  19. }
  20. if (stream_data['480p'].length > 0) {
  21. d.push({
  22. title: '480p',
  23. url: stream_data['480p'][0],
  24. col_type: 'text_2'
  25. });
  26. }
  27. if (stream_data['720p'].length > 0) {
  28. d.push({
  29. title: '720p',
  30. url: stream_data['720p'][0],
  31. col_type: 'text_2'
  32. });
  33. }
  34. if (stream_data['1080p'].length > 0) {
  35. d.push({
  36. title: '1080p',
  37. url: stream_data['1080p'][0],
  38. col_type: 'text_2'
  39. });
  40. }
  41. if (stream_data['4k'].length > 0) {
  42. d.push({
  43. title: '4k',
  44. url: stream_data['4k'][0],
  45. col_type: 'text_2'
  46. });
  47. }
  48. }
  49. const baseParse = _ => {
  50. let res = {};
  51. let d = [];
  52. const html = getResCode();
  53. const list = parseDomForArray(html, '.video-list&&.video-item');
  54. if (Number(MY_PAGE) === 1) {
  55. d.push({
  56. title: '分类',
  57. col_type: 'text_center_1',
  58. url: $("https://spankbang.com/categories").rule(_ => {
  59. var d = [];
  60. var list = parseDomForArray(getResCode(), '#categories&&a');
  61. list.forEach(item => {
  62. d.push({
  63. title: parseDomForHtml(item, 'a&&Text'),
  64. pic_url: parseDomForHtml(item, '.cover&&src'),
  65. url: $("https://spankbang.com"+parseDomForHtml(item,'a&&href').replace(/\?.*/, '')+"/fypage/").rule(_ => {
  66. let d = [];
  67. let html = getResCode();
  68. let list = parseDomForArray(html, '.video-list&&.video-item');
  69. list.forEach(item => {
  70. d.push({
  71. title: parseDomForHtml(item, '.name&&Text'),
  72. desc: parseDomForHtml(item, '.l&&Text'),
  73. pic_url: parseDom(item, '.cover&&data-src'),
  74. url: $(parseDom(item,'a&&href')).rule(_ => {
  75. eval(fetch('hiker://files/TyrantG/GHS/spankbang.js'))
  76. secParse()
  77. }),
  78. col_type: 'movie_3',
  79. });
  80. })
  81. setResult(d)
  82. }),
  83. col_type: 'movie_3',
  84. });
  85. })
  86. setResult(d)
  87. })
  88. })
  89. }
  90. list.forEach(item => {
  91. d.push({
  92. title: parseDomForHtml(item, '.name&&Text'),
  93. desc: parseDomForHtml(item, '.l&&Text'),
  94. pic_url: parseDom(item, '.cover&&data-src'),
  95. url: parseDom(item,'a&&href'),
  96. col_type: 'movie_3',
  97. });
  98. })
  99. res.data = d;
  100. setHomeResult(res);
  101. }
  102. const secParse = _ => {
  103. let res = {};
  104. let d = [];
  105. const html = getResCode();
  106. const script = parseDomForHtml(html, '#inner_content&&script&&Html');
  107. eval(script)
  108. videoSource(stream_data, d)
  109. res.data = d;
  110. setHomeResult(res);
  111. }
  112. const searchParse = () => {
  113. let res = {};
  114. let d = [];
  115. const html = getResCode();
  116. const list = parseDomForArray(html, '.video-list&&.video-item');
  117. list.forEach(item => {
  118. d.push({
  119. title: parseDomForHtml(item, '.name&&Text'),
  120. desc: parseDomForHtml(item, '.l&&Text'),
  121. pic_url: parseDom(item, '.cover&&data-src'),
  122. url: parseDom(item,'a&&href'),
  123. col_type: 'movie_2',
  124. });
  125. })
  126. res.data = d;
  127. setHomeResult(res);
  128. }