Skip to content

Instantly share code, notes, and snippets.

@jgkim
Created July 25, 2009 08:37
Show Gist options
  • Save jgkim/154749 to your computer and use it in GitHub Desktop.
Save jgkim/154749 to your computer and use it in GitHub Desktop.
// ==UserScript==
// @name me2Kit
// @namespace http://jayg.org/projects/me2Kit
// @description Filter messages based on tags and automatically load messages when you scroll down.
// @include http://me2day.net/*
// @version 0.0.3 Prototype
// ==/UserScript==
/* Configurations */
var blacklist = new Array('twi2me');
function filter_messages()
{
var sections = document.getElementsByClassName('sec_post');
for (var i = scanned; i < sections.length; i++)
{
var filtered = 0;
var messages = sections[i].getElementsByClassName('post_section');
for (var j = 0; j < messages.length; j++)
{
var tagline = messages[j].getElementsByClassName('tagline');
if (tagline.length > 0)
{
tagline = tagline[0];
var tags = tagline.getElementsByTagName('a');
var blocked = false;
for (var k = 0; k < tags.length; k++)
{
if (tags[k].getAttribute('rel') == 'tag')
{
for (var q = 0; q < blacklist.length; q++)
{
if (tags[k].firstChild.nodeValue == blacklist[q])
{
messages[j].style.display = 'none';
blocked = true;
filtered++;
break;
}
}
if (blocked) break;
}
}
}
}
if (messages.length == filtered)
{
sections[i].style.display = 'none';
}
}
scanned = (sections.length == 0) ? 0 : sections.length - 1;
}
function load_messages()
{
if (loading_messages == false)
{
loading_messages = true;
old_href = get_mystream_link.getAttribute('href');
var old_height = container_contents.clientHeight;
if (typeof(unsafeWindow) != 'undefined')
{
unsafeWindow.Stream.get_more_posts();
}
else
{
window.Stream.get_more_posts();
}
tried = 0;
var finalize = function() {
if (tried < 5)
{
tried++;
if ((old_href != get_mystream_link.getAttribute('href')) && (old_height < container_contents.clientHeight))
{
filter_messages();
loading_messages = false;
}
else
{
setTimeout(finalize, 500);
}
}
};
setTimeout(finalize, 500);
}
return false;
}
var tried = 0;
var scanned = 0;
var loading_messages = true;
var get_mystream_link = null;
var container_contents = null;
var old_href = '';
setTimeout(function() {
get_mystream_link = document.getElementById('get_mystream_link');
if (get_mystream_link)
{
old_href = get_mystream_link.getAttribute('href');
get_mystream_link.addEventListener('click', load_messages, false);
container_contents = document.getElementById('container_contents');
window.addEventListener('scroll', function () {
if (container_contents.clientHeight < (window.scrollY + window.innerHeight + 200))
{
load_messages();
}
} , false);
filter_messages();
loading_messages = false;
}
}, 1500);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment