NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name Radio Helsinki shoutbox // @version 0.3 // @description Lisää shoutbox Radio Helsingin kuuntelusivulle // @author Roni Lindholm, roni.lindholm@gmail.com // @downloadURL https://openuserjs.org/src/scripts/vaahtokarkki/Radio_Helsinki_shoutbox.user.js // @match https://www.radiohelsinki.fi/kuuntele* // @grant none // @require http://code.jquery.com/jquery-latest.js // @require http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js // @require https://github.com/gregjacobs/Autolinker.js/raw/master/dist/Autolinker.min.js // @resource BootStrap http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css // @resource FaIcons http://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css // @grant GM_addStyle // @grant GM_getResourceText // ==/UserScript== //RADIO HELSINKI// var cssTxt = GM_getResourceText("BootStrap"); GM_addStyle(cssTxt); var cssTxt = GM_getResourceText("FaIcons"); GM_addStyle(cssTxt); //Shoutbox iframe var shoutbox = '<div id="shoutbox-wrap" style="opacity:0"><iframe src="https://www.radiohelsinki.fi/shoutbox/" id="shoutbox" style="width:100%;height:400px;border:0;margin-top:20px;margin-bottom:20px;"></iframe></div>'; $(".footer").prepend(shoutbox); //Shoutbox controls var controls = '<div id="controls" style="width:100%;height:50px;padding:10px">' + '<button class="btn btn-primary" style="float:left;border-radius:0;" id="toggle"><span>Sulje shoutbox</span><i class="fa fa-chevron fa-chevron-up" id="toggle-icon" style="font-size:18px;color:white;margin-left:5px;""></i></button>' + '<button class="btn btn-primary" style="float:left;border-radius:0;margin-left:10px;" id="refresh">Päivitä <i class="fa fa-refresh" style="font-size:18px;color:white;margin-left:5px;"></i></button>' + '</div>'; $(".footer").prepend(controls); $(".footer").width("101%"); var i = false; $("#shoutbox").load(function() { $("#shoutbox-wrap").css("opacity", 1); var iframe = $(this); //Rules hover & background fix iframe.contents().find('body').css("background-image", "none"); iframe.contents().find('.shoutbox-rules-text').css("opacity", 0.2); iframe.contents().find('#shoutbox-messages').css("border", 0); iframe.contents().find(".shoutbox-rules-text").hover(function() { $(this).fadeTo(200, 1); }, function() { $(this).fadeTo(200, 0.2); }); iframe.contents().find("#shoutbox-message") .focus(function() { iframe.contents().find(".shoutbox-rules-text").fadeTo(200, 1); }) .focusout(function() { iframe.contents().find(".shoutbox-rules-text").fadeTo(200, 0.2); }); //Convert links to html setTimeout(function() { iframe.contents().find(".shoutbox-message.media").each(function() { var linked = Autolinker.link($(this).html()); $(this).html(linked); }); }, 1000); //Setup listeners only once after shoutbox load if (!i) { i = true; //Show/hide listener $('#toggle').click(function() { $('#shoutbox-wrap').slideToggle('slow', function() { var button = $('#toggle span'); if ($(this).is(":visible")) { button.text('Sulje shoutbox'); $("#toggle-icon").removeClass("fa-chevron-down").addClass("fa-chevron-up"); } else { button.text('Näytä shoutbox'); $("#toggle-icon").removeClass("fa-chevron-up").addClass("fa-chevron-down"); } }); }); //Refresh shoutbox $("#refresh").click(function() { $("#shoutbox-wrap").css("opacity", 0); iframe.attr("src", iframe.attr("src")); }); //Listen for new messages and conver links setTimeout(function() { iframe.contents().find('#shoutbox-messages').bind("DOMSubtreeModified", function() { var newMessage = Autolinker.link(iframe.contents().find(".shoutbox-message").last().html()); iframe.contents().find(".shoutbox-message").last().html(newMessage); }); }, 1200); } });