Last active
February 10, 2020 20:20
-
-
Save ivmirx/66a0015884d44297ea05a8c54d93566d to your computer and use it in GitHub Desktop.
Filter for hckrnews.com (Chrome and Firefox extension)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var words = [ | |
'php', 'js', 'javascript', 'css', 'java', 'ruby', 'rust', 'golang', 'go\'s', 'kotlin', 'perl', | |
'elixir', 'elm ', 'erlang', 'clojure', 'lisp', 'racket', 'scala', | |
'mozilla', 'firefox', 'mysql', 'mongo', 'latex', 'webgl', | |
'dell', 'amd', | |
'google', 'facebook', 'amazon', 'aws ', 'airbnb', 'uber', 'unicorn', 'damore', 'kalanick', 'bezos', | |
'kubernetes', 'docker', 'tensor', ' ml ', 'machine learning', 'artificial intelligence', | |
'self-driving', 'tesla', 'musk', 'spacex', 'hyperloop', 'bitcoin', 'btc', 'ethereum', 'blockchain', | |
'u.s.', 'president', 'trump', 'congress', 'police', 'military', 'federal', 'fbi', 'nsa ', 'snowden', | |
'francisco', 'new york', 'california', 'bay area', 'texas', 'wall street', 'verizon', | |
'guardian.com', 'vox.com', 'forbes.com']; | |
function filter(list) { | |
var entries = list.getElementsByClassName('entry row'); | |
var filteredEntries = []; | |
for (var i = entries.length - 1; i >= 0; i--) { | |
var link = entries[i].getElementsByClassName('link span15 story')[0]; | |
if (link == null) | |
continue; | |
var text = link.innerText.toLowerCase(); | |
for (var j = words.length - 1; j >= 0; j--) { | |
if (text.indexOf(words[j]) != -1) { | |
logEntry(entries[i], link); | |
filteredEntries.push(entries[i]); | |
break; | |
} | |
} | |
} | |
for (var i = filteredEntries.length - 1; i >= 0; i--) { | |
filteredEntries[i].parentNode.removeChild(filteredEntries[i]); | |
} | |
} | |
function logEntry(entry, link) { | |
var points = entry.getElementsByClassName('points')[0].innerText; | |
if (points < 100) { | |
return; | |
} | |
var commentsCount = entry.getElementsByClassName('comments')[0].innerText; | |
console.log(commentsCount + '/' + points + ' ' + link.innerText); | |
var commentsLink = entry.getElementsByClassName('hn span3 story ')[0].href; | |
console.log(commentsLink); | |
} | |
var entryLists = document.getElementsByClassName('entries unstyled'); | |
for (var i = entryLists.length - 1; i >= 0; i--) { | |
filter(entryLists[i]); | |
} | |
var observer = new MutationObserver(function(mutations) { | |
mutations.forEach(function(item) { | |
item.addedNodes.forEach(function(node) { | |
filter(node); | |
}); | |
}); | |
}); | |
var div = document.querySelector('#entries'); | |
observer.observe(div, { childList: true }); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"manifest_version": 2, | |
"name": "hckrnews.com filter", | |
"version": "1.0", | |
"description": "Filter out submissions on hckrnews.com based on keywords", | |
"permissions": [ | |
"tabs" | |
], | |
"content_scripts": [ | |
{ | |
"matches": ["http://hckrnews.com/"], | |
"js": ["filter.js"] | |
} | |
] | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment