Cómo Construí el Open Searcher Parte 5: URLs Limpias

Bueno, resulta que ya iba algo adelantado trabajando con la API de Open Libra haciendo el Open Searcher. Antes había topado con algunos inconvenientes, bastante menores, que tal vez me demoraron un poco pero no mucho como el más grande de todos.

Resulta que una característica de la aplicación es enviar al usuario a la página del libro cuando hace clic en el nombre o en la imagen de este. Al inicio todo iba sobre ruedas hasta cuando tropecé con unas urls que contenían caracteres extraños como tildes y eñe, espacios y otras cosas. La situación se complicó ya que nunca antes había tenido que manejar un momento así.

captura de pantalla del open searcher

Después de mucho buscar, encontré la mejor solución, para ironía mía, en el blog del mismo creador de Open Libra: Etnsassoft.

Este es el código que sirve para eliminar caracteres como tildes y eñes de una url mediante JavaScript:

var normalize = (function() {
var from = "ÃÀÁÄÂÈÉËÊÌÍÏÎÒÓÖÔÙÚÜÛãàáäâèéëêìíïîòóöôùúüûÑñÇç",
to = "AAAAAEEEEIIIIOOOOUUUUaaaaaeeeeiiiioooouuuunncc",
mapping = {};
for(var i = 0, j = from.length; i < j; i++ )
mapping[ from.charAt( i ) ] = to.charAt( i );
return function( str ) {
var ret = [];
for( var i = 0, j = str.length; i < j; i++ ) {
var c = str.charAt( i );
if( mapping.hasOwnProperty( str.charAt( i ) ) )
ret.push( mapping[ c ] );
else
ret.push( c );
}
return ret.join( '' );
}
})();

Con eso bastará, además, para el caso de Open Libra, es necesario que la url contenga guiones en lugar de espacios. Eso se logra con este otro código:

return ret.join( '' ).replace( /[^-A-Za-z0-9]+/g, '-' ).toLowerCase();

Luego de eso, me tropecé con alguno que otro lío pero eran más del lado de jQuery Mobile y resultaron no ser tan complicados después de todo.

Código Spaguetti

Una situación muy delicada que tiene el código del Open Searcher es que hay algunos métodos que tocó hacerlos de una forma muy poco correcta. En algunas situaciones tuve que colocar mucho código JavaScript en línea, algo que no se recomienda pero debí hacer para poder completar el proyecto

En la próxima versión espero eliminar esos embrollos ya que estoy pensando en una arquitectura para la aplicación.

El código del Open Searcher está disponible en Github por si quieres ver a que me refiero.

Anuncios

Autor: cesc1989

Ingeniero de Sistemas que le gusta escribir y compartir sobre recursos que considera útiles, además que le gusta leer manga y ver anime.

1 comentario en “Cómo Construí el Open Searcher Parte 5: URLs Limpias”

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s