V2EX check user

检查封禁用户

  1. // ==UserScript==
  2. // @name V2EX check user
  3. // @version 0.1
  4. // @description 检查封禁用户
  5. // @author You
  6. // @match https://*.v2ex.com/t/*
  7. // @match https://v2ex.com/t/*
  8. // @grant none
  9. // @namespace https://gf.qytechs.cn/users/1220355
  10. // ==/UserScript==
  11.  
  12.  
  13. (function() {
  14. 'use strict';
  15.  
  16.  
  17. if (window.location.href.match(/^https:\/\/v2ex\.com\/t\//)) {
  18.  
  19. var sep10Div = document.querySelector('.sep10');
  20.  
  21. if (sep10Div) {
  22.  
  23. var checkDiv = document.createElement("div");
  24. checkDiv.id = "check";
  25.  
  26. var checkButton = document.createElement("button");
  27. checkButton.textContent = "检查";
  28. checkButton.addEventListener("click", checkLinks);
  29.  
  30. checkDiv.appendChild(checkButton);
  31.  
  32. sep10Div.insertAdjacentElement('afterend', checkDiv);
  33.  
  34. function checkLinks() {
  35.  
  36. checkButton.disabled = true;
  37.  
  38. var cells = document.getElementsByClassName("cell");
  39.  
  40.  
  41. for (var i = 0; i < cells.length; i++) {
  42.  
  43. var links = cells[i].getElementsByTagName("a");
  44.  
  45.  
  46. for (var j = 0; j < links.length; j++) {
  47. var href = links[j].getAttribute("href");
  48.  
  49. if (href.includes("/member/") && !isDescendant(links[j], 'reply_content')) {
  50.  
  51. href = window.location.origin + href;
  52.  
  53. setTimeout(checkLinkValidity, j * 1000, href, links[j]);
  54. }
  55. }
  56. }
  57. }
  58.  
  59. function isDescendant(element, className) {
  60. while ((element = element.parentElement) && !element.classList.contains(className));
  61. return element;
  62. }
  63.  
  64. function checkLinkValidity(url, linkElement) {
  65. fetch(url)
  66. .then(response => {
  67. if (response.status === 404) {
  68. console.error("404 Not Found:", url);
  69.  
  70. linkElement.classList.add("error-message");
  71.  
  72. var errorElement = document.createElement("span");
  73. errorElement.textContent = " 此用户已被封禁";
  74. linkElement.parentNode.appendChild(errorElement);
  75. } else if (response.status === 403) {
  76. console.error("403 Forbidden:", url);
  77.  
  78. linkElement.classList.add("error-message");
  79.  
  80. var errorElement = document.createElement("span");
  81. errorElement.textContent = " 403 Forbidden";
  82. linkElement.parentNode.appendChild(errorElement);
  83. } else {
  84.  
  85. console.log("Link is valid:", url);
  86. }
  87. })
  88. .catch(error => {
  89. console.error("Error checking link:", error);
  90. })
  91. .finally(() => {
  92.  
  93. });
  94. }
  95. }
  96. }
  97. })();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址