Pequeño script de ubiquity

2 minuto de lectura

Ubiquity Icono

Como todos sabrán, Ubiquity es un complemento para Mozilla Firefox que trata de acercar a la web el lenguaje natural, como por ejemplo, puedes decirle, google wikipedia y ubiquity realizara la búsqueda en Google con la palabra Wikipedia. Además tiene un pequeño recuadro de preview donde mostrara los posibles resultados de búsqueda (ver imagen):

Mas información acerca de Ubiquity en Firefox Chile.

Búsqueda con Ubiquity

Hoy visitando algunos sitios me encontré con que muchos de ellos publican las URL’s sin que sean un link, es decir, un texto simple al cual no se le puede hacer clic y visitar dicho link.

De ahí partió la necesidad de tener algo a la mano que me permita abrir estos pseudolinks, miré rápidamente ubiquity para ver si tenía un comando para este problema y me fue mal. Entonces me decidí a hacerlo yo mismo :D, les dejo el código para que lo enchulen mejoren a su medida o hagan sus contribuciones.

/*
* Open URL selected in browser.
*/
CmdUtils.CreateCommand({
	names: ["openurl"],
	icon: "http://www.mozilla.com/favicon.ico",
	description: "Abre una pestaña con la url seleccionada",
	help: "open + selected url",
	author: {
  		name: "Francisco Collao Garate",
		email: "pcollaog[at]firefox[dot]cl"
	},
	license: "GPL",
	homepage: "http://blog.pcollaog.cl/",
	arguments: [{role: 'object', nountype: noun_arb_text}],

	preview: function preview(pblock, args) {
	var selectedText = args.object.text;

	if (Utils.isEmpty(selectedText)){
		pblock.innerHTML = "Debes seleccionar una URL.";
	}else{
		pblock.innerHTML = "Abrirás la siguiente URL en una nueva"
		+ " pestaña:
 <strong>" + selectedText + "</strong>";
	}

	},
	execute: function execute(args) {
		var selectedText = args.object.text;

		// TODO: validar que la URL sea valida
		if (Utils.isEmpty(selectedText)) {
			return;
		}

		Utils.openUrlInBrowser(selectedText);
		displayMessage("Se abrirá la siguiente URL: "
		+ selectedText, this);
	}
});

El código se divide en dos grandes partes, la función preview y la función execute, que como sus nombres lo dicen, una muestra una previsualización de la acción y la otra ejecuta la acción.

Analicemos primero la función preview:

Lo primero que hace es obtener desde el argumento la URL seleccionada asignándosela a la variable selectedText y luego valida que ésta variable no este vacía. En ambos casos (vacía o no) se le envia un mensaje al usuario en el cuadro de preview (en el cuadro de dialogo abajo).

Vamos ahora por la función execute:

Hace lo mismo que la función preview al principio, es decir, asigna el valor del argumento a una variable y valida que no este vacía. Luego viene la parte interesante, toma la URL seleccionada y haciendo uso de la función Utils.openUrlInBrowser() nos permite abrirla en una nueva pestaña. Luego de eso mandamos una notificación al usuario sobre la acción ejecutada, para eso utilizamos la función displayMessage().

Eso seria por ahora, ahora a seguir jugando con Ubiquity. Espero sus comentarios y/o aportes.

Comentar