Skip to content

Instantly share code, notes, and snippets.

@ivmirx
Last active February 10, 2020 20:20
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ivmirx/66a0015884d44297ea05a8c54d93566d to your computer and use it in GitHub Desktop.
Save ivmirx/66a0015884d44297ea05a8c54d93566d to your computer and use it in GitHub Desktop.
Filter for hckrnews.com (Chrome and Firefox extension)
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 });
{
"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