Manual de usuario de calibre, Publicación 2.73.0
Un complemento de interfaz de usuario
Este complemento ocupará unos pocos archivos (para mantener el código más limpio). Le mostrará cómo obtener
recursos (imágenes o archivos de datos) desde el archivo zip del complemento, cómo permitir a los usuarios configurar
el complemento, cómo crear elementos en la interfaz de usuario de calibre y cómo acceder y consultar la base de datos
de libros de calibre.
Puede descargar este complemento desde interface_demo_plugin.zip81 Lo primero que hay que tener en cuenta es
que este archivo zip tiene muchos más archivos en su interior, explicados a continuación, preste especial atención a
plugin-import-name-interface_demo.txt.
plugin-import-name-interface_demo.txt Un archivo de texto vacío utilizado para activar la gestión de
múltiples archivos en el complemento. Este archivo debe estar presente en todos los complementos
que utilicen más de un archivo .py. Debe quedar vacío y su nombre debe ser de la forma: pluginimport-name-some_name.txt. La presencia de este archivo le permite importar código de los archivos .py presentes dentro del archivo zip, usando una sentencia como ésta:
from calibre_plugins.some_name.some_module import some_object
El prefijo calibre_plugins siempre debe estar presente. some_name proviene del nombre
del archivo de texto vacío. some_module se refiere al archivo some_module.py dentro del
archivo zip. Tenga en cuenta que esta importación es tan potente como las importaciones normales
en python. Puede crear paquetes y subpaquetes de módulos .py dentro del archivo zip, igual que lo
haría normalmente (definiendo __init__.py en cada subdirectorio), y todo debería funcionar.
El nombre que utilice para some_name entra en un espacio global de nombres compartido por
todos los complementos, así que hágalo tan único como sea posible. Pero recuerde que debe ser
un identificador python válido (sólo letras, números y guión bajo).
__init__.py Como antes, el archivo que define la clase del complemento
main.py Este archivo contiene el código real que realiza alguna operación útil
ui.py Este archivo define la interfaz del complemento
images/icon.png El icono para este complemento
about.txt Un archivo de texto con información acerca de este complemento
translations Una carpeta que contiene archivos .mo con las traducciones de la interfaz de usuario del
complemento a diferentes idiomas. Ver más adelante para más detalles.
Ahora veamos el código.
__init__.py
Primero, el __init__.py obligatorio para definir los metadatos del complemento:
# The class that all Interface Action plugin wrappers must inherit from
from calibre.customize import InterfaceActionBase
class InterfacePluginDemo(InterfaceActionBase):
'''
This class is a simple wrapper that provides information about the actual
plugin class. The actual interface plugin class is called InterfacePlugin
and is defined in the ui.py file, as specified in the actual_plugin field
below.
81
https://calibre-ebook.com/downloads/interface_demo_plugin.zip
188
Capítulo 1. Secciones