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).
| 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>: | |
| 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). | |
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/
Este archivo es necesario para que python reconozca el directorio como módulo. Es un archivo vacio.
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.
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”.
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.
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.