I see a red door and I want it painted black...

Bueno, el día de hoy (bueno.. de ayer) lo he dedicado a descansar de toda la semana, de trabajitos del servicio social, trabajitos de la familia y del entrenamiento.

Así que hoy mientras estaba viendo una película muy chida en Fox me dediqué a hacer los directorios virtuales de jaws para el filebrowser.

Pero que rayos son los directorios virtuales de Jaws? (conocidos como JawsVirtualDirs). Pues es una idea que se me ha ocurrido para los webservices que va a traer jaws (la versión anterior la dediqué al uso de plugins y XML, la voy a dedicar totalmente a webservices de CADA gadget).... bueno bueno. Imaginemos lo siguiente: Vamos a nuestro gadget filebrowser y vemos que tenemos un directorio: foo, así que pues le damos click. Dentro del directorio foo tenemos un archivo que se llama: .jaws_filebrowser. Dentro de este archivo tenemos la siguiente información:

jaws_host=http://ion.gluch.org.mx jaws_dir=pable

¿Qué quiere decir el archivo .jaws_filebrowser?. Pues simplemente cuando el gadget trate de leerlo, lo primero que debe leer es .jaws_filebrowser, que le indica que haga una conexión al blog de ion y nos muestre su directorio (localizado en data/files/) que tiene como nombre: pable. Así que lanza un cliente WebService para 'consumir' el webservice filebrowser y pedirle los archivos. El servidor le va a regresar el contenido de ese directorio (junto con los nombres de directorios que este tenga) con cierta información (tamaño, nombre, si es un directorio, icono, url al archivo/directorio, etc, etc).

De esta manera ya podemos crear (en la versión CVS) directorios virtuales, así que si me interesa un directorio de cierto amigo que usa jaws.

Igual, como es un webservice se puede usar en Mono, Perl, Java o lo que queramos. Un simple ejemplo?

Supongamos que ya tenemos nuestro ProxyClient en nuestra máquina, así que podemos hacer lo siguiente:

JawsAdminWS cliente = new JawsAdminWS ();

foreach (JawsFile jfile in cliente.GetFiles ("pablo")) {
Console.WriteLine (jfile.date + " con el nombre de " + jfile.filename);
}
 

Con esto le pedimos los JawsFile's (File ya existía, así que tuve que crear otro nombre tongue.png ), del directorio pablo (que se encuentra en files).. pero que tenemos en pablo?

pablo]$ ls -a . .. .jaws_filebrowser yaka

Ohhh.. tenemos un .jaws_filebrowser.. que puede tener?..

pablo]$ cat .jaws_filebrowser jaws_host=http://localhost/jaws/ jaws_dir=pable

Bien!, nos dice que es jaws_host (donde tengo el blog) es http://localhost/jaws/ y el directorio que le pedimos es pable (ES DIFERENTE a pablo, el que le pedimos originalmente).

Y veamos.. que tiene el directorio pable (que YA es un directorio remoto, que se encuentra en http://localhost/jaws/).

$ ls -a . .. 1280_liz.jpg adios adios.png hola

Bien, nos dice que el directorio virtual pable tiene esos archivos.. uhm, entonces en total son cinco archivos, cierto?, los mios (el de yaka) y los remotos (1280, adios, adios.png y hola)..

Entonces...

$ mono Admin.exe 18/07/2004 0:11:30 con el nombre de hola 18/07/2004 0:11:31 con el nombre de adios 18/07/2004 0:29:24 con el nombre de adios.png 18/07/2004 1:47:35 con el nombre de 1280_liz.jpg 18/07/2004 0:01:28 con el nombre de yaka

Bien!!!, ya muestra todos, aunque sean virtuales!. Lo que falta es crear el webservice de filebrowser (probando estoy usando el de admin, pero solo es copy & paste a webservices/filebrowser.php, cosa de cinco minutos).

Inspirado en: Painted Black, de Rolling Stones (bueno en la versión de Mephisto)

I see the gods walk by dressed in their summer clothes I have to turn my head until the darkness goes