// ----- Meebo ------ // @url http://www.meebo.com/ // @name Meebo // @desc Notifies about new messages. // version 1.1 /** * Revision history: * version 1.1: * - Added autologin. * - Added preference parameters to configure display of: botom bar, meebo blog window, ads, meebo logo and info tooltip. * - When the text in notification popup is clicked main window appears. * - Added ability to change wallpaper. * version 1.0: * - First release. */ // anonymous function that wraps whole script to prevent naming conflicts new function() { //SSB.console.init("debug"); var meeboID = ""; // your Meebo ID. var meeboPwd = ""; // your password. var autoSubmit = false; // Enable/disable autologon feature var removeBottomBar = true; var hideBlog = true; var hideAds = true; var hideLogo = false; var fixDetails = true; SSB.setIcon("http://cd.pop3.ru/clearmeebo.ico"); document.getElementById('meeboid').value = meeboID; document.getElementById('meebopassword').value = meeboPwd; if(autoSubmit) window.setTimeout("gFrontPage.loginUser();", 1000); if(removeBottomBar) createCSS( '.TaskBar', 'visibility:hidden;'); if(hideBlog) { createCSS('#welcomeWin','visibility: hidden;'); createCSS('#welcomeWin #content div','overflow : hidden;'); } if(hideAds) createCSS('.consoleAd','visibility: hidden;'); if(hideLogo) createCSS('#meebologo','visibility: hidden;'); if(fixDetails) createCSS('#infoTooltip','width: 380px;'); function addMeeboControlPanel() { var meebotopcontainerElem = document.getElementById('meebotopcontainer'); if(meebotopcontainerElem != null){ var nodeControlPanel = document.createElement("div"); nodeControlPanel.innerHTML = '
Change Wallpaper' + '
'; meebotopcontainerElem.appendChild(nodeControlPanel); } else { self.setTimeout(addMeeboControlPanel, 1000); } } // Add control panel to meebo page. addMeeboControlPanel(); setWallpaper(); // refreshTimeMS - refresh time in milliseconds to check for new messages var refreshTimeMS = 1000; checkTitleChange(); function checkTitleChange() { try { /* do this every refreshTimeMS seconds */ self.setTimeout(checkTitleChange, refreshTimeMS); var new_message = document.title; //SSB.console.debug("new_message=" + new_message); if (new_message.search('meebo') == 0) { SSB.setIcon("http://cd.pop3.ru/clearmeebo.ico"); } else { // swap icon: title is not meebo.com so we must have a message var iconURL = "http://cd.pop3.ru/meebo_new.ico"; SSB.console.debug("The icon URL is: " + iconURL); SSB.setIcon("http://cd.pop3.ru/meebo_new.ico"); // check to see if this is an message or contact name var result = new_message.match('^\".+\"$'); if (result && result.length > 0){ var user = SSB.prefs.getValue('username'); var old_message = SSB.prefs.getValue('prev_message'); // immediately update with new value SSB.prefs.setValue('prev_message', new_message+''); //display balloon if messages are different if (old_message != new_message){ var html = getStringFromFunction(notificationHTML); html = html.replace(/__USER__/, user); html = html.replace(/__MESSAGE__/, new_message); SSB.notify(html, 300, 110, 10); SSB.prefs.setValue('username', ''); } } else SSB.prefs.setValue('username', new_message); } } catch(e) { SSB.console.error("checkTitleChange:"); } } } function createCSS(selector, declaration) { // test for IE var ua = navigator.userAgent.toLowerCase(); var isIE = (/msie/.test(ua)) && !(/opera/.test(ua)) && (/win/.test(ua)); // create the style node for all browsers var style_node = document.createElement("style"); style_node.setAttribute("type", "text/css"); style_node.setAttribute("media", "screen"); // append a rule for good browsers if (!isIE) style_node.appendChild(document.createTextNode(selector + " {" + declaration + "}")); // append the style node document.getElementsByTagName("head")[0].appendChild(style_node); // use alternative methods for IE if (isIE && document.styleSheets && document.styleSheets.length > 0) { var last_style_node = document.styleSheets[document.styleSheets.length - 1]; if (typeof(last_style_node.addRule) == "object") last_style_node.addRule(selector, declaration); } } function setWallpaper(){ var meeboWallPaper = SSB.prefs.getValue('meeboWallPaper'); if (meeboWallPaper){ createCSS('#body.loggedin','background:#000000 url(' + meeboWallPaper + ') repeat center !important;'); } } function changeWallPaper(){ var meeboWallPaper = ''; meeboWallPaper = prompt("Please type in the URL of the wallpaper"); if(meeboWallPaper != '' && meeboWallPaper != 'undefined'){ SSB.prefs.setValue('meeboWallPaper', meeboWallPaper); setWallpaper(); } return true; } /* * Gets function reference and returns string of first matched text between commented * block just like this one. */ function getStringFromFunction(fnc) { var string = fnc.toString(); return string.match(/\/\*([\s\S]*)\*\//)[1]; } function notificationHTML() {/* meebo

meebo

close

__USER__

__MESSAGE__

*/}