[4chan] Redirect 404s to Archive

Redirects dead thread links to archives

当前为 2015-07-29 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name [4chan] Redirect 404s to Archive
  3. // @namespace user@user
  4. // @include *://boards.4chan.org/*/thread/*
  5. // @version 1.1
  6. // @date 2015-07-26
  7. // @description Redirects dead thread links to archives
  8. // @grant none
  9. // @run-at document-end
  10. // ==/UserScript==
  11. var dead = document.evaluate('//title[text()="4chan - 404 Not Found"]', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null);
  12.  
  13. if (dead.singleNodeValue) {
  14. var url = window.location.href;
  15. var res = url.split("/");
  16. var board = res[3];
  17. var thread = res[5];
  18. switch(board) {
  19. case "asp":
  20. case "b":
  21. case "cm":
  22. case "h":
  23. case "hc":
  24. case "hm":
  25. case "n":
  26. case "p":
  27. case "qa":
  28. case "r":
  29. case "s":
  30. case "soc":
  31. case "toy":
  32. case "y":
  33. var archive = "fgts.jp";
  34. break;
  35. case "a":
  36. case "an":
  37. case "biz":
  38. case "c":
  39. case "co":
  40. case "diy":
  41. case "fit":
  42. case "gd":
  43. case "gif":
  44. case "i":
  45. case "int":
  46. case "jp":
  47. case "k":
  48. case "m":
  49. case "mlp":
  50. case "out":
  51. case "po":
  52. case "r9k":
  53. case "s4s":
  54. case "sci":
  55. case "tg":
  56. case "tv":
  57. case "u":
  58. case "v":
  59. case "vg":
  60. case "vp":
  61. case "vr":
  62. case "wsg":
  63. var archive = "archive.moe";
  64. break;
  65. case "adv":
  66. case "f":
  67. case "hr":
  68. case "o":
  69. case "pol":
  70. case "trv":
  71. case "x":
  72. var archive = "4plebs.org";
  73. break;
  74. case "3":
  75. case "cgl":
  76. case "ck":
  77. case "fa":
  78. case "g":
  79. case "ic":
  80. case "lit":
  81. var archive = "warosu.org";
  82. break;
  83. case "mu":
  84. case "w":
  85. var archive = "archive.rebeccablacktech.com";
  86. break;
  87. case "d":
  88. case "e":
  89. case "lgbt":
  90. case "t":
  91. var archive = "archive.loveisover.me";
  92. break;
  93. case "wg":
  94. var archive = "archive.nyafuu.org";
  95. break;
  96. case "sp":
  97. var archive = "totally.not4plebs.org";
  98. break;
  99. default:
  100. console.log("4chan redirect: no archive specified for board /" + board + "/");
  101. throw alert("no archive specified for board /" + board + "/");
  102. }
  103. window.location = "https://" + archive + "/" + board + "/thread/" + thread;
  104. }