Skip to content

Instantly share code, notes, and snippets.

@gadiener
Forked from kopiro/facebook-ticker.js
Created July 25, 2016 16:04
Show Gist options
  • Save gadiener/b173b8745488f8396f2d31a9ba33a23f to your computer and use it in GitHub Desktop.
Save gadiener/b173b8745488f8396f2d31a9ba33a23f to your computer and use it in GitHub Desktop.
Filter Facebook ticker stories with a RegEx
(function() {
var filterName = new RegExp(prompt("Insert the regex"), 'i');
if (!filterName) {
return alert('Invalid regex');
}
var MAX_ITERATIONS = 500;
var $profileNode = document.querySelector('[title="Profile"] > span');
var yourName = $profileNode.innerText;
var $ts = document.querySelector('.ticker_stream');
var $tsw = $ts.parentNode.parentNode.parentNode;
var i = 0;
function hideUselessStories() {
var els = [].slice.call( document.querySelectorAll('.fbFeedTickerStory') );
els.forEach(function(e) {
try {
var name = e.querySelector('.tickerFeedMessage .fwb').innerText;
if (filterName.test(name)) e.className += ' fbFeedTickerStoryShow';
} catch (ex) {
console.error(ex);
}
});
var st = document.createElement('style');
st.innerHTML = '.fbFeedTickerStory { display: none !important; } .fbFeedTickerStory.fbFeedTickerStoryShow { display: block !important; }';
document.body.appendChild(st);
}
function scrollTicker() {
$profileNode.innerText = yourName + ' (' + Math.floor( 100 * i / MAX_ITERATIONS ) + '%)';
if (i++ > MAX_ITERATIONS) {
$profileNode.innerText = yourName;
return hideUselessStories();
}
$tsw.scrollTop = $ts.clientHeight;
setTimeout(scrollTicker, 250);
}
scrollTicker();
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment