:Preguntas frecuentes y tutoriales: Tutorial sobre creación de servicios ==================================== 1 - Introducción ---------------- En este documento se van a explicar las lineas generales para implementar un nuevo servicio para Tucan (archivos mínimos, ubicación de esos archivos, formato, parámetros de entrada/salida... etc). 2 - Breve Resumen ----------------- :servicio/: Directorio que contiene todos los archivos del servicio, no puede contener ningún punto "." en el nombre (*obligatorio*). :__init__.py: Necesario para que python reconozca el directorio como módulo (*obligatorio*). :service.conf: Descripción e información del servicio para que el sistema de plugins sepa que soporta el plugin de este servicio (*obligatorio*). :: Imagen o icono de tamaño 48x48 pixels representativo del servicio (*opcional*). :check_links.py: Sólo necesario si el servicio tiene soporte para descargas. Puede ser un archivo o puede ser un metodo de un plugin de descarga (*opcional*). :anonymous_download.py: Sólo necesario si el servicio tiene soporte para descargas anónimas (*opcional*). :premium.accounts: Sólo necesario si el servicio tiene soporte para cuentas premium (se genera desde el GUI) (*opcional*). :premium_download.py: Sólo necesario si el servicio tiene soporte para descargas premium (*opcional*). :premium_cookie.py: Sólo necesario si el servicio tiene soporte para descargas premium (*opcional*). 3.1 - Directorio de Servicio (obligatorio) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ El directorio contendrá todos los archivos de los diferentes plugins del servicio, no debe contener ningún punto "." en el nombre. Ejemplos: http://rapidshare.com -> rapidshare/ http://megaupload.com -> megaupload/ http://gigasize.com -> gigasize/ http://foobar.com -> foobar/ 3.2 - Archivo __init__.py (obligatorio) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Este archivo es necesario para que python reconozca el directorio como módulo. Es un archivo vacio. 3.3 - Archivo service.conf (obligatorio) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Este archivo describe y da información de los distintos plugins al sistema de plugins de Tucan para que conozca las funcionalidades del servicio. Consta de varias secciones: [main] enabled = False name = rapidshare.com icon = rapidshare.png premium_cookie = PremiumCookie downloads = True uploads = False update = 0 [anonymous_download] name = AnonymousDownload author = Crak captcha = True version = 0.1 slots = 1 [premium_download] name = PremiumDownload author = Crak version = 0.2 accounts = premium.accounts **Sección [main]** *"enabled"* Opción para notificar que el servicio esta activado o desactivado. *Valores* True, False. Por defecto estará desactivado (False). *"name"* Opción para notificar el nombre del servicio. *Ejemplos:* rapidshare.com, megaupload.com, gigasize.com *"icon"* Opción para notificar el nombre del icono o imagen representativa del servicio que se va a usar en el GUI. *Opcional:* si no se va a usar se debe poner None. *"downloads"* Opción para notificar que el servicio puede realizar descargas. *Valores:* True, False. *"premium_cookie"* Opción para notificar el nombre de la clase que se va a usar para gestionar la cookie necesaria en las cuentas premium. *"uploads"* Opción para notificar que el servicio puede realizar subidas. *Valores:* True, False. *"update"* Opcion para la actualizacion automatica del servicio, será un numero a incrementar cuando se quiera actualizar el servicio. *Valores:* int. **Sección [anonymous_download]** *"name"* Opción para notificar el nombre de la clase que se va a usar para realizar este tipo de acceso. *Valor por defecto:* AnonymousDownload. *"author"* Opción para notificar el nombre (o nick o email) del creador. *"captcha"* Opción para notificar si el servicio tiene captcha en las descargas anónimas. *Valores:* True, False. *"version"* Versión del plugin. *"slots"* Número máximo de descargas anónimas simultaneas permitidas por este servicio. **Sección [premium_download]** *"name"* Opción para notificar el nombre de la clase que se va a usar para realizar este tipo de acceso. *Valor por defecto:* PremiumDownload. *"author"* Opción para notificar el nombre (o nick o email) del creador. *"version"* Versión del plugin. *"accounts"* Nombre del archivo donde se van a almacenar los datos de las cuentas premium de este servicio. 3.4 - Archivo imagen o icono (opcional) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Imagen o icono de tamaño 48x48 pixels representativo del servicio que se va a usar en el GUI. Si no se va a usar se debe notificar en el archivo service.conf, sección [main] opción "icon = None". 3.5 - Archivo check_links.py (opcional) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Este archivo sólo es necesario si el servicio tiene soporte para descargas. Puede ser un archivo si lo usan varios plugins (descargas anónimas, descargas premium) o puede ser un metodo de los distintos plugins de descarga. parámetros de entrada: url. parámetros de salida: nombre del archivo a descargar, tamaño y unidades. comprobaciones/tareas mínimas: url activa determinar nombre del archivo y tamaño total. 3.6 - Archivo anonymous_download.py (opcional) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Este archivo sólo es necesario si el servicio tiene soporte para descargas anónimas. Plugin típico. clases: **AnonymousDownload** (declarada en el archivo service.conf, sección [anonymous_download]) métodos: **__init__:** inicialización de slots.py y download_plugin.py **add:** parámetros de entrada: ruta, link y nombre del archivo **delete:** parámetros de entrada: nombre del archivo. **check_links:** parámetros de entrada: url. parámetros de salida: nombre del archivo a descargar, tamaño y unidades. 3.7 - Archivo premium.accounts (opcional) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Este archivo sólo es necesario si el servicio tiene soporte para cuentas premium. Se genera desde el GUI (preferencias) y esta cifrado. 3.8 - Archivo premium_downloads.py (opcional) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Este archivo sólo es necesario si el servicio tiene soporte para descargas Premium. Plugin típico. clases: **PremiumDownload** (declarada en el archivo service.conf, sección [premium_download]) métodos: **__init__:** inicialización de accounts.py **add:** parámetros de entrada: ruta, link y nombre del archivo **delete:** parámetros de entrada: nombre del archivo **check_links:** parámetros de entrada: url. parámetros de salida: nombre del archivo a descargar, tamaño y unidades. 3.9 - Archivo premium_cookie.py (opcional) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Este archivo sólo es necesario si el servicio tiene soporte para cuentas Premium. clases: **PremiumCookie** (declarada en el archivo service.conf, sección [main]) métodos: **get_cookie:** parámetros de entrada: user, password url. parámetros de salida: cookie (cookielib.CookieJar).