Javbus 工具

Javbus 瀑布流排序

  1. // ==UserScript==
  2. // @name Javbus 工具
  3. // @description Javbus 瀑布流排序
  4. // @namespace https://github.com/LiHang941/srcript/
  5. // @version 0.05
  6. // @author lihang1329
  7. // @include https://www.javbus.com/*
  8. // @supportURL https://github.com/LiHang941/srcript
  9. // @grant none
  10. // @license MIT
  11. // ==/UserScript==
  12.  
  13. (function () {
  14. let datas = Array.from($("div#waterfall div.item"));
  15. if(datas.length === 0){
  16. return
  17. }
  18. $("#waterfall").html('')
  19. let pages = $(".pagination a")
  20. let pageUrls = Array.from(pages).map(it => {
  21. let url = $(it).prop('href')
  22. let val = $(it).html()
  23. if (/\d+/.test(val)) {
  24. return {
  25. url: url,
  26. page:parseInt(val),
  27. }
  28. }
  29. return null
  30. }).filter(it => it != null)
  31.  
  32. Promise.all(pageUrls.map(it => {
  33. let url = it.url
  34. let page = it.page
  35. const fetchwithcookie = fetch(url, { credentials: 'same-origin' });
  36. return fetchwithcookie.then(response => response.text())
  37. .then(html => new DOMParser().parseFromString(html, 'text/html'))
  38. .then(doc => {
  39. console.log(doc)
  40. let elems = $(doc).find("div#waterfall div.item");
  41. return {
  42. elems,
  43. url,
  44. page
  45. };
  46. });
  47.  
  48. })).then(arrs => {
  49. for (const arr of arrs) {
  50. for (const it of Array.from(arr.elems)) {
  51. datas.push(it)
  52. }
  53. }
  54.  
  55. }).then(() => {
  56. window.datas = datas;
  57. datas = Array.from(datas).sort((a, b) => {
  58. let dateA = $($(a).find("date")[1]).html()
  59. let dateB = $($(b).find("date")[1]).html()
  60. return new Date(dateB).getTime() - new Date(dateA).getTime()
  61. })
  62.  
  63. $("#waterfall").html(datas)
  64. $('.movie-box').css("height", "500px");
  65. $('#waterfall').masonry({
  66. itemSelector: ".item",
  67. isAnimated: false,
  68. isFitWidth: true
  69. });
  70. })
  71.  
  72.  
  73.  
  74.  
  75.  
  76. })();