BlockIdiotsInGithub

Block some idiots and their gibberish projects in search result

  1. // ==UserScript==
  2. // @name BlockIdiotsInGithub
  3. // @namespace http://tampermonkey.net/
  4. // @version 1.0.1
  5. // @description Block some idiots and their gibberish projects in search result
  6. // @description:zh-tw 屏蔽一些傻逼
  7. // @author zongren
  8. // @match *://github.com/*
  9. // @icon https://www.google.com/s2/favicons?sz=64&domain=github.com
  10. // @grant none
  11. // ==/UserScript==
  12.  
  13. (function() {
  14. 'use strict';
  15. var shaBiList = [
  16. "cirosantilli",
  17. "codin-stuffs",
  18. "cheezcharmer",
  19. "Daravai1234",
  20. "tjqJ62cESiHPj6DdR6vXDAcPp",
  21. ]
  22. function isShaBi(href){
  23. for(var i = 0;i < shaBiList.length;i++){
  24. if(href.match("/"+shaBiList[i]+"/")){
  25. return true
  26. }
  27. }
  28. return false;
  29. }
  30. function deleteShaBi(){
  31. var searchResultList = document.querySelectorAll("[data-testid=\"results-list\"]")
  32. var foundShaBiList = []
  33. for(var i = 0;i < searchResultList.length;i++){
  34. var ele = searchResultList[i]
  35. var eleChildren = ele.children
  36. for(var k = 0;k < eleChildren.length;k++){
  37. var eleChild = eleChildren[k]
  38. var linkList = eleChild.getElementsByTagName("a")
  39. for(var j = 0;j < linkList.length;j++){
  40. var linkEle = linkList[j]
  41. if(linkEle.href && isShaBi(linkEle.href)){
  42. foundShaBiList.push(eleChild)
  43. console.log("找到一个傻逼:"+linkEle.href)
  44. break
  45. }
  46. }
  47. }
  48. }
  49. for(var h = 0;h < foundShaBiList.length;h++){
  50. console.log("delete one idiot")
  51. foundShaBiList[h].remove()
  52. }
  53. }
  54. var observeDOM = (function(){
  55. var MutationObserver = window.MutationObserver || window.WebKitMutationObserver;
  56.  
  57. return function( obj, callback ){
  58. if( !obj || obj.nodeType !== 1 ) return;
  59.  
  60. if( MutationObserver ){
  61. // define a new observer
  62. var mutationObserver = new MutationObserver(callback)
  63.  
  64. // have the observer observe for changes in children
  65. mutationObserver.observe( obj, { childList:true, subtree:true })
  66. return mutationObserver
  67. }
  68.  
  69. // browser support fallback
  70. else if( window.addEventListener ){
  71. obj.addEventListener('DOMNodeInserted', callback, false)
  72. obj.addEventListener('DOMNodeRemoved', callback, false)
  73. }
  74. }
  75. })()
  76. observeDOM(document.body, function(m){
  77. deleteShaBi()
  78. });
  79. console.log("start monitor idiot")
  80. })();