NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript==
// @name Spam ist tot
// @description Say no to spammers.
// @namespace resterman
// @version 0.1
// @author resterman
// @run-at document-end
// @match http://www.kongregate.com/games/*/*
// @grant none
// ==/UserScript==
var injectCode = function () {
ChatDialogue.prototype.incrementMessageCount = function (a) {
var hasCount = a.getElementsByClassName('spam-count').length > 0;
if (hasCount) {
var count = a.getElementsByClassName('spam-count')[0],
amount = parseInt(count.getAttribute('amount'));
count.innerHTML = 'x' + (amount + 1);
count.setAttribute('amount', amount + 1)
} else {
a.getElementsByTagName('p')[0].innerHTML += '<span amount="2" class="spam-count" style="float: right; color: #888">x2</span>';
}
};
ChatDialogue.prototype.compareMessages = function (a, b) {
if (!a || !b)
return false;
var c = a.getElementsByClassName('username')[0].getAttribute('username'),
d = b.getElementsByClassName('username')[0].getAttribute('username'),
e = a.getElementsByClassName('message')[0].innerHTML,
f = b.getElementsByClassName('message')[0].innerHTML;
return c == d && e == f;
};
ChatDialogue.prototype.insert = function(a, b, c) {
var d = this,
e = this._message_window_node,
f = this._holodeck;
f.scheduleRender(function() {
var g = e.getHeight(),
h = g + e.scrollTop + ChatDialogue.SCROLL_FUDGE >= e.scrollHeight,
r = 0 !== g && h;
f.scheduleRender(function() {
var messages = e.getElementsByClassName('chat-message');
var lastMsg = messages.length ? messages[messages.length - 1] : null;
if ("string" == typeof a || a instanceof String) a = $j("<div/>", {
html: a,
"class": "chat-message"
});
if (d.compareMessages(lastMsg, a[0])) {
d.incrementMessageCount(lastMsg);
return;
}
if (c && c.timestamp) {
var f = $j(e).children(".chat-message").filter(function() {
return $j(this).data("timestamp") > c.timestamp
});
0 < f.length ? ($j(a).data(c).insertBefore(f.first()),
r = !1) : $j(a).data(c).appendTo(e)
} else $j(a).appendTo(e);
r && d.scrollToBottom();
b && b()
})
})
};
}
var init = function () {
if (window['ChatDialogue'] === undefined) setTimeout(init, 100);
else injectCode();
};
init();