// ==Ubiquity== // @name Whats My IP // @description Copies your IP to your clipboard. Also shows your IP as a preview. The IP is retrieved from http://www.ipchicken.com // ==/Ubiquity== if(typeof(McFearsome) == 'undefined') { McFearsome = {}; } jQuery.extend(McFearsome, { whatsmyip: { utils: { save_ip: function( ip ) { // CmdUtils.log("Saving your ip. " + ip); Application.prefs.setValue('ubiquity.mcfearsome.whatsmyip.ip', ip); }, get_ip: function() { return Application.prefs.getValue('ubiquity.mcfearsome.whatsmyip.ip', false); }, clear_ip: function() { try { Application.prefs.get('ubiquity.mcfearsome.whatsmyip.ip').reset(); } catch(e) { // CmdUtils.log(e); } }, save_to_clipboard: function() { var ip = McFearsome.whatsmyip.utils.get_ip(); try { if(ip) { Components.classes["@mozilla.org/widget/clipboardhelper;1"].getService(Components.interfaces.nsIClipboardHelper).copyString(ip); displayMessage("Your IP, \"" + ip + "\" has been copied to your clipboard."); } else { throw "No IP address found."; } } catch(e) { displayMessage("There was a problem trying to save the IP to your clipboard."); displayMessage(e); } finally { McFearsome.whatsmyip.utils.clear_ip(); } }, remote_get_ip: function() { var ip = null; var ip_pattern = /\b((?:\d{1,3}\.){3}\d{1,3})\b/; var html = jQuery.ajax({ type: "GET", url: "http://www.ipchicken.com", async: false }).responseText; var result = html.match(ip_pattern); if(result) { McFearsome.whatsmyip.utils.save_ip(result[0]); ip = result[0]; } return ip; } } } }); CmdUtils.CreateCommand({ name: "whats-my-ip", icon: "http://www.ipchicken.com/images/ipc.gif", description: "Copies your IP to the clipboard.", help: "Copies your IP to your clipboard. Also shows your IP as a preview. The IP is retrieved from http://www.ipchicken.com", homepage: "http://blog.mcfearsome.com/verbs/", author: { name: "Jesse McPherson", email: "jesse@mcfearsome.com"}, preview: function( previewBlock ) { previewBlock.innerHTML = "Getting your IP..."; previewBlock.innerHTML = "Your IP is: " + McFearsome.whatsmyip.utils.remote_get_ip(); }, execute: function( ubiqInput ) { McFearsome.whatsmyip.utils.save_to_clipboard(); } });