To Desuarchive

To desuarchive.org

  1. // ==UserScript==
  2. // @name To Desuarchive
  3. // @namespace http://github.com/hangjeff
  4. // @version 2025-03-20_16h50m
  5. // @description To desuarchive.org
  6. // @author hangjeff
  7. // @match https://boards.4chan.org/a/*
  8. // @match https://boards.4chan.org/aco/*
  9. // @match https://boards.4chan.org/an/*
  10. // @match https://boards.4chan.org/c/*
  11. // @match https://boards.4chan.org/cgl/*
  12. // @match https://boards.4chan.org/co/*
  13. // @match https://boards.4chan.org/d/*
  14. // @match https://boards.4chan.org/fit/*
  15. // @match https://boards.4chan.org/g/*
  16. // @match https://boards.4chan.org/his/*
  17. // @match https://boards.4chan.org/int/*
  18. // @match https://boards.4chan.org/k/*
  19. // @match https://boards.4chan.org/m/*
  20. // @match https://boards.4chan.org/mlp/*
  21. // @match https://boards.4chan.org/mu/*
  22. // @match https://boards.4chan.org/q/*
  23. // @match https://boards.4chan.org/qa/*
  24. // @match https://boards.4chan.org/r9k/*
  25. // @match https://boards.4chan.org/tg/*
  26. // @match https://boards.4chan.org/trash/*
  27. // @match https://boards.4chan.org/vr/*
  28. // @match https://boards.4chan.org/wsg/*
  29. // @exclude https://boards.4chan.org/search*
  30. // @grant none
  31. // ==/UserScript==
  32.  
  33. (function() {
  34. 'use strict';
  35.  
  36. // Your code here...
  37. document.querySelectorAll('.thread').forEach(function(thread) {
  38. let Komica_Thread_Url = window.location.href;
  39. if(!Komica_Thread_Url.includes('thread')){
  40. Komica_Thread_Url = Komica_Thread_Url.substring(0, Komica_Thread_Url.lastIndexOf('/') + 1);
  41. let replyLink = thread.querySelector('.postContainer .replylink');
  42. if(replyLink && replyLink.getAttribute('href') !== undefined){
  43. Komica_Thread_Url = Komica_Thread_Url + replyLink.getAttribute('href');
  44. //alert(Komica_Thread_Url);
  45. }
  46. else{
  47. // Komica_Thread_Url = Komica_Thread_Url + $(this).find('.threadpost').find('.category a:last').attr('href');
  48. console.log('404 Thread Not Found!');
  49. }
  50. }
  51. // alert( Komica_Thread_Url);
  52. let postInfo = thread.querySelector('.postInfo');
  53. if(postInfo){
  54. let Redirect_Btn = ArchiveIs_Create(Komica_Thread_Url.replace("https://boards.4chan.org/", "https://desuarchive.org/"),
  55. 'Desuarchive');
  56. postInfo.parentNode.insertBefore(Redirect_Btn, postInfo.nextSibling);
  57. }
  58. })
  59.  
  60. function ArchiveIs_Create(myUrl, myTarget){
  61. let btn = document.createElement('button');
  62. btn.textContent = 'Redirect to ' + myTarget;
  63. btn.tabIndex = 1;
  64. btn.style.display = 'inline-block';
  65. btn.style.backgroundColor = 'green';
  66. btn.addEventListener('click', function(event) {
  67. event.preventDefault();
  68. window.open(myUrl, '_blank');
  69. });
  70. return btn;
  71. }
  72.  
  73. })();