Created
February 23, 2014 14:29
-
-
Save Munksgaard/9172142 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
javascript:(function(){"use strict";var BLOCKED_WORDS=["left","right","up","down","start","select","a","b","democracy","anarchy","oligarchy","bureaucracy","monarchy","alt f4","helix"];var BLOCKED_URLS=["nakedjenna","bit.ly","bitly","tinyurl","teespring","youtube.com/user","naked-riley","twitch.tv","ow.ly","steam-games-free","free-steam-games","cheap games"];var MINIMUM_MESSAGE_LENGTH=3;var MAXIMUM_NON_ASCII_CHARACTERS=2;var MINIMUM_DISTANCE_ERROR=2;var myWindow;try{myWindow=unsafeWindow}catch(e){myWindow=window}var $=myWindow.jQuery;var commands_regex=new RegExp("^(("+BLOCKED_WORDS.join("|")+")\\d?)+$","i");function min_edit(a,b){if(a.length===0)return b.length;if(b.length===0)return a.length;var matrix=[];for(var i=0;i<=b.length;i++){matrix[i]=[i]}for(var j=0;j<=a.length;j++){matrix[0][j]=j}for(var i=1;i<=b.length;i++){for(var j=1;j<=a.length;j++){if(b.charAt(i-1)==a.charAt(j-1)){matrix[i][j]=matrix[i-1][j-1]}else{matrix[i][j]=Math.min(matrix[i-1][j-1]+1,Math.min(matrix[i][j-1]+1,matrix[i-1][j]+1))}}}return matrix[b.length][a.length]}var is_message_spam=function(message){message=message.replace(/\s/g,'');if(message.length<MINIMUM_MESSAGE_LENGTH){return true}if(message.match(commands_regex)){return true}for(var i=0;i<BLOCKED_URLS.length;i++){if(message.indexOf(BLOCKED_URLS[i])!==-1){return true}}var nonASCII=0;for(var i=0;i<message.length;i++){if(message.charCodeAt(i)>127){nonASCII++;if(nonASCII>MAXIMUM_NON_ASCII_CHARACTERS){return true}}}var min_distance=BLOCKED_WORDS.map(function(word){return min_edit(word,message)}).reduce(function(x,y,i,arr){return Math.min(x,y)});if(min_distance<=MINIMUM_DISTANCE_ERROR){return true}return false};var showSpam=false;var showSafe=false;var initialize_ui=function(){$("<style type='text/css' >"+".segmented_tabs li li a.CommandsToggle {"+"width: 50px;"+"padding-left: 0;"+"padding-top: 0;"+"height: 8px;"+"line-height: 115%;"+"}"+".segmented_tabs li li a.ChatToggle {"+"width: 35px;"+"padding-left: 15px;"+"padding-top: 0;"+"height: 8px;"+"line-height: 115%;"+"}"+"#chat_line_list li { display:none }"+"#chat_line_list li.fromjtv,"+"#chat_line_list.showSpam li.cSpam,"+"#chat_line_list.showSafe li.cSafe {"+"display:inherit;"+"}"+" </style>").appendTo("head");var chat_button=$("ul.segmented_tabs li a").first();chat_button.css("width",chat_button.width()-71);$("<li><a class='CommandsToggle'>Commands</a><a class='ChatToggle'>Talk</a></li>").insertAfter(chat_button);$(".CommandsToggle").click(function(){$(this).toggleClass("selected");$("#chat_line_list").toggleClass("showSpam");showSpam=!showSpam});$(".ChatToggle").click(function(){$(this).toggleClass("selected");$("#chat_line_list").toggleClass("showSafe");showSafe=!showSafe}).click()};var initialize_filter=function(){var CurrentChat=myWindow.CurrentChat;$('#chat_line_list li').each(function(){var chatLine=$(this);var chatText=chatLine.find(".chat_line").text();var chatClass=is_message_spam(chatText)?"cSpam":"cSafe";chatLine.addClass(chatClass)});CurrentChat.spam_count=0;CurrentChat.safe_count=0;CurrentChat.jtv_count=0;CurrentChat.insert_with_lock_in=function(){var t=this.set_currently_scrolling;this.set_currently_scrolling=function(){};var n,r,isSpam=!1,i="",s=[];while(this.queue.length>0){n=this.queue.shift();if(n.linkid){isSpam=is_message_spam(n.info.message);var chatClass=isSpam?"cSpam":"cSafe";n.line=n.line.replace('class="','class="'+chatClass+' ');s.push({info:n.info,linkid:n.linkid});if(isSpam){n.el==="#chat_line_list"&&(this.spam_count++)}else{n.el==="#chat_line_list"&&(this.safe_count++)}}else if(n.el==="#chat_line_list"){this.jtv_count++}r&&r!==n.el&&($(r).append(i),i="");r=n.el;i+=n.line}r&&$(r).append(i);for(var o=0;o<s.length;o++)n=s[o],this.setup_viewer_handlers(n.info,n.linkid);this.line_count=this.jtv_count;if(showSpam){this.line_count+=this.spam_count}else if(this.spam_count>1000){var selected=$("#chat_line_list li.cSpam").slice(0,this.spam_count-this.line_buffer);this.spam_count-=selected.length;selected.remove()}if(showSafe){this.line_count+=this.safe_count}if(this.line_count>this.line_buffer){var selector="#chat_line_list li";if(showSpam){selector+=".cSpam, #chat_line_list li"}if(showSafe){selector+=".cSafe, #chat_line_list li"}selector+=".fromjtv";$(selector).slice(0,(this.line_count-this.line_buffer)).each(function(){if($(this).hasClass("cSpam")){CurrentChat.spam_count--}else if($(this).hasClass("cSafe")){CurrentChat.safe_count--}else{CurrentChat.jtv_count--}}).remove();this.history_ended&&this.scroll_chat()}var u=this;setTimeout(function(){u.history_ended&&u.scroll_chat(),u.set_currently_scrolling=t,u.appending=!1},1)}};$(function(){initialize_ui();var chatLoadedCheck=myWindow.setInterval(function(){if($("#chat_loading_spinner").css('display')=='none'){myWindow.clearInterval(chatLoadedCheck);initialize_filter()}},100)})}()); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment