Created
July 25, 2009 08:37
-
-
Save jgkim/154749 to your computer and use it in GitHub Desktop.
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
// ==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