ENGLISH

PhotYG v0.7

Obtiene álbumes de fotos desde grupos en Yahoo!

Descripción - Notas
Instalación - Uso - Opciones
TOC2HTML - Historia - Copyright


Descripción

PhotYG es un simple programa en lenguaje Perl que permite copiar uno o más álbumes de fotos almacenados en los grupos de discusión de Yahoo! alrededor del mundo. Actualmente sólo se soportan los sitios de habla hispana, inglesa y alemana.

El script aún no está disponible en línea, pero puede ser solicitado para probarlo vía mail a:

(poner "PHOTYG" en el asunto).

Notas

Instalación

Puede omitir algunos pasos si está seguro que ya está OK.

Instalación del intérprete Perl

Para revisar si perl está instalado, correr en línea de comandos:

  perl -v

Si obtiene un error o si la versión es inferior a 5.8.8, vaya al Directorio Perl para obtener un instalador reciente de la distribución apropiada para sus sistema.

En caso que no tenga instalado ningún intérprete de Perl, recomiendo la distribución de ActivePerl, que está disponible para Windows, Linux, Mac y otros sistemas populares. Posteriormente instale o actualice siguiendo las instrucciones respectivas.

Finalmente, revisar con el mismo comando que perl fue instalado correctamente.

Instalación de módulos requeridos

Es necesario verificar si están instalados los módulos a la versión requerida, usando los siguientes comandos:

  perl -e "use Crypt::SSLeay 0.53 ; print q(OK)"

  perl -e "use WWW::Mechanize 1.30 ; print q(OK)"

Si cualquiera de ellos retorna error en lugar de "OK", aquél deberá ser instalado o actualizado según la distribución de Perl utilizada en su sistema.

En el caso de tener ActivePerl, en línea de comandos del sistema correr lo que corresponda:

  ppm install http://trouchelle.com/ppm/WWW-Mechanize.ppd

  ppm install http://theoryx5.uwinnipeg.ca/ppms/Crypt-SSLeay.ppd

En caso que se utilice otra distribución de Perl, es necesario ir a las respectivas páginas de Crypt-SSLeay y WWW-Mechanize para bajar los respectivos tarballs (*.tar.gz) e instalar de acuerdo a las instrucciones de cada uno (usualmente son las instrucciones generales de CPAN).

Puede verificar que las instalaciones o actualizaciones de módulos hayan finalizado con éxito utilizando los comandos del comienzo de esta sección.

Instalación de PhotYG

PhotYG no requiere ser instalado, basta extraer los scripts del tarball en un directorio que aparezca en la variable de entorno "PATH" del sistema, o bien extraerlos en la carpeta de trabajo en donde van a ser bajados los álbumes de fotos. Es posible que sea necesario editar la primera línea en los scripts "*.pl", para hacer referencia a la ruta real del intérprete perl, por ejemplo: "#!/usr/bin/perl" (sin las comillas).

Uso

En línea de comandos, correr la siguiente instrucción:

  photyg.pl [opción]... [url]...

Como resultado de una invocación, en la carpeta actual se generará un archivo "usuario.lwp", el cual contiene información necesaria para administrar la sessión del usuario en el sitio de Yahoo!

También se generará una subcarpeta para cada grupo involucrado (por ejemplo: MiGrupo), en donde se almacenarán los respectivos álbumes copiados. Los álbumes de fotos en Yahoo! Photos tienen nombres de 4 letras y/o números asignados aleatoriamente por el servicio.

Si se ha utilizado la opción "-t", se generará otro archivo llamado "MiGrupo.toc", cuya utilidad se explica más adelante.

Opciones

Las opciones pueden ser especificadas en cualquier orden. Aquellas marcadas con (o) son obligatorias.

-u usuario
(o) Nombre de la cuenta en Yahoo! Grupos.
-p clave
(o) Clave de acceso del usuario.
-h proxy
En caso de ser necesario un proxy para acceder a internet. proxy debe ser especificado en el formato URL, por ejemplo: "http://proxy:8080/".
-l
Cuando se reprocesa un grupo en busca de nuevos álbumes o nuevos grupos, esta opción evita que sea bajada nuevamente una foto. Si no se usa esta opción, todas las fotos serán actualizadas.
-t
Genera una Tabla de Contenidos para las fotos que va bajando en un archivo llamado "MiGrupo.toc". Este archivo puede ser procesado posteriormente con la herramienta TOC2HTML para generar una página índice con las descripciones de los álbumes y sus fotos en cada grupo.
-v
Si hay problemas con PhotYG, esta opción ayuda a determinar qué pasos se están realizando, entregando toda la info por pantalla (vía stderr).
-m
Si se desea bajar todos los álbumes de todos los grupos a los que se está suscrito, basta utilizar esta opción y no poner ninguna URL.
url
Se pueden especificar varias URLs a la vez, cada una de ellas en cualquiera de los siguientes formatos:

Utilitario TOC2HTML

TOC2HTML es un pequeño utilitario (también escrito en Perl) que permite generar una página HTML a partir de una TOC (Tabla de Contenidos) generada o actualizada durante un proceso de copia de fotos de un grupo usando PhotYG.

El listado muestra el nombre y descripción del grupo, de cada álbum y de cada foto que se haya obtenido, incluyendo la fecha y el usuario de Yahoo! que la publicó.

Para utilizarlo, basta correr en la misma carpeta en donde se encuentra el archivo "MiGrupo.toc" y su respectiva carpeta "MiGrupo", la siguiente instrucción en la línea de comandos:

  toc2html.pl MiGrupo

El resultado de una invocación es:

Los archivos HTML pueden ser vistos utilizando cualquier navegador estándar.

Historia

En 1994 comencé a escribir un programa que permitiera bajar un conjunto de páginas web en forma automática, para después verlas en localmente usando lynx o Mosaic. De esta forma podía bajar, por ejemplo, los manuales de instalación completos para el servidor HTTPD de NCSA (la base de Apache).

Al poco tiempo esta herramienta me permitió mantener réplicas actualizadas de servidores web completos. En esos años, el acceso a la web internacional desde redes chilenas era bastante lento y estos mirror eran bastante útiles para esos efectos.

En 1995 liberé en la red una versión beta del programa con el nombre WebCopy, y tuvo algunas mejoras los años siguientes, mientras la Internet seguía en pañales.

WebCopy también está escrito en lenguaje Perl, pero en su versión 4, sin utilizar las bibliotecas que hoy existen para la versión 5. Por lo tanto, a WebCopy lo desarrollé desde cero, implementando las conexiones TCP/IP usando el protocolo HTTP/0.9 y luego HTTP/1.0, la interpretación del HTML para identificar enlaces, la manipulación de los imágenes con zonas activas (imagemaps) y otras cosas de la época. Nunca implementé cosas como conexiones seguras (SSL ó HTTPS), el manejo de cookies ni la interpretación de javascript. Otras cosas como el acceso servidores virtuales las agregué posteriormente como parches o por sugerencias que distintas personas me hacían por correo.

Aún utilizo WebCopy para diversas cosas de mi vida laboral, retocando un poco el código para agregar funcionalidades específicas que una situación amerita.

Desde que administro algunos grupos de discusión en Yahoo!, he tenido interés en alguna herramienta que me permita copiar a mi PC las fotos que los otros integrantes hayan subido al respectivo grupo, sin tener que estar paseandome por cada álbum y haciendo un "guardar como..." a cada imagen, o bien recorriendo el caché local del navegador para identificar las imágenes y copiarlas a otra carpeta. Como no encontré ninguna herramienta gratuíta disponible en la red, obviamente pensé en modificar o extender las funcionalidades de WebCopy para esta tarea, pero llegó el momento de decir "¡¡¡BASTA!!!"

Mi búsqueda sí me permitió ver que ya habían algunos módulos disponibles para Perl que me facilitarían la tarea del desarrollo, y que era sólo cosa de ir adaptando un poco los mismos ejemplos publicados para armar un script que cumpliera mi deseo de bajar las fotos automáticamente.

La única restricción es que debía comenzar a aprender sobre la orientación a objetos que implementa la versión 5 de Perl. Pero los ejemplos eran tan simples que la construcción inicial sólo tomó par de días de ratos libres para quedar contento.

Después de algunas pruebas y sugerencias recibidas por correo, mi programita tomó forma, recibió un nombre y avanzó en número de versiones. Ahora lo dejo disponible para que otros puedan disfrutar de mi deseo :-)

La última versión de este programa fue desarrollada y probada usando ActivePerl 5.8.8.822 en WinXP.

Copyright

Copyright (c) 2007 Victor Parada. Todos los derechos reservados.
Este programa se entrega SIN GARANTÍAS. El autor no se hace responsable por el uso que se le dé a éste.
Este programa es software libre; puede ser redistribuido o modificado bajo los mismos términos que Perl (Artistic y GPL).


Actualizado en: 2007-11-30 por ++Vitoco