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>:
 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.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.