Este documento detalla la arquitectura, el funcionamiento interno y la guía de instalación del plugin RanobeDB Light Novels para Calibre, diseñado para obtener metadatos y portadas de Novelas Ligeras desde RanobeDB.
El plugin implementa la interfaz Source de Calibre para interactuar con la API REST v0 de RanobeDB. Su objetivo principal es automatizar el etiquetado, la organización de series y la descarga de portadas en alta resolución de Novelas Ligeras.
identify: Búsqueda e identificación de libros mediante título, autor, ISBN o identificador de RanobeDB.cover: Descarga de portadas asociadas a los volúmenes.
- Título (
title) - Autores (
authors) - Etiquetas / Géneros (
tags) - Fecha de publicación (
pubdate) - Comentarios / Descripción (
comments) - Editorial (
publisher) - Identificadores (
identifier:ranobedb,identifier:isbn) - Serie e Índice de Serie (
series,series_index) - Idioma (
languages)
El código está estructurado en módulos funcionales que manejan desde la interacción HTTP con rate-limiting hasta la extracción y normalización de datos.
Para cumplir con los límites de la API de RanobeDB (máximo 60 peticiones por minuto), el plugin utiliza un bloqueo de hilos (threading.Lock) y una demora mínima obligatoria de 1 segundo entre solicitudes:
RATE_LIMIT_DELAY = 1.0
_last_request_time = 0
_rate_lock = Lock()Esto garantiza que las búsquedas masivas no provoquen bloqueos de dirección IP.
Permite configurar el orden de preferencia de idioma (por defecto en,romaji,ja). El plugin parsea este orden y selecciona dinámicamente el título, nombre de autor o serie más relevante según la disponibilidad en la API.
-
Fase 1 - Opciones de Configuración Avanzadas: Permite definir el nivel de enriquecimiento de series (
no,basic,full) y la activación de búsquedas fallback por serie. -
Fase 2 - Enriquecimiento de Metadatos de Serie (
_apply_series_enrichment): Valida el índice del volumen (series_index) contra la API completa de la serie (/series/{id}). En modofull, además fusiona las etiquetas de la serie con las del libro y anexa la descripción general de la serie al comentario del volumen. -
Fase 3 - Búsqueda Fallback por Serie (
_search_books&_search_series): Si la búsqueda exacta por título falla o incluye números de volumen (ej. "Sword Art Online 05"):- Extrae el número de volumen objetivo.
- Busca la serie general.
- Filtra automáticamente el volumen exacto dentro del listado oficial de la serie sin perder precisión.
- Abre Calibre.
- Ve a Preferencias (
Ctrl + P) -> Avanzado -> Plugins. - Haz clic en Cargar plugin desde un archivo (botón abajo a la derecha).
- Selecciona el archivo
__init__.pyo el archivo ejecutable del plugin. - Confirma la advertencia de seguridad haciendo clic en Sí.
- Reinicia Calibre para aplicar los cambios.
Para distribuir o instalar el plugin siguiendo el estándar oficial de Calibre:
- Renombra o guarda el código ejecutable como
__init__.py. - Compresión en ZIP desde la terminal:
zip ranobedb_plugin.zip __init__.py
- En Calibre, navega a Preferencias -> Plugins -> Cargar plugin desde un archivo.
- Selecciona
ranobedb_plugin.zipy reinicia la aplicación.
Una vez instalado, el plugin se puede configurar desde Preferencias -> Plugins -> Fuentes de Metadatos -> RanobeDB Light Novels:
| Opción | Valores / Formato | Descripción |
|---|---|---|
| Language preference order | Texto (ej. en,romaji,ja) |
Orden de prioridad para títulos y nombres. |
| Description language | en, ja, both |
Idioma de las descripciones descargadas. |
| Maximum results | Número (1-25) | Límite de resultados retornados por búsqueda. |
| Series Enhancement | no, basic, full |
basic: valida índices. full: incluye descripciones y tags de la serie completa. |
| Fallback Series Search | yes, no |
Habilita la búsqueda inteligente por serie si falla el título exacto. |