One Long Thread

Show up to 5 thread pages at a time on one page.

  1. // ==UserScript==
  2. // @name One Long Thread
  3. // @namespace xenAllInOneThread
  4. // @description Show up to 5 thread pages at a time on one page.
  5. // @include http://www.readytogo.net/smb/threads/*
  6. // @version 1
  7. // @grant none
  8. // ==/UserScript==
  9.  
  10. function pages(pSel) {
  11. var numOfPages = document.getElementsByClassName('pageNavHeader');
  12. var getPageRange = /Page (\d*) of (\d*)/i;
  13. var pageRange = getPageRange.exec(numOfPages[0].innerHTML);
  14. var pages = pageRange[1] + "/" + pageRange[2];
  15. if (pSel == 'current') {
  16. return pageRange[1];
  17. }
  18. if (pSel == 'last') {
  19. return pageRange[2];
  20. }
  21. if (pSel == 'next') {
  22. var next = parseInt(pageRange[1]) + parseInt('1'); return next
  23. }
  24. }
  25.  
  26. var nextPageNum = pages('next');
  27. console.log('next num '+nextPageNum);
  28. var lastPageNum = pages('last');
  29. console.log('last num '+lastPageNum);
  30.  
  31. var normPageLimit = nextPageNum + 3;
  32. console.log('normal max num '+normPageLimit);
  33. if (normPageLimit > lastPageNum) {
  34. var maxPageNum = lastPageNum;
  35. } else {
  36. maxPageNum = normPageLimit;
  37. }
  38. console.log('actual max num '+maxPageNum);
  39.  
  40. function pageURLCleaned() {
  41.  
  42. currURLLoc = document.URL.lastIndexOf('/');
  43. var urlWithOutPage = document.URL.substr(0, currURLLoc);
  44.  
  45. return urlWithOutPage
  46. }
  47.  
  48. function getOtherPageContent(num) {
  49. var getURL = pageURLCleaned()+"/page-"+num+" #messageList";
  50.  
  51. console.log('get next page');
  52. console.log(getURL);
  53.  
  54.  
  55. $( "<div>" ).load( getURL, function() {
  56. console.log("done "+getURL);
  57. $("#messageList").append("<div style=\"padding: 1%; font-size: 15px\" align=\"center\"><b>Posts loaded below are from page "+num+"</b></div>");
  58. $("#messageList").append($(this).find("#messageList").html());
  59.  
  60. if (num < maxPageNum) {
  61. getOtherPageContent(parseInt(num)+1);
  62. }
  63.  
  64. } );
  65.  
  66.  
  67. }
  68.  
  69. function startLoading() {
  70.  
  71. if (nextPageNum > lastPageNum) { return; }
  72.  
  73. getOtherPageContent(nextPageNum);
  74.  
  75. var nextLotOfPages = parseInt(maxPageNum) + 1;
  76.  
  77. if (nextLotOfPages <= lastPageNum) {
  78. var pageNavDivs = document.getElementsByClassName('PageNav');
  79. var secondNavBar = pageNavDivs[1];
  80. console.log(secondNavBar);
  81. var newNavHTML = "<br /><div style=\"padding: 1%; font-size: 15px\" align=\"center\"><a style=\"float: none !important;\" class=\"text\" href=\""+pageURLCleaned()+"/page-"+nextLotOfPages+"\"><b>Next page for extra posts is "+nextLotOfPages+" &gt;</a></b></div>";
  82. $(secondNavBar).append(newNavHTML);
  83. }
  84. }
  85. // SEB
  86. startLoading();