storiesonline depaginator

De-paginates stories on storiesonline.net

  1. // ==UserScript==
  2. // @name storiesonline depaginator
  3. // @namespace http://tampermonkey.net/
  4. // @version 0.3
  5. // @description De-paginates stories on storiesonline.net
  6. // @author You
  7. // @match https://storiesonline.net/s/*/*
  8. // @grant none
  9. // ==/UserScript==
  10.  
  11. let scr = document.createElement("script");
  12.  
  13. scr.src = "https://code.jquery.com/jquery-3.3.1.min.js";
  14.  
  15. scr.onload = function() {
  16. if (!document.querySelector(".pager")) {
  17. let arr = Array.from($(".tolink"));
  18.  
  19. if (arr.length === 0) arr = Array.from($(".link"));
  20.  
  21. arr.forEach(el => $(el).load(el.children[0].href + " article"));
  22.  
  23. let chapters = arr.length;
  24.  
  25. setTimeout(function() {
  26. Array.from($(".end")).forEach(el => el.remove());
  27. Array.from($(".date")).forEach(el => el.remove());
  28. }, chapters * 1000);
  29. } else {
  30. let moreChapters = Number(document.querySelector(".pager").children[document.querySelector(".pager").children.length - 2].innerText);
  31. for (let i = 1; i < moreChapters; i++) {
  32. $.ajax({
  33. type: "GET",
  34. url: window.location.href + "?page=" + i.toString(),
  35. async: false,
  36. success: function(data) {
  37. $("article")[0].innerHTML += $($.parseHTML(data)).find("article")[0].innerHTML;
  38. }
  39. });
  40. }
  41. Array.from($(".pager")).forEach(el => el.remove());
  42. Array.from($(".conTag")).forEach(el => el.remove());
  43. Array.from($("header")).forEach((el, i) => {if (i !== 0) el.remove();});
  44. Array.from($(".end")).forEach(el => el.remove());
  45. }
  46. };
  47.  
  48. document.querySelector("head").appendChild(scr);
  49.  
  50.  
  51. for (let sheet of document.styleSheets) {
  52. sheet.disabled = true;
  53. }