Mi nombre es Fernando Briano y soy programador.

UserAgent Spy: Plugin para WordPress

Les presento mi más reciente mini-proyecto. En este caso se trata de UserAgent-Spy, un plugin para WordPress que detecta el navegador web y sistema operativo de quienes dejan comentarios, mostrando el logo. Seguramente muchos dirán “eso ya existe“, o “yo ya lo tengo instalado en mi blog” o “PicandoCódigo mismo viene usando eso hace rato“.

El plugin que “ya existe” es BrowserSniff. Venía usándolo desde hace un tiempo en PicandoCódigo. Sin embargo, le hice unas modificaciones al código, y agregué algunos navegadores web más, aparte de los que ya tenía, y alguna otra cosa que no me acuerdo. Intenté comunicarme con el autor original para informarle de los cambios y bajo qué licencia podía re-distribuirlos. Sin embargo, nunca obtuve respuesta.

¿Porqué no escribirlo de cero? Así podía diseñarlo como quisiera, agregarle las opciones que me parecieran, mantenerlo actualizado, y re-distribuirlo bajo GPL v3. Así que lo hice, y le fui agregando más características. Para empezar, hice que su instalación fuera mucho más sencilla, bien al estilo WordPress, y agregué una página de opciones para personalizar un poco el aspecto del plugin.

UserAgent Spy on WordPress 2.6 default theme

UserAgent Spy en WordPress 2.6 tema por defecto

Comencé escribiéndolo como prueba, para aprender un poco sobre el API de WordPress, y cómo se maneja con los plugins. Y desde ahí seguí adelante. WordPress es muy adaptable y modificable, podemos hacerle de todo. Una cosa divertida que agregué, es que se puede personalizar el mensaje de “Usando tal navegador en tal sistema operativo”. Por ejemplo:

  • Navegando la web con Firefox sobre Ubuntu
  • Mirando esta página en IceWeasel corriendo sobre Debian

Seguro se les ocurren frases más originales… La idea es hacer mensajes personalizables también según el S.O. / Navegador. Por ejemplo: “Pseudo-navegando con IE que a duras penas levanta en su Windows Vista” 😀

Recién voy en la versión 0.4, creo que me falta bastante para una versión 1.0, pero de a poco le voy metiendo código en los ratos libres. El plugin filtra mediante expresiones regulares el string del UserAgent y en base a eso muestra el sistema operativo y navegador web del usuario que comentó. Las expresiones regulares están hechas medias “así nomás” y probablemente les falte algo de trabajo, como así también al código en general. Digamos que por ahora, hace lo que tiene que hacer, pero hay lugar para aprolijarlo.

Lleva un simpático logo del navegador/s.o.
Esto sirve para lucir o humillarse :P.

Subir un plugin al repositorio de plugins de WordPress está muy bueno. Si tu plugin es aceptado, te dan un repositorio SVN propio para hostearlo. Hay que seguir unos estándard para que se muestre la información, se descargue, etc. Desarrollamos el plugin en trunk, como siempre con SVN, y agregamos versiones estables a tags, las cuales hay que especificar en el readme del plugin para que sea la versión a descargar.

Una experiencia más en PHP. Por cierto, UserAgent Spy está instalado en PicandoCódigo desde hace unos cuantos días. Los invito a descargarlo, probarlo, criticarlo, reportar errores, etc. Apenas detecta 11 navegadores web y 14 sistemas operativos recién, pero va creciendo de a poco.

Página de UserAgent-Spy en WordPress.org

También te puede interesar:

Feed de comentarios | Url para Trackbacks | Suscribirse a los posts por correo electrónico

48 comentarios en este post

  1. Avatar gaba 31 julio. 2008 - 9:28 pm Debian IceWeasel 2.0.0.12 Debian GNU/Linux

    cool! probando probando si detectas mi so… 😛

  2. Avatar fernando 31 julio. 2008 - 9:49 pm Debian IceWeasel 3.0.1 Debian GNU/Linux

    ¿Prueba superada?

  3. Avatar Francisco Castro 31 julio. 2008 - 10:46 pm W3M 0.5.1 Unknown O.S.

    Bueno, acá estoy desde un navegador poco tradicional (w3m), a ver si
    el plugin este lo detecta 🙂

  4. Avatar Leandro 31 julio. 2008 - 11:07 pm Internet Explorer 6.0 Unknown O.S.

    A ver como le va con este.

  5. Avatar fernando 31 julio. 2008 - 11:07 pm Debian IceWeasel 3.0.1 Debian GNU/Linux

    Ahora sí lo detecta.
    🙂
    Gracias Francisco, si tenés más navegadores (o S.O.’s) poco tradicionales, ¡bienvenidos sean!

    Saludos

  6. Avatar Leandro 31 julio. 2008 - 11:16 pm Debian IceWeasel 3.0.1 Debian GNU/Linux

    Pero ni cerca de ser ese. Ni el SO. Era el Lobo pero se ve que manda el IE como UserAgent

  7. Avatar fernando 31 julio. 2008 - 11:17 pm Debian IceWeasel 3.0.1 Debian GNU/Linux

    Leandro:
    Fijate el UserAgent de Lobo:
    Mozilla/4.0 (compatible; MSIE 6.0; U; Windows;) Lobo/0.98.2
    ¡Las expresiones regulares detectan MSIE (Internet Explorer) y la palabra Windows!

    Lo agrego en los navegadores a detectar, pero que diga Windows ahí… ¡Mmmmh! Algo de eso no me gusta…
    ¡Reportalo como bug!

  8. Avatar Leandro 31 julio. 2008 - 11:40 pm Debian IceWeasel 3.0.1 Debian GNU/Linux

    Listo, reportado

  9. Avatar fernando 1 agosto. 2008 - 5:07 am Debian IceWeasel 3.0.1 Debian GNU/Linux

    Impecable.
    Ya quedó contemplado en el plugin, pero lo de Windows… ¿Habrán usado algo basado en IE estos tipos?

    Veremos qué dicen del reporte del bug. Si conocen más navegadores raros, dejen comentario así lo incluyo.

  10. Avatar Luciano 1 agosto. 2008 - 1:07 pm Internet Explorer 7.0 Windows Vista

    Prueba

  11. Avatar zetta 1 agosto. 2008 - 2:15 pm Links GNU/Linux

    Probando Probando!!!!
    =)

  12. Avatar zetta 1 agosto. 2008 - 2:17 pm Firefox 3.0.1 GNU/Linux

    Ese era links sobre Ubuntu Hardy

  13. Avatar zetta 1 agosto. 2008 - 2:21 pm Konqueror 3.5 Kubuntu

    Probando ahora desde acá…
    Por cierto que onda con esos gravatares raros??!!
    es algún plugin?

  14. Avatar fernando 1 agosto. 2008 - 5:18 pm Debian IceWeasel 3.0.1 Debian GNU/Linux

    Dejé de lado los navegadores basados en texto… Fea la actitud. Ya agregué w3m, voy a ver si me dedico a agregar todos los navegadores basados en texto.
    En cuanto a los gravatares “raros”, es una nueva características de WordPress (2.6), donde basado en la dirección de correo del usuario, genera un gravatar (a menos que tengas uno registrado en gravatar.com)

  15. Avatar fernando 1 agosto. 2008 - 6:09 pm IceApe 1.1.10 Debian GNU/Linux

    Me parece que tengo navegador nuevo…
    Netscape, ¡qué recuerdos!

  16. Avatar zetta 1 agosto. 2008 - 6:13 pm Konqueror 3.5 Kubuntu

    Hahahaha, está muy bueno XD me gustó el monito que sale .. aunque que raro porque si tengo gravatar! XD, no se te olvide agregar lynx (el mejor basado en texto para mi gusto)

  17. Avatar SpamLoco 1 agosto. 2008 - 10:06 pm Firefox 3.0.1 Windows XP

    Lo voy a probar en mi blog 😛

    Se lo voy a mostrar a unos amigos que usan creo que la versión que ”ya existía”.

  18. Avatar dm 1 agosto. 2008 - 11:06 pm Internet Explorer 8.0 Windows XP

    A ver que tal este…

  19. Avatar Marcelo 2 agosto. 2008 - 12:38 am Firefox 3.0.1 Windows XP

    Probando.. probando.. 🙂

  20. Avatar Beto 2 agosto. 2008 - 4:30 am Safari 525.20.1 Mac OS

    🙂 probando si funciona el pluggins 😛

  21. Avatar fernando 2 agosto. 2008 - 8:04 am IceApe 1.1.10 Debian GNU/Linux

    Viene bien, viene bien. Ya agregué unos cuantos navegadores nuevos. Estoy conociendo navegadores de los que no tenía idea (no entiendo porqué hay gente que sigue usando IE!)

    ¡Obviamente se agradece mucho a quienes vayan a usarlo o darle difusión! Así lo voy arreglando a medida que se encuentren defectos o navegadores y s.o. ‘ s que faltan.

  22. Avatar Albertux 2 agosto. 2008 - 5:34 pm Firefox 3.0.1 GNU/Linux

    Esta muy bien solo que me detecta como OLPC cuando no es asi.

    Saludos

  23. Avatar fernando 2 agosto. 2008 - 5:59 pm Debian IceWeasel 3.0.1 Debian GNU/Linux

    Albertux:
    Creo que había un error donde reconocía mal algunas distribuciones de GNU/Linux, identificándolas como OLPC.

    En un rato estoy commiteando una nueva revisión a WordPress, así que tu WP te va a avisar que hay una nueva versión de UserAgent Spy para instalar.

    Saludos y gracias!

  24. Avatar Nicolas 2 agosto. 2008 - 8:29 pm Firefox 3.0.1 Windows Vista

    Muy bueno, quizás lo instale en mi blog.

    Felicitaciones 🙂

  25. Avatar fernando 2 agosto. 2008 - 9:23 pm Debian IceWeasel 3.0.1 Debian GNU/Linux

    Dale buenísimo, probalo y cualquier crítica, error, opinión, etc comentá acá.

    Un día de estos jugamos un DoTa o Tower Wars 😛

    Saludos

  26. Avatar dIEGO | Durmiendo Afuera 3 agosto. 2008 - 1:53 am Firefox 3.0.1 GNU/Linux

    a ver a verrrr
    me salte Linux como en todos lados o Ubuntu…?

  27. Avatar dIEGO | Durmiendo Afuera 3 agosto. 2008 - 1:53 am Firefox 3.0.1 GNU/Linux

    sigue saltando GNU/Linux ¬¬

  28. Avatar fernando 3 agosto. 2008 - 2:21 am Debian IceWeasel 3.0.1 Debian GNU/Linux

    Diego:
    El tema es con el paquete para Ubuntu. En el UserAgent no especifican que es para Ubuntu, se ve que empaquetan directo lo que provee Mozilla, y ni lo revisan.
    En versiones anteriores, el UserAgent decía “Ubuntu”, se ve que algo le parcheaban. Ahora dice:
    Mozilla/5.0 (X11; U; Linux i686; es-AR; rv:1.9.0.1) Gecko/2008072820 Firefox/3.0.1
    Nada de Ubuntu…

  29. Avatar Checo 3 agosto. 2008 - 5:14 am Firefox 3.0.1 Windows XP

    Viendo como todos estaba probando, noté como la mayoria usa Linux che. Un comentario aparte nada mas. Saludos

  30. Avatar fernando 3 agosto. 2008 - 5:33 am Debian IceWeasel 3.0.1 Debian GNU/Linux

    Checho:
    ¿Eso es bueno o malo? 😛
    La idea del plugin es lograr detectar la mayor cantidad posible de sistemas operativos y navegadores web. No discriminamos a nadie 😀

    En la última actualización, agregué la detección de unos cuantos navegadores nuevos, entre ellos alguno exclusivo de Windows.

    Me acabo de dar cuenta que hay una cosa que me faltó subir al repositorio SVN…

  31. Avatar nenesio 3 agosto. 2008 - 5:35 am Firefox 3.0.1 GNU/Linux

    voy a usar este pluging en dos blogs, fuera del tema que tal esta debian ahora uso ubuntu desde hace mas d eun año y quisiera intentar con otro linux, ya lo hice con suse y fedora pero ya los RPM nose no me gustan ma sni puedes hacer upgrade automaticos.

    checo si tienes un disco duro mas o menos grande deberias hacer una particion y probar un linux y veras la cosa de otro punto de vista, microsoft te usa hasta el msn que segun es “gratis” es adware…

  32. Avatar fernando 3 agosto. 2008 - 6:02 am Debian IceWeasel 3.0.1 Debian GNU/Linux

    nenesio:
    Buenísimo gracias por instalarlo, cualquier error o detalle que le encuentres, bienvenido sea. Está en desarrollo bastante activo, cuando le encuentro algún defectito trato de arreglarlo en el menor tiempo posible.

    Debian, a mi gusto, es la mejor distribución que hay. Por lo menos de las que he probado, es la que más me ha gustado.

    Si venís usando Ubuntu hace tiempo, te vas a sentir familiarizado con Debian. En el foro hemos tenido mucha gente que se instaló Debian, y planteó sus dudas y opiniones. Usá el buscador, y fijate los distintos puntos de vista (no solo el mío). La instalación es sencilla, y el resultado final es mejor que Ubuntu. Personalmente te lo recomiendo altamente.
    Usé RPM antes, pero nada se compara con apt. Ojo, todavía me quedan distros por probar.

  33. Avatar fernando 5 agosto. 2008 - 2:26 am Opera 9.51 GNU/Linux

    Jujuju, recién subida la versión 0.4.2 con un par de errores corregidos en el código. Aparentemente nadie notó que hubieron dos errores:
    -No mostraba los saltos de línea en los comentarios.
    -Al arreglar esto, rompí otra cosa, y no se mostraba el contenido del primer comentario de cada post.

    Por suerte, ya quedó arreglado, y detecta más navegadores 😀

  34. Avatar albertux7 5 agosto. 2008 - 5:19 pm Firefox 3.0.1 GNU/Linux

    Efectivamente la version 0.4.2 funciona muy bien. Saludos

  35. Avatar antonio 22 agosto. 2008 - 8:13 pm Firefox 2.0.0.12 OpenBSD

    Probando con OpenBSD

  36. Avatar fernando 22 agosto. 2008 - 8:29 pm Debian IceWeasel 3.0.1 Debian GNU/Linux

    antonio:
    ¿Prueba superada? 😛

    Gracias por probarlo!

  37. Avatar Aarón 7 septiembre. 2008 - 9:55 pm Opera 9.52 Windows XP

    Probando en Opera…

  38. Avatar Aarón 7 septiembre. 2008 - 9:56 pm Google Chrome 0.2.149.27 Windows XP

    Probando en Google Chrome…

  39. Avatar Aarón 7 septiembre. 2008 - 9:57 pm Firefox 3.0.1 Windows XP

    Probando en Firefox…

  40. Avatar Aarón 7 septiembre. 2008 - 9:57 pm Safari 525.21 Windows XP

    Probando en Safari…

  41. Avatar Aarón 7 septiembre. 2008 - 9:57 pm Internet Explorer 8.0 Windows XP

    Probando en Explorer…

  42. Avatar Aarón 7 septiembre. 2008 - 9:59 pm Opera 9.52 Windows XP

    Toma ya! esta perfecto, me gusta mucho los variantes de los iconos, si señor mis mas sinceras felicitaciones, perdona por los repetidos post, puedes borrarlos ya que aquí queda constancia que funciona perfectamente en mi Google Chrome, Opera, Safari, Firefox y IExplorer.

  43. Avatar albertux7 21 septiembre. 2008 - 8:13 pm Firefox 3.0.1 GNU/Linux

    Fernando aqui te dejo una pequeña aportacion para tu useragent-spy:

    function detect_ies(){
    	global $useragent, $code, $link, $title, $img;
    	$link="http://www.microsoft.com/windows/products/winfamily/ie/default.mspx";
    	$title="Internet Explorer";
    	$code.="ie";
    	//TO-DO: Detect Internet Explorer different versions and make fun of the user...
    	if (preg_match('/MSIE 5.5/i',$useragent)) {
    		$version = '5.5';
    	} elseif (preg_match('/MSIE 6.0/i',$useragent)) {
    		$version ='6.0';
    	} elseif (preg_match('/MSIE 7.0/i',$useragent)) {
    		$version ='7.0';
    	} elseif (preg_match('/MSIE 8.0/i',$useragent)) {
    		$version ='8.0';
    	} else {
    		$version ='5.0 or less';
    	}
    	$title.=' '.$version;
    }

    Saludos

  44. Avatar Guillermo 15 febrero. 2009 - 10:39 am Firefox 3.0.5 Ubuntu 64 bits

    lo voy a probar a ver q pasa jaja, felicitacines y gracias por el aporte

  45. Avatar Deco 21 diciembre. 2009 - 12:35 am
    Warning: Illegal string offset 'code' in /home1/fernando/public_html/wp-content/plugins/useragent-spy/useragent-spy-os.php on line 16

    Warning: Illegal string offset 'name' in /home1/fernando/public_html/wp-content/plugins/useragent-spy/useragent-spy.php on line 114

    Warning: Illegal string offset 'code' in /home1/fernando/public_html/wp-content/plugins/useragent-spy/useragent-spy.php on line 114

    Warning: Illegal string offset 'image' in /home1/fernando/public_html/wp-content/plugins/useragent-spy/useragent-spy.php on line 113

    Warning: Illegal string offset 'image' in /home1/fernando/public_html/wp-content/plugins/useragent-spy/useragent-spy.php on line 128
    Google Chrome 4.0.253.0 <

    Pues yo en este momento estoy probando Google Chromium OS y esta muy bien para las necesidades basicas del usuario. Ademas estoy desarrollando un sitio web con foro incluido y me encontre con este articulo muy bueno. Saludos!

  46. Avatar Ausente 17 enero. 2011 - 10:15 pm Safari 528 Unknown O.S.

    Desde Haiku y WebPositive, a ver si lo detecta 😛

  1. WordPress Blog de la semana: Picando Código | Punto Geek | 2 agosto. 2008 - 2:00 pm

    […] mucho del tema y es defensor a muerte del software libre, encontrarán plugins para WordPress como UserAgent Spy, una versi{on modificada (y libre por supuesto) del Browser Sniff, un plugin que muestra el […]

  2. Pligg Leonaut.com | 9 agosto. 2008 - 11:16 pm

    UserAgent Spy…

    UserAgent-Spy is a WordPress plugin which displays the user’s Operative System and Web Browser in the comments. It uses the comment->agent property to access the UserAgent string, and through a series of regular expresions, detects the O.S. and browse…

Dejar un comentario

Toasty!