mirror of
				https://github.com/kovidgoyal/calibre.git
				synced 2025-10-26 08:12:25 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			196 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
			
		
		
	
	
			196 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
| .. _plugins:
 | |
| 
 | |
| API documentation for plugins
 | |
| ===============================
 | |
| 
 | |
| .. module:: calibre.customize
 | |
|     :synopsis: Defines various abstract base classes that can be subclassed to create plugins.
 | |
| 
 | |
| Defines various abstract base classes that can be subclassed to create powerful plugins. The useful
 | |
| classes are:
 | |
| 
 | |
| .. contents::
 | |
|     :depth: 1
 | |
|     :local:
 | |
| 
 | |
| .. _pluginsPlugin:
 | |
| 
 | |
| Plugin
 | |
| -----------------
 | |
| 
 | |
| .. autoclass:: Plugin
 | |
|    :members:
 | |
|    :member-order: bysource
 | |
| 
 | |
| .. _pluginsFTPlugin:
 | |
| 
 | |
| FileTypePlugin
 | |
| -----------------
 | |
| 
 | |
| .. autoclass:: FileTypePlugin
 | |
|    :show-inheritance:
 | |
|    :members:
 | |
|    :member-order: bysource
 | |
| 
 | |
| .. _pluginsMetadataPlugin:
 | |
| 
 | |
| 
 | |
| Metadata plugins
 | |
| -------------------
 | |
| 
 | |
| .. autoclass:: MetadataReaderPlugin
 | |
|    :show-inheritance:
 | |
|    :members:
 | |
|    :member-order: bysource
 | |
| 
 | |
| 
 | |
| .. autoclass:: MetadataWriterPlugin
 | |
|    :show-inheritance:
 | |
|    :members:
 | |
|    :member-order: bysource
 | |
| 
 | |
| 
 | |
| Catalog plugins
 | |
| ----------------
 | |
| 
 | |
| .. autoclass:: CatalogPlugin
 | |
|    :show-inheritance:
 | |
|    :members:
 | |
|    :member-order: bysource
 | |
| 
 | |
| .. _pluginsMetadataSource:
 | |
| 
 | |
| Metadata download plugins
 | |
| --------------------------
 | |
| 
 | |
| .. module:: calibre.ebooks.metadata.sources.base
 | |
| 
 | |
| .. autoclass:: Source
 | |
|    :show-inheritance:
 | |
|    :members:
 | |
|    :member-order: bysource
 | |
| 
 | |
| .. autoclass:: InternalMetadataCompareKeyGen
 | |
| 
 | |
| Conversion plugins
 | |
| --------------------
 | |
| 
 | |
| .. module:: calibre.customize.conversion
 | |
| 
 | |
| .. autoclass:: InputFormatPlugin
 | |
|    :show-inheritance:
 | |
|    :members:
 | |
|    :member-order: bysource
 | |
| 
 | |
| .. autoclass:: OutputFormatPlugin
 | |
|    :show-inheritance:
 | |
|    :members:
 | |
|    :member-order: bysource
 | |
| 
 | |
| Device drivers
 | |
| -----------------
 | |
| 
 | |
| .. module:: calibre.devices.interface
 | |
| 
 | |
| The base class for all device drivers is :class:`DevicePlugin`. However, if your device exposes itself as a USBMS drive to the operating system, you should use the USBMS class instead as it implements all the logic needed to support these kinds of devices.
 | |
| 
 | |
| .. autoclass:: DevicePlugin
 | |
|    :show-inheritance:
 | |
|    :members:
 | |
|    :member-order: bysource
 | |
| 
 | |
| .. autoclass:: BookList
 | |
|    :show-inheritance:
 | |
|    :members:
 | |
|    :member-order: bysource
 | |
| 
 | |
| 
 | |
| USB Mass Storage based devices
 | |
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 | |
| 
 | |
| The base class for such devices is :class:`calibre.devices.usbms.driver.USBMS`. This class in turn inherits some of its functionality from its bases, documented below. A typical basic USBMS based driver looks like this:
 | |
| 
 | |
| .. code-block:: python
 | |
| 
 | |
|     from calibre.devices.usbms.driver import USBMS
 | |
| 
 | |
|     class PDNOVEL(USBMS):
 | |
|         name = 'Pandigital Novel device interface'
 | |
|         gui_name = 'PD Novel'
 | |
|         description = _('Communicate with the Pandigital Novel')
 | |
|         author = 'Kovid Goyal'
 | |
|         supported_platforms = ['windows', 'linux', 'osx']
 | |
|         FORMATS = ['epub', 'pdf']
 | |
| 
 | |
|         VENDOR_ID   = [0x18d1]
 | |
|         PRODUCT_ID  = [0xb004]
 | |
|         BCD         = [0x224]
 | |
| 
 | |
|         THUMBNAIL_HEIGHT = 144
 | |
| 
 | |
|         EBOOK_DIR_MAIN = 'eBooks'
 | |
|         SUPPORTS_SUB_DIRS = False
 | |
| 
 | |
|         def upload_cover(self, path, filename, metadata):
 | |
|             coverdata = getattr(metadata, 'thumbnail', None)
 | |
|             if coverdata and coverdata[2]:
 | |
|                 with open('%s.jpg' % os.path.join(path, filename), 'wb') as coverfile:
 | |
|                     coverfile.write(coverdata[2])
 | |
| 
 | |
| .. autoclass:: calibre.devices.usbms.device.Device
 | |
|    :show-inheritance:
 | |
|    :members:
 | |
|    :member-order: bysource
 | |
| 
 | |
| .. autoclass:: calibre.devices.usbms.cli.CLI
 | |
|    :members:
 | |
|    :member-order: bysource
 | |
| 
 | |
| .. autoclass:: calibre.devices.usbms.driver.USBMS
 | |
|    :show-inheritance:
 | |
|    :members:
 | |
|    :member-order: bysource
 | |
| 
 | |
| User Interface Actions
 | |
| --------------------------
 | |
| 
 | |
| If you are adding your own plugin in a ZIP file, you should subclass both InterfaceActionBase and InterfaceAction. The :meth:`load_actual_plugin` method of your InterfaceActionBase subclass must return an instantiated object of your InterfaceBase subclass.
 | |
| 
 | |
| 
 | |
| .. autoclass:: calibre.gui2.actions.InterfaceAction
 | |
|    :show-inheritance:
 | |
|    :members:
 | |
|    :member-order: bysource
 | |
| 
 | |
| .. autoclass:: calibre.customize.InterfaceActionBase
 | |
|    :show-inheritance:
 | |
|    :members:
 | |
|    :member-order: bysource
 | |
| 
 | |
| 
 | |
| Preferences plugins
 | |
| --------------------------
 | |
| 
 | |
| .. autoclass:: calibre.customize.PreferencesPlugin
 | |
|    :show-inheritance:
 | |
|    :members:
 | |
|    :member-order: bysource
 | |
| 
 | |
| .. autoclass:: calibre.gui2.preferences.ConfigWidgetInterface
 | |
|    :members:
 | |
|    :member-order: bysource
 | |
| 
 | |
| .. autoclass:: calibre.gui2.preferences.ConfigWidgetBase
 | |
|    :members:
 | |
|    :member-order: bysource
 | |
| 
 | |
| Viewer plugins
 | |
| ----------------
 | |
| 
 | |
| .. autoclass:: calibre.customize.ViewerPlugin
 | |
|    :show-inheritance:
 | |
|    :members:
 | |
|    :member-order: bysource
 | |
| 
 | |
| 
 |