----------------------------------------------------------------------------- Paquete tcpdl 2.5 Octubre 1998 CONTENIDOS ========== Este paquete consta de los siguientes ficheros: tcpdl 2.5a - Programa capturador de documentos. tcpdlpp 1.5 - Procesador de los documentos capturados. tcpdl.doc - Este documento que lee. tcpdl_html - Subdirectorio que contiene una versión de este documento en formato HTML. urllist - Ejemplo de fichero con la lista de direcciones URL que el programa capturador debe visitar. tcpdl.config - Ejemplo de fichero de configuración de tcpdl. tcpdlpp.config - Ejemplo de fichero de configuración de tcpdlpp. INTRODUCCIÓN ============ "tcpdl" es un programa para capturar ficheros de servidores http. Debido a su capacidad para explorar y utilizar los enlaces referenciados en dichos ficheros para capturar nuevos documentos, usted puede capturar sitios completos para visitarlos posteriormente con tranquilidad fuera de línea (desconectado). "tcpdlpp" es un programa para procesar con posterioridad los ficheros que han sido capturados con "tcpdl": el programa modifica adecuadamente las referencias de cada fichero HTML para que sean invocadas sus versiones locales (las que ha capturado y se encuentran almacenadas en su equipo) en lugar de su versión remota cuando navegue a través de ellas... aquellas que aluden a documentos no capturados se mantienen con su URL completo. COPYRIGHT ========= tcpdl - Copyright © 1996 Patrik Nilsson Copyright © 1997, 1998 Ramjam Consultants Ltd tcpdlpp - Copyright © 1997, 1998 Ramjam Consultants Ltd Este paquete es de distribución gratuita, pero no puede ser incluido en ninguna colección de software comercial, salvo Aminet, sin permiso previo. REQUERIMIENTOS ============== Para usar "tcpdl" necesita una pila TCP/IP y una conexión a un servidor http (tanto "tcpdl" como "tcpdlpp" deberían funcionar en cualquier Amiga que soporte una pila TCP). "tcpdl" necesita habitualmente 1 MB de RAM aproximadamente, junto con 500-1000 octetos/bytes por cada fichero que debe ser capturado y "tcpdlpp" requiere sobre unos 100 KB, junto con 100 octetos/bytes por fichero procesado. Además se requiere espacio en disco equivalente al doble del tamaño (en el peor de los casos) de los ficheros que van a ser capturados. SOPORTE ======= Por favor, informe sobre cualquier problema y envíe sugerencias o comentarios a: La versión más reciente de este producto podrá encontrarla siempre en: http://www.ramjam.u-net.com/ Las actualizaciones más importantes pueden también encontrarse disponibles en Aminet. No es necesario registrarse para utilizar este programa, pero aquellos que lo hagan serán informados de las actualizaciones que se produzcan. Ambos programas han sido optimizados para su uso con el procesador 68000 para conseguir una versión lo más genérica posible. PROBLEMAS CONOCIDOS =================== tcpdl: - No maneja correctamente enlaces de ficheros HTML en los que se especifique una . Está planeada una corrección para una futura versión. - No permite acceder a lugares que requieran identificador de usuario/clave de acceso. Está planeada una mejora para una futura versión. - No soporta la captura automática de un URL referenciado a través del nombre del atributo de la etiqueta de un objeto: esto es debido a que el nombre del atributo no siempre se aplica a un URL. Como la etiqueta de un objeto es sólo soportado por IE3, y el nombre del atributo que alude a un URL es habitualmente aplicable sólo a IE3, no parece que sea una restricción significativa. No se ha planeado su corrección. tcpdlpp: - No maneja correctamente enlaces de ficheros HTML en los que se especifique una . Está planeada un corrección para la versión 1.6. GARANTÍAS/RESPONSABILIDADES =========================== Se ha invertido un gran esfuerzo para que estos programas sean lo más seguros/estables posibles. Sin embargo, no damos ninguna garantía de que el programa haga lo descrito en todos los casos. Estos programas se utilizarán por cuenta y riesgo del usuario: no se aceptará ninguna responsabilidad por la pérdida de datos resultante del empleo de estos programas. AGRADECER A... ============== Gracias a Patrik Nilsson por la versión original de "tcpdl". Gracias a David Stroud por crear la versión HTML de este documento. Gracias también a todos los usuarios del programa por sus comentarios y sugerencias. CAMBIOS DESDE LA VERSIÓN ANTERIOR ================================= tcpdl ----- 2.5 -> V2.5a: - Corregido un problema con las comillas principales que encerraban a aquel URL incluido en un ficheros HTML capturado, que eran omitidas. 2.4a -> 2.5: - Añadida opción NOWAIT que permite salir de "tcpdl" sin tener que pulsar antes la tecla Retorno ó <-'. Esta opción puede ser utilizada como argumento de línea de comandos o como opción de configuración (fichero de configuración). - Añadido botón de tamaño en la ventana (parte inferior derecha) de estado para poder ajustar la anchura de la ventana (la altura está prefijada por el número de tareas especificadas). - Añadida opción PUBSCREEN que permite a "tcpdl" abrir su ventana de estado en la pantalla pública especificada. Si no se especifica ninguna pantalla pública se utilizará la del Workbench por defecto como en versiones anteriores. Esta opción puede ser utilizada como argumento de línea de comandos o como opción de configuración (fichero de configuración). - Añadida opción FONT que permite definir la tipografía a utilizar en la ventana de estado de "tcpdl". Por defecto se utilizará la tipografía Xen. Esta opción puede ser utilizada como argumento de línea de comandos o como opción de configuración (fichero de configuración). - Añadida opción FONTSIZE que permite definir el tamaño de la tipografía a utilizar en la ventana de estado de "tcpdl". Por defecto, el tamaño utilizado es 9. Esta opción puede ser utilizada como argumento de línea de comandos o como opción de configuración (fichero de configuración). - Añadida la opción PRIORITY que permite definir la prioridad máxima de las tareas tcpdl (se crearán tantas como documentos a capturar a la vez). Por defecto se define una prioridad de 2. Esta opción puede ser utilizada como argumento de línea de comandos o como opción de configuración (fichero de configuración). 2.4 -> 2.4a: - Corregido un error que causaba que los ficheros que no fuesen de texto fueran capturados a pesar de existir una versión capturada previamente: esto desperdiciaba ancho de banda innecesario. Agradecer a Jon Wareham el que nos informase de este problema. 2.3c -> 2.4: - Revisado el código relacionado con la transferencia http: ahora debería ser más tolerante a extrañas respuestas del servidor y facilitar la inclusión de mejoras en el futuro. - Modificado el comportamiento del programa cuando un URL contiene caracteres inválidos (no admisibles en nombres de ficheros AmigaDOS): cualquier carácter inválido será codificado como %xx donde xx es el valor hexadecimal de dicho carácter. Esta conversión es transparente tanto para navegadores como servidores ya que es una forma de codificación estándar (el nombre codificado será utilizado en las referencias HTML, de forma idéntica a como si fuese el propio nombre de fichero). Con anterioridad, se utilizaba una codificación CRC que era añadida al nombre de fichero, lo que dificultaba determinar el nombre original del fichero (aseguraba que el nombre era único, pero introducía sus propios problemas). - Cambiado el comportamiento del programa cuando los nombres de ficheros superan la longitud permitida por el sistema de ficheros utilizado: ahora simplemente son truncados (en el caso del FFS los nombres de ficheros pueden alcanzar los 30 caracteres), conservándose el URL sin truncar en las referencias HTML. Con anterioridad, el nombre del fichero era truncado y se añadía una codificación CRC. Esta nueva aproximación podría provocar problemas (entre ficheros capturados de nombre idéntico), pero se espera que sean menores que la codificación CRC anteriormente utilizada (tenga en cuenta que esta codificación utilizada también para caracteres ilegales que forman parte del nombre de los ficheros podían causar que éstos excediesen su longitud máxima y ser truncados). - Añadido el argumento de línea de comandos NOSAVE: cuando se especifica previene que los ficheros capturados sean guardados. Esta opción ha sido pedida por usuarios que utilizan "tcpdl" para cebar con ficheros servidores 'proxy' locales (como por ejemplo httpproxy)... si "tcpdl" guardase en este caso los ficheros, habría dos copias almacenadas localmente. - Añadido el argumento de línea de comandos DEBUG: cuando se especifica, se almacena una copia de las peticiones HTTP en cada fichero de datos y los ficheros de datos de transferencias fallidas se guardan en el directorio TEMP. Su utilidad es únicamente la investigación de problemas (no es para uso general). - Añadidos nuevos mensajes de estado: *BREAK* - indica que la tarea ha recibido la señal CTRL-C. Not Found - indica que el URL no ha sido encontrado en el servidor. SRVR ERROR - indica que el servidor ha informado de un error. - Antes, algunos de los ficheros temporales escritos en T:, podían causar problemas en situaciones de escasez de memoria: ahora todos los ficheros son ahora escritos en el directorio "tcpdldir:" de manera que el usuario tiene control sobre la localización de todos los ficheros generados (incluso temporalmente) por "tcpdl". - Corregida la visualización actual del tamaño real (actual) y total (teórico) de los ficheros: previamente eran mostrados sólo de forma intermitente. - Corregido un pequeño error en la visualización de estado que causaba que las columnas no apareciesen correctamente alineadas. - Reducido ligeramente el consumo de memoria. - Corregido un error que dejaba a algunos ficheros bloqueados si se producía un error mientras se estaba recibiendo ficheros. 2.3b -> 2.3c: - Añadido el argumento de línea de comandos URL, que permite capturar un URL especificado desde la línea de comandos en lugar de utilizar el fichero UrlList. Consulte en este mismo documento la sección "ARGUMENTOS ADMITIDOS DESDE LA LÍNEA DE COMANDOS (CLI)" para más detalles... - Añadido el argumento de línea de comandos CONFIG, que permite especificar el fichero de configuración a utilizar. Si no se especifica, se utilizará por defecto como antes "tcpdldir:tcpdl.config". - Añadido el argumento de línea de comandos TASKS, que permite especificar el número de tareas de captura (documentos simultáneos a capturar): el rango válido oscila entre 1 y 15. - Añadida la opción de configuración TASKS. Si está presente, este valor sirve como número de tareas por defecto para capturar ficheros (el rango válido está comprendido entre 1 y 15). Este valor será ignorado si se utiliza el argumento de línea de comandos TASKS. - Añadida la opción de configuración USERAGENT. Si está presente, especifica el nombre del cliente utilizado para capturar los documentos, información que le será enviada al servidor http. Por defecto, el nombre es de la forma "tcpdl/", donde es la versión actual. Esta opción es útil para que "tcpdl" se haga pasar por otros programas en el caso de servidores (defectuosos) que sólo aceptan peticiones provenientes de determinados navegadores. - Reducido el número de procesos a 12, ya que 15 era demasiado para algunas máquinas. - Cambiado el manejo de argumentos de la línea de comandos para utilizar la sintaxis del AmigaDOS. 2.3a -> 2.3b: - "tcpdl" enviaba comandos que a algunos servidores no les gustaban: ahora debería poder tratar con servidores que utilicen cualquier versión de HTTP. - El argumento UPDATE (actualizar) no era correctamente propagado a todos los URL referenciados por los ficheros marcados con dicho argumento en la URLlist: era debido a un fallo fundamental de diseño, y así ha sido eliminado para ser reemplazado por el argumento UPDATE a utilizar desde la línea de comandos (que se aplica a todos los URL incluidos en la URLlist). - El argumento IMG no hacía lo que debía, así que ha sido corregido ligeramente: * TEXT implica que todos los URL referenciados a través de un atributo "href" serán invocados. * IMG implica que todos los URL referenciados a través de otro atributo que NO sea "href" serán invocados. * ALL implica que todos los URL son invocados. - Añadida la opción de configuración USER que permite utilizar la dirección de correo electrónico del usuario con los comandos http: por defecto "tcpdl" utiliza el nombre de usuario y nombre de servidor utilizado por la pila TCP/IP. Si la opción USER está especificada sin una dirección de correo, entonces el campo 'From:' (remitente) de la cabecera no será enviado en los comandos HTTP. - "tcpdl" usaba el nombre del usuario para enviárselo al servidor http: ahora no es necesario, así que no se hace. - corregido el error DISK-ERR, que se veía incorrectamente. 2.3 -> V2.3a: - es posible salir de "tcpdl" cuando se ha puesto en marcha desde el Workbench. - corregidas las alertas de Enforcer cuando la lista UrlList contenía una línea en blanco. 2.2 -> V2.3: - Añadido soporte de servidores 'proxy'. - Añadidas opciones de configuración sobre la conexión y los tiempos límites de espera de transferencias http. - Añadida opción de configuración para el número de reintentos para transferencias fallidas. - "tcpdl" ahora utiliza servicios de memoria ('memory pools') para la reserva de ésta. Esto mejora la reserva ligeramente, pero tiene un efecto dramático a la hora de liberla y además reduce el riesgo de que la memoria no sea devuelta al sistema cuando "tcpdl" es interrumpido. - El nombre 'User Agent' ha sido modificado para cumplir con la norma RFC2068. - El fichero "tcpdl.config" ahora se cierra en cuanto ha sido leído. - La variable de entorno USERNAME se utiliza ahora si USER no está definida. - Cambiado el indicador de estado ERROR para que sea más específico sobre la causa de éste. 2.1 -> 2.2: - Añadido fichero de configuración "tcpdl.config" para permitir especificar tipos de ficheros que NO deben ser capturados. 2.0 -> 2.1: - Corregido problema cuando un URL del fichero UrlList no iba seguido de al menos un espacio o tabulador que debía ser ignorado. tcpdlpp ------- 1.3 -> 1.4: - Cambiado el manejo del URL que contenga barras inclinadas '/'. Cualquier URL de este tipo será convertido a su equivalente relativo, de manera que todos los enlaces locales deberían funcionar cuando se navega fuera de línea. 1.2 -> 1.3: - Optimizaciones menores. 1.1 -> 1.2: - Mejorado el manejo de ".." en un URL. - Añadida la conversión opcional de caracteres del URL, lo que significa que se traduce en un nuevo fichero de configuración llamado "tcpdldir:tcpdlpp.config". UTILIZACIÓN DE TCPDL Y TCPDLPP ============================== INTRODUCCIÓN ------------ Tanto "tcpdl" como "tcpdlpp" utilizan la unidad asignable "tcpdldir:" para referenciar cualquier directorio del área de trabajo que utilizan. El fichero UrlList, que contiene la lista de documentos (URL) a ser capturados, debe de encontrarse en dicho directorio "tcpdldir:". Los ficheros opcionales de configuración "tcpdl.config" y "tcpdlpp.config" de existir deberán estar situados también en este directorio. Cuando "tcpdl" captura los documentos indicados (URL) se crearán tres directorios dependientes de "tcpdldir:" denominados TEMP, DATA y HTTP: a su vez dependiente de éstos se creará un directorio por cada servidor y dependiente de estos se encontrarán los directorios y ficheros capturados (el directorio TEMP, como su nombre sugiere, es sólo para ficheros de trabajo temporales). El directorio HTTP contiene los ficheros actuales que son capturados, mientras que el directorio DATA contiene los ficheros que retienen información de cada fichero capturado. Ejemplo: El siguiente árbol de directorios muestra la estructura que debería resultar de programar las direcciones indicadas en los ejemplos utilizados en la sección "EL FICHERO TCPDLDIR:UrlList"... tcpdldir: | | +------- urllist | +------- TEMP | | | | | ... | +------- HTTP | | | | | +------- www.ramjam.u-net.com | | | | | | | | +------- index.html | | | | | | | | +------- amiga | | | | | | | | | | ... ... | | | +------- www.amiga.com | | | | | | | | +------- index.html | | | | | | | ... ... | +------- DATA | +------- www.ramjam.u-net.com | | ... ... De este modo, una vez que un fichero ha sido capturado, aparecerá en un directorio que identifica al servidor del que proviene. El directorio DATA es utilizado por "tcpdl" durante la captura y el proceso de actualización de documentos: los ficheros finales aparecerán en el directorio HTTP. El árbol de directorios HTTP/DATA será una copia de la estructura del árbol de directorios dependiente del directorio HTTP actual, pero estos ficheros contendrán en lugar de los datos en sí, la respuesta del servidor que incluirá información para uso de "tcpdl": esta información incluye fecha y hora de la captura (es usada cuando se utilice el argumento UPDATE para actualizar los ficheros), y en el caso de los ficheros html, también se incluye una lista de todos los enlaces (URL) referenciados. El directorio TEMP contiene ficheros temporales *sólo* durante mientras se encuentre "tcpdl" en ejecución, a menos que la opción DEBUG sea especificada, en cuyo caso todos los ficheros temporales se conservarían al finalizar la ejecución de "tcpdl". Los ficheros HTML capturados con "tcpdl" incluirán en su interior referencias a direcciones/documentos (URL) que serán reemplazados por una versión local, y así por ejemplo: http://www.ramjam.u-net.com/home.html se convertiría en file://localhost/tcpdldir:http/www.ramjam.u-net.com/home.html El post-procesador, "tcpdlpp", procesa todos los ficheros disponibles en el directorio "tcpdldir:http" convirtiendo todas las referencias de cualquier fichero presente en el URL relativo correspondiente y de los no presentes en su versión absoluta (URL completo). Esto permite navegar fuera de línea entre los ficheros residentes en "tcpdldir:http", permitiendo también el acceso a páginas remotas si el usuario se encuentra en línea. Capturando sus páginas favoritas, podrá navegar por la maraña de páginas disponibles en la red de forma mucho más rápida, siendo capaz de seguir cualquier enlace a otro lugar (ficheros remotos). Las páginas capturadas deben de ser actualizadas periódicamente utilizando "tcpdl" con el argumento UPDATE, y volviendo a ejecutar a continuación "tcpdlpp" para volver a adaptar las referencias modificadas. PARA EMPEZAR ------------ 1. Asigne "tcpdldir:" al directorio en el que quiera sean guardados los ficheros capturados (este directorio debe existir). Por ejemplo: "assign tcpdldir: work:tcpdldir" 2. Edite el fichero "tcpdldir:urllist" para definir en él los ficheros a capturar. 3. Edite el fichero "tcpdldir:tcpdl.config" si es necesario. 4. Edite el fichero "tcpdlpp.config" si es necesario. 5. Verifique que hay suficiente espacio libre en disco para las páginas (documentos) que desea capturar. 6. Conéctese a Internet. 7. Ejecute "tcpdl" desde una ventana Shell. ************************************************ N. del T. - Si el programa falla, pruebe a incrementar el valor de la pila con el comando del AmigaDOS "Stack" por ejemplo. ************************************************ 8. Si es necesario, ejecute "tcpdlpp" desde una ventana Shell (puede hacerlo fuera de línea). Si al verificar los resultados de "tcpdlpp" existen gran cantidad de referencias a un URL que no son locales, es posible que desee capturar dicho URL. Después de capturarlo, vuelva a ejecutar "tcpdlpp" para que todos los enlaces que antes apuntaban a los documentos remotos ahora lo hagan a la versión capturada (local). ARGUMENTOS ADMITIDOS DESDE LA LÍNEA DE COMANDOS (CLI) -------------------------- "tcpdl" admite los siguientes argumentos... URL= Esta opción permite especificar sólo una dirección (URL) o una dirección con sus opciones al estilo de cómo se hace en el fichero UrlList. Si las opciones se especifican, entonces tanto el URL como las opciones deben ir encerradas entre comillas dobles como, por ejemplo, tcpdl url=http://www.ramjam.u-net.com/ tcpdl url="http//www.ramjam.u-net.com/ TEXT" URLLIST= Esta opción permite especificar un fichero que contenga una lista de documentos (URL) a capturar: si esta opción no se especifica se utilizará por defecto el fichero "tcpdldir:urllist". Consulte la sección "EL FICHERO TCPDLDIR:UrlList" para más detalles sobre el formato de este fichero. CONFIG= Esta opción especifica un fichero de configuración: si no se especifica se utilizará por defecto "tcpdldir:tcpdl.config". Consulte la sección "EL FICHERO TCPDLDIR:TcpDl.config" para más detalles sobre el formato de este fichero. TASKS= Esta opción especifica el número de documentos a recibir simultáneamente (un documento=una tarea), admitiendo valores comprendidos entre 1 y 15. De utilizar esta opción se ignora el comando TASKS especificado en el fichero "tcpdl.config". UPDATE La opción UPDATE indique que cualquier fichero capturado previamente deberá ser comprobado por si ha sido actualizado con posterioridad: si es así, volverá a ser capturada la versión actualizada. NOSAVE Esta opción especifica que los ficheros capturados no deben ser guardados: esta opción es útil si "tcpdl" se utiliza para cebar servidores http locales (solicitar documentos para que se encuentren presentes en este servidor que funciona a modo de caché) o para probar los servidores http. NOWAIT La opción NOWAIT indica a "tcpdl" que no debe esperar a que se presione una tecla para terminar. Esto facilita el uso del programa desde guiones. DEBUG Esta opción especifica que los ficheros dependientes de la jerarquía DATA deben de contener una copia de la petición HTTP enviada al servidor, así como de cualquier respuesta u otra información habitual. Esta opción también desconecta el borrado de ficheros temporales residentes en el directorio TEMP correspondientes a transferencias fallidas. Esta opción puede ser útil para investigar la razón de transferencias que resultaron fallidas. PUBSCREEN= Esta opción especifica el nombre de la pantalla pública sobre la que la ventana de estado de "tcpdl" debe ser abierta. Por defecto, se utilizará la del Workbench. FONT= Esta opción especifica el nombre de la tipografía que la ventana de estado de "tcpdl" debe utilizar (tenga en cuenta que el sufijo ".font" no debe ser especificado y que debería optarse por una tipografía monoespaciada puesto que las proporcionales impiden el alineamiento correcto de las columnas de caracteres). FONTSIZE= Esta opción especifica el tamaño de la tipografía que debe utilizarse en la ventana de estado de "tcpdl" (el tamaño de la ventana se ajustará de forma adecuada). Por defecto, se utiliza el valor 9 (si utiliza pantallas de muy alta resolución debería incrementar el tamaño de la tipografía). PRIORITY= Esta opción especifica la prioridad máxima a utilizar con las tareas tcpdl. Las prioridades han de estar comprendidas entre 0 y 5 (ambos valores inclusive). Por defecto, se utilizará una prioridad de 2. Utilizar un valor 0 puede ser útil si desea que "tcpdl" opere como tarea de fondo mientras utiliza un navegador o un cliente IRC. VENTANA TCPDL DEL ESTADO DE LA TAREA ------------------------------------ La ventana de estado de "tcpdl" es actualizada aproximadamente una vez por segundo (tenga en cuenta que cada cambio en el estado no tiene porqué quedar reflejado en la ventana). "tcpdl" capturará un número de ficheros simultáneamente, de manera que en la ventana de estado aparecerá una línea por cada tarea. Los campos de cada línea son descritos a continuación: Status (Estado) Puede tomar uno de los siguientes valores: Connecting (Conectando) Intenta la conexión con el servidor. Sending (Enviando) Enviando petición. Header (Cabecera) Recibiendo cabecera. Updating (Actualizando)  Petición al servidor utilizando la opción "If-Modified-Since" (sólo si se ha modificado desde la fecha indicada) o al cargar datos de "tcpdldir:data/". OK (Correcto) Fichero capturado con éxito. Receiving (Recibiendo) Recibiendo datos. Wait. html (Esperando HTML) El programa sólo procesa ficheros HTML en bloques de datos de hasta 512 KB: el procesado continuará cuando la cantidad de datos pendientes de ser recibidos supere dicho límite. Proc. html (Procesando HTML) Procesando fichero HTML. Copying (Copiando) Copiando fichero HTML en "tcpdldir:http/". Not Found (No encontrado) El servidor informa de que el documento solicitado (URL) no ha sido encontrado. LIB ERR (Error de biblioteca) Imposible abrir la biblioteca "bsdsocket.library". HOST ERR (Error de servidor) Servidor desconocido o inaccesible. SOCK ERR (Error de vía) Imposible abrir vía de conexión ('socket'). CON ERR (Error de conexión) Imposible conectar con el servidor. HDR ERR (Error en cabecera) Se ha producido un error en la recepción de la cabecera. RECV ERR (Error en datos) Se ha producido un error recibiendo datos. FILE ERR (Error de fichero) Se ha producido un error al abrir el fichero de salida. SRVR ERR (Error en el servidor) El servidor ha informado de que se ha producido un error. DISK ERR (Error de disco) Se ha producido un error en la escritura del fichero de salida (habitualmente se tratará de que no hay espacio libre en disco). ERROR Se ha producido algún error. *BREAK* (*INTERRUMPIDO*) La tarea ha detectado que el usuario quiere interrumpir su funcionamiento o algún error ha abortado la ejecución de la tarea (por ejemplo porque el disco esté lleno). Time (Tiempo) Tiempo transcurrido desde el intento de conexión. CPS (Caracteres por segundo) La velocidad con que los datos capturados del fichero indicado son transferidos a nuestro equipo. CSize (Tamaño real) Tamaño actual de los datos recibidos. FSize (Tamaño teórico) Tamaño final de los datos (siempre que el servidor suministre la información). Request (Petición) El URL (documento) pedido. En la línea superior de la ventana de estado también existen algunos indicadores de cómo progresa la tarea: (DONE: TOTAL:) - (HECHO: TOTAL:) indica el número de ficheros ya capturados y el número de fichero listados en memoria. La línea inferior de la ventana de estado también aporta alguna información adicional: Total time (Tiempo total) Tiempo transcurrido desde que comenzó la ejecución de "tcpdl". Total bytes (Bytes totales) Nº total de bytes recibidos. Average cps (CPS medio) Velocidad media, medida en caracteres por segundo, de la transferencia. NOTAS ----- La ejecución del programa puede ser finalizada presionando simultáneamente las teclas CTRL y C: el programa terminará de forma segura tan rápido como sea posible (puede llevarle algo de tiempo si está procesando ficheros HTML de gran tamaño)... eso significa que cuando todas las tareas hayan recibido la señal Ctrl-C, el estado cambiará a "*BREAK*". Si un servidor determinado no responde en más de cinco ocasiones, ya no se intentará capturar más ficheros de dicho servidor: esto impide desperdiciar tiempo en conexiones con servidores fuera de servicio. EL FICHERO TCPDLDIR:UrlList --------------------------- El fichero "UrlList" deberá contener uno o más direcciones (URL) de las que capturar documentos/ficheros. Cada URL deberá comenzar en una nueva línea e ir seguido opcionalmente de los argumentos apropiados, separados por espacios. Los argumentos soportados son: D1, D2, ..., D19 Indica el número de niveles de documentos text/html a capturar: POR DEFECTO su valor es 255 (¡!). H0, H1, ..., H5 Si otro servidor es referenciado a través de HREF, este argumento define el nº máximo de niveles admitido de referencias a capturar: POR DEFECTO se utiliza H0, o lo que es lo mismo, sólo se capturarán documentos del servidor definido en UrlList ignorando cualquier referencia a otro servidor. P0, P1, ..., P5 Si el camino de acceso a los documentos es diferente al especificado en UrlList, este argumento define el número máximo de niveles: POR DEFECTO se utiliza Pn, en donde 'n' coincide con el valor definido para el argumento Dn. TEXT Captura ficheros referenciados por un atributo HREF: habitualmente serán ficheros HTML (aunque no exclusivamente). IMG Captura ficheros que NO sean referenciados por un atributo HREF: habitualmente serán imágenes (aunque no exclusivamente). ALL Captura todo tipo de ficheros: es la opción por defecto si no se añade los argumentos IMG, TXT o ALL (tenga en cuenta que no se capturarán los tipos de ficheros excluidos a través de las líneas IGNORE definidas en el fichero "tcpdl.config"). por ejemplo http://www.amiga.com/index.html D2 H3 TEXT se capturarán dos niveles de ficheros HTML referenciados por el fichero especificado en el servidor indicado (www.amiga.com) y tres niveles de enlaces de cualquier otro servidor. http://www.ramjam.u-net.com/home.html D5 H0 ALL se capturarán cinco niveles de ficheros referenciados por el fichero especificado en el servidor indicado (www.ramjam.u-net.com), pero si en alguno de los documentos capturados se referencian documentos de otro servidor será ignorado. http://www.ramjam.u-net.com/ TEXT se capturarán todos los ficheros de texto referenciados a través del documento index.html del servidor www.ramjam.u-net.com. EL FICHERO TCPDLDIR:TcpDl.config -------------------------------- El fichero "tcpdl.config" es opcional: si está presente, será leído para seguir las instrucciones en él incluidas (como por ejemplo qué tipos de ficheros capturar). Las líneas que en dicho fichero comiencen (o sea, ésta aparezca en la primera columna) por una almohadilla '#' serán consideradas comentarios e ignoradas. Los espacios en blanco serán también ignorados y en los comandos no se diferenciará entre mayúsculas y minúsculas. Actualmente se soportan los siguientes comandos: IGNORE ... en donde es el sufijo del nombre del tipo de ficheros que NO deben capturarse. Tenga en cuenta que los ficheros indicados de forma explícita en el fichero UrlList serán capturados independientemente de lo indicado con este comando (los referenciados a través de un documento HTML sin embargo si cumplirán las excepciones indicadas por este comando). Tenga también en cuenta que puede contener cualquier carácter excepto el espacio en blanco y que la cadena definida en este campo será utilizada sólo para verificar el final de los nombre de los ficheros candidatos a ser capturados. PROXY Especifica que todas las peticiones http deberán ser enviadas a través del servidor especificado. Si el número de puerto es omitido, entonces se utilizará por defecto el nº 8080. Especificando el servidor "proxy" de su proveedor puede mejorar la velocidad de recepción de forma significativa, especialmente con servidores http con gran demanda. Un servidor "proxy" también será necesario para conexiones a través de cortafuegos ("firewall"). CONTIMEOUT Especifica el tiempo límite de espera inicial para cada conexión en segundos: el valor por defecto es 20 (rango admisible entre 10 y 600). HTTPTIMEOUT Especifica el tiempo límite de espera para cada petición http en segundos: por defecto su valor es 60 (rango admisible entre 10 y 600). RETRIES Especifica el número de intentos a realizar para captura cada fichero: el valor por defecto es 5 (rango admisible entre 1 y 100). USER La dirección de correo del usuario es enviada al servidor HTTP como la dirección a la que enviar si hay problemas con las peticiones de "tcpdl". Si la opción USER es especificada sin una dirección de correo, entonces las peticiones HTTP no incluirán ninguna dirección, lo que puede servirle para mantener su identidad en el anonimato. Si la opción USER no está presente en el fichero de configuración, se utilizarán su identificador de usuario actual y el nombre de su servidor. TASKS Permite definir el número de documentos (URL) que se intentan capturar simultáneamente. Si esta opción no está especificada, se utilizará como valor por defecto 12 (el rango de valores está comprendido entre 1 y 15): el valor aquí indicado puede ser anulado si se utiliza desde la línea de comandos el argumento TASKS. USERAGENT La cadena especifica el nombre del programa utilizado por el usuario para solicitar los documentos programados a un servidor HTTP (entre el inicio de dicha cadena y el comando USERAGENT pueden existir un número indeterminado de espacios en blanco que no se considerarán como parte integrante de dicha cadena). Esta opción permite a "tcpdl" engañar a algunos servidores que (por estar mal configurados) sólo aceptan peticiones de ciertos navegadores. NOWAIT Permite que "tcpdl" no espere a que el usuario presione la tecla Retorno ó <-' para terminar. Esta opción es útil cuando se ejecuta el programa desde un guión. PUBSCREEN Esta opción especifica el nombre de la pantalla pública sobre la que la ventana de estado de "tcpdl" debe ser abierta. Esta opción puede ser ignorada si se utiliza el argumento PUBSCREEN desde la línea de comandos. FONT Esta opción especifica el nombre de la tipografía que la ventana de estado de "tcpdl" debe utilizar (tenga en cuenta que el sufijo ".font" no debe ser especificado y que debería optarse por una tipografía monoespaciada puesto que las proporcionales impiden el alineamiento correcto de las columnas de caracteres). Esta opción puede ser ignorada si se utiliza el argumento FONT desde la línea de comandos. FONTSIZE Esta opción especifica el tamaño de la tipografía que debe utilizarse en la ventana de estado de "tcpdl" (el tamaño de la ventana se ajustará de forma adecuada). Por defecto, se utiliza el valor 9. Esta opción puede ser ignorada si se utiliza el argumento FONTSIZE desde la línea de comandos. PRIORITY Esta opción especifica la prioridad máxima a utilizar con las tareas tcpdl. Las prioridades han de estar comprendidas entre 0 y 5 (ambos valores inclusive). Por defecto, se utilizará una prioridad de 2. Esta opción puede ser ignorada si se utiliza el argumento PRIORITY desde la línea de comandos. Utilizar un valor 0 puede ser útil si desea que "tcpdl" opere como tarea de fondo mientras utiliza un navegador o un cliente IRC. Aquí tiene un ejemplo de fichero "tcpdl.config"... # # Define como servidor "proxy" el de Demon Internet # PROXY www-cache.demon.co.uk:8080 # # Especifica el tiempo límite (de espera) # Utilice valores pequeños si utiliza un servidor "proxy" # CONTIMEOUT 10 HTTPTIMEOUT 30 # # Especifica el número de intentos por cada fichero # RETRIES 2 # # Especifica que la dirección de correo NO debe ser enviada al servidor # USER # # Especifica el número de documentos a capturar simultáneamente # (esta opción es ignorada si se utiliza desde el CLI el argumento TASKS) TASKS 12 # # Especifica la prioridad máxima para las tareas tcpdl # PRIORITY 2 # # Especifica la tipografía, y el tamaño # de ésta, a utilizar en la ventana de estado # FONT Xen FONTSIZE 9 # # Especifica los sufijos de los ficheros que NO deben ser capturados # # Ignorar paquetes LHA IGNORE .lha # Ignorar paquetes ZIP IGNORE .zip # Ignorar ficheros de sonido WAV IGNORE .wav # Ignorar ejecutables MS-DOS IGNORE .exe EL FICHERO TCPDLDIR:tcpdlpp.config ---------------------------------- El fichero "tcpdlpp.config" es opcional: si está presente, se utilizarán las conversiones de caracteres en él definidas a cada URL procesado. Tenga en cuenta que los nombres de fichero actuales no son modificados... sólo los URL referenciados en el interior de cada fichero HTML. Cada línea de este fichero o regla consiste en un carácter literal (es el que será convertido) y un nuevo carácter literal o cadena por el que debe ser reemplazado el primero. Los caracteres deben ir encerrados por comillas simples (') y las cadenas por comillas dobles ("). Los huecos en blanco (espacios y tabuladores) son ignorados a menos que se encuentren dentro de una cadena. Cualquier línea en la que el primer carácter que no sea un hueco en blanco sea la almohadilla '#', será tratado como un comentario y por lo tanto será ignorada. Los siguientes caracteres de escape se permiten como caracteres literales o como parte de cadenas: \a = señal sonora ('bell') \b = retroceso ('backspace') \f = salto de página ('formfeed') \n = nueva línea ('newline') \r = retorno de carro ('carriage return') \t = tabulador horizontal ('horizontal tab') \v = tabulador vertical ('vertical tab') \\ = barra invertida ('backslash') \' = comilla simple ('single quote') \" = comillas ('double quote') \nnn = carácter definido a través de un valor octal nnn \xnnn = carácter definido a través con un valor hexadecimal nnn y así por ejemplo la siguiente línea (regla) convertirá las barras invertidas al estilo del MS-DOS utilizadas en caminos de acceso en barras inclinadas al estilo del AmigaDOS y Unix: '\\' '/' y la siguiente regla convertirá la tilde (la virgulilla que utilizamos en la 'ñ') en la versión equivalente más segura "%xx": '~' "%7E" Cada carácter es convertido utilizando una única regla (incluso si el resultado final incluye un carácter que debería haber sido traducido a través de otra regla): esto permite intercambiar dos caracteres entre sí. LISTADO TCPDLPP --------------- El programa "tcpdlpp" procesa a posteriori los ficheros capturados por "tcpdl" (ambos utilizan la misma unidad asignable "tcpdldir:"). Durante su ejecución un listado es mostrado a través del "stdout" (dispositivo estándar de salida... o sea, en principio una ventana) constando dicho listado de tres secciones: - Una lista de cada fichero que ha sido o no procesado: como sólo los ficheros HTML contienen direcciones URL actualizables, todos los demás ficheros no son procesados ("skipped"). Esta lista viene a servir como indicador de cómo evoluciona la tarea. - Una lista de todos los ficheros locales (ficheros que ha capturado) y el nº de referencias (documentos invocados) que incluyen. Cuando un fichero no ha sido referenciado (invocado por ningún otro de los capturados) podría ser por que se trata del fichero base de la página (index.htm por ejemplo): así que si está construyendo una copia de sus páginas HTML favoritas para navegar por ellas fuera de línea, con esta información puede suprimir aquellos ficheros no utilizados, con lo que ahorrará espacio de almacenamiento en su disco. - Una lista que incluye de todo aquel URL que no sea local. Al igual que con los ficheros locales, el número asociado, señala el nº de referencias hechas (veces invocado desde otro documento): en el caso de un URL con gran número de referencias, debería considerar su captura con "tcpdl". Cada vez que añada o elimine ficheros del directorio "tcpdldir:http", basta con que vuelva a ejecutar "tcpdlpp" para reajustar los enlaces que correspondan. Todo fichero presente, pero cuyo URL haya sido modificado de alguna forma por las conversiones definidas en el fichero "tcpdlpp.config", será mostrado como no local a menos que el nombre del fichero haya sido modificado también. Si tales ficheros son listados, entonces los nombres de ficheros deberían ser modificados, volviendo a ejecutar "tcpdlpp" para identificar esos ficheros como locales. ADVERTENCIA ----------- Tenga en cuenta, que salvo que se indique expresamente lo contrario, todos los ficheros disponibles en la WWW ("World Wide Web", también conocida como la "Gran Malla Mundial", como algún español la ha denominado), tienen autor y/o propietario ("copyright") que suele corresponder al dueño de la página visitada: si su intención es redistribuir *cualquier* fichero (por insignificante que sea) de los disponibles a través de la WWW, ha de solicitar previamente el permiso correspondiente de quien ostenta los derechos de "copyright". ----------------------------------------------------------------------------- Traducción al español 2.5a.1 (21.3.99) Este documento es propiedad exclusiva del traductor, o sea yo :). Sólo se permite el copiado y su distribución gratuita siempre que se respete(n) la(s) forma(s) de distribución original elegidas por el traductor o directamente por el autor del paquete original. La utilización de esta traducción como fuente de consulta/referencia es siempre bajo la responsabilidad del propio usuario asumiendo éste todos los riesgos (ni siquiera garantizo una correcta traducción, así que por favor, consulte la documentación original). Dámaso D. Estévez - Email: amidde@arrakis.es Traducciones y noticias en español - http://www.arrakis.es/~amidde/ -----------------------------------------------------------------------------