Greasy Fork镜像 支持简体中文。

fuckseo

Fucking SEO

  1. // ==UserScript==
  2. // @name fuckseo
  3. // @namespace https://github.com/k1995/fuckseo
  4. // @version 0.2
  5. // @description Fucking SEO
  6. // @author Youhttps://github.com/k1995
  7. // @match *://www.google.com/search*
  8. // @icon data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
  9. // @grant none
  10. // ==/UserScript==
  11.  
  12. (function() {
  13. 'use strict';
  14.  
  15. const isMatch = function(s, p) {
  16. let dp = Array(s.length+1).fill(null).map(()=>Array(p.length+1).fill(false));
  17. dp[0][0] = true;
  18.  
  19. // initialize first column (string)
  20. for (let i=1;i<=s.length;i++) {
  21. dp[i][0] = false;
  22. }
  23.  
  24. // initialize first row (pattern)
  25. for (let i=1;i<=p.length;i++) {
  26. dp[0][i] = dp[0][i-1] && p[i-1] == "*";
  27. }
  28.  
  29. for (let i=1;i<=s.length;i++) {
  30. for (let j=1;j<=p.length;j++) {
  31. if (p[j-1]=='*') {
  32. dp[i][j] = dp[i-1][j] || dp[i][j-1]; // look top or left
  33. } else if (s[i-1] == p[j-1] || p[j-1]=='?') {
  34. dp[i][j] = dp[i-1][j-1]; // inherit from previous result
  35. }
  36. }
  37. }
  38. return dp[s.length][p.length]
  39. }
  40.  
  41. document.querySelectorAll("#rso .g").forEach((searchItem) => {
  42. const target = searchItem.querySelector(".yuRUbf>a")
  43. const blocklist = [
  44. "*://www.huaweicloud.com/articles/*",
  45. "*://cloud.tencent.com/developer/*",
  46. "*://qastack.cn/*",
  47. "*coder.work*",
  48. "*://www.aliyun.com/sswd/*",
  49. "*mlog.club*",
  50. "*://*.voidcc.com/*",
  51. "*://*.codeday.me/*",
  52. "*://*.voidcn.com/*",
  53. "*://*.codenong.com/*",
  54. "*://*.helplib.com/*",
  55. "*://*.jishuwen.com/*"
  56. ]
  57. for(let patten of blocklist) {
  58. if(isMatch(target.href, patten)) {
  59. searchItem.style.display = 'none';
  60. console.log("Fucking SEO: " + target.href);
  61. }
  62. }
  63. });
  64. })();

QingJ © 2025

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