NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript==
// @name Add Filter by Tag to SteemIt
// @namespace http://tampermonkey.net/
// @version 1.2
// @description Add Filter by Tag to SteemIt
// @author netuoso
// @match https://steemit.com/*
// @grant WTFPL
// ==/UserScript==
function filterPosts(filterTag) {
// Get all posts vcards (author,rating,tag)
var elements = document.getElementsByClassName("vcard");
for (var i=0; i<elements.length; i++) {
if (filterTag !== "") {
// Loop over the posts and hide the entire post if tag is different than filter
// Aka, enable filter
var postTag = elements[i].lastChild.innerText;
if (postTag !== filterTag) {
elements[i].parentElement.parentElement.parentElement.style.display="none";
}
} else {
// If filter is "" then ensure all posts are displayed
// Aka, disable filter
elements[i].parentElement.parentElement.parentElement.style.display="list-item";
}
}
}
function enablePostFilter() {
// Get tag to filter from input field
filterTag = document.getElementById("tagInput");
filterPosts(filterTag.value);
// Automatically filter new posts as the page loads more
document.getElementById("posts_list").addEventListener("DOMNodeInserted", function(event) {
filterPosts(filterTag.value);
});
}
function disablePostFilter() {
// Get tag to filter from input field
filterTag = document.getElementById("tagInput");
filterTag.value = "";
enablePostFilter("");
}
// Create a text field called "Enable Filter"
var enableFilterNode = document.createElement("li");
var enableFilterLink = document.createElement("a");
enableFilterLink.innerHTML = "enable filter";
enableFilterLink.onclick = function() { enablePostFilter(); };
enableFilterLink.href = "javascript:;";
enableFilterNode.appendChild(enableFilterLink);
// Create a text field called "Disable Filter"
var disableFilterNode = document.createElement("li");
var disableFilterLink = document.createElement("a");
disableFilterLink.innerHTML = "disable filter";
disableFilterLink.onclick = function() { disablePostFilter(); };
disableFilterLink.href = "javascript:;";
disableFilterNode.appendChild(disableFilterLink);
// Input field for desired tag
var tagInput = document.createElement("input");
tagInput.id = "tagInput";
tagInput.type = "text";
// Append the link to the navigation bar on the right side of screen by tags
document.getElementsByClassName('Topics__title')[0].appendChild(enableFilterNode);
document.getElementsByClassName('Topics__title')[0].appendChild(tagInput);
document.getElementsByClassName('Topics__title')[0].appendChild(disableFilterNode);