API documentatie voor plugins¶
Definieert verschillende abstracte basis verdelingen die kunnen worden onderverdeeld om sterke plugins te creëren. De handige verdelingen zijn:
Plugin¶
- class calibre.customize.Plugin(plugin_path)[broncode]¶
Een Calibre plugin. Nuttige onderdelen bevatten:
self.installation_type: Slaat op hoe de plug-in is geïnstalleerd.self.plugin_path: slaat pad op naar het ZIP-bestand dat bevatdeze plugin of None als het een ingebouwde plugin betreft
self.site_customization: slaat een aanpassingsreeks op die is ingevoerddoor de gebruiker.
Methoden die moeten worden opgeheven in subklassen:
iinitialiseren()
Nuttige methodes:
tijdelijk_bestand()__enter__()
- supported_platforms = []¶
Lijst van platformen waar deze plugin op werkt. Bijvoorbeeld:
['windows', 'osx', 'linux']
- name = 'Trivial Plugin'¶
De naam van de plug-in. Deze mag geen Trivial Plugin heten.
- version = (1, 0, 0)¶
De versie van deze plugin in 3’en (hoofd, sub, herziening)
- description = 'Doet helemaal niets'¶
Een korte tekst die beschrijft wat de plugin doet
- author = 'Onbekend'¶
De maker van deze plugin
- priority = 1¶
Wanneer er meer dan één plug-in voor een bestandstype bestaat, worden de plug-ins uitgevoerd in volgorde van afnemende prioriteit. Plug-ins met een hogere prioriteit worden eerst uitgevoerd. De hoogst mogelijke prioriteit is
sys.maxsize. De standaardprioriteit is 1.
- minimum_calibre_version = (0, 4, 118)¶
De vroegste versie van Calibre die deze plug-in vereist
- installation_type = None¶
De manier waarop deze plug-in wordt geïnstalleerd
- can_be_disabled = True¶
Als False, kan de gebruiker deze plug-in niet uitschakelen. Gebruik met zorg.
- type = 'Basis'¶
Het type van deze plug-in. Wordt gebruikt voor het categoriseren van plug-ins in de GUI.
- initialize()[broncode]¶
Wordt één keer aangeroepen wanneer Calibre-plug-ins worden geïnitialiseerd. Plug-ins worden opnieuw geïnitialiseerd telkens wanneer een nieuwe plug-in wordt toegevoegd. Houd er ook rekening mee dat als de plug-in wordt uitgevoerd in een werkproces, bijvoorbeeld voor het toevoegen van boeken, de plug-in voor elk nieuw werkproces wordt geïnitialiseerd.
Voer hier alle plug-inspecifieke initialisaties uit, zoals het extraheren van bronnen uit het ZIP-bestand van de plug-in. Het pad naar het ZIP-bestand is beschikbaar als
self.plugin_path.Let op:
self.site_customizationis op dit moment niet beschikbaar.
- config_widget()[broncode]¶
Implementeer deze methode en
save_settings()in uw plug-in om een aangepast configuratievenster te gebruiken, in plaats van te vertrouwen op de eenvoudige, op strings gebaseerde standaardaanpassing.Als deze methode wordt geïmplementeerd, moet deze een QWidget retourneren. De widget kan een optionele methode validate() hebben die geen argumenten accepteert en onmiddellijk wordt aangeroepen nadat de gebruiker op OK heeft geklikt. Wijzigingen worden alleen toegepast als de methode True retourneert.
Als u om een of andere reden de configuratie op dit moment niet kunt uitvoeren, retourneer dan een tuple van twee strings (bericht, details). Deze worden als waarschuwingsdialoogvenster aan de gebruiker getoond en het proces wordt afgebroken.
- save_settings(config_widget)[broncode]¶
Sla de door de gebruiker opgegeven instellingen op met config_widget.
- Parameters:
config_widget – De widget die wordt geretourneerd door
config_widget().
- do_user_config(parent=None)[broncode]¶
Deze methode toont een configuratiedialoogvenster voor deze plug-in. Het retourneert True als de gebruiker op OK klikt, anders False. De wijzigingen worden automatisch toegepast.
- load_resources(names)[broncode]¶
Als deze plug-in in een ZIP-bestand wordt geleverd (door de gebruiker toegevoegde plug-in), kunt u met deze methode bronnen uit het ZIP-bestand laden.
Bijvoorbeeld om een afbeelding te laden:
pixmap = QPixmap() pixmap.loadFromData(self.load_resources(['images/icon.png'])['images/icon.png']) icon = QIcon(pixmap)
- Parameters:
names – Lijst met paden naar bronnen in het ZIP-bestand met / als scheidingsteken
- Retouren:
Een woordenboek met de vorm
{naam: bestandsinhoud}. Namen die niet in het ZIP-bestand zijn gevonden, komen niet voor in het woordenboek.
- customization_help(gui=False)[broncode]¶
Geef een string terug met hulp bij het aanpassen van deze plug-in. Standaard wordt een
NotImplementedErrorgegenereerd, wat aangeeft dat de plug-in niet hoeft te worden aangepast.Als u deze methode opnieuw implementeert in uw subklasse, wordt de gebruiker gevraagd een tekenreeks in te voeren als aanpassing voor deze plug-in. De aanpassingsreeks is beschikbaar als
self.site_customization.Siteaanpassing kan van alles zijn, bijvoorbeeld het pad naar een benodigd binair bestand op de computer van de gebruiker.
- Parameters:
gui – Indien waar, geef HTML hulp terug, anders platte tekst hulp.
- temporary_file(suffix)[broncode]¶
Geef een bestandachtig object terug dat een tijdelijk bestand is op het bestandssysteem. Dit bestand blijft beschikbaar, zelfs nadat het is gesloten, en wordt alleen verwijderd wanneer de interpreter wordt afgesloten. Gebruik het lid
namevan het teruggegeven object om toegang te krijgen tot het volledige pad naar het aangemaakte tijdelijke bestand.- Parameters:
suffix – Het achtervoegsel dat het tijdelijke bestand zal krijgen.
- cli_main(args)[broncode]¶
Deze methode is het belangrijkste toegangspunt voor de opdrachtregelinterface van uw plug-ins. Deze wordt aangeroepen wanneer de gebruiker het volgende uitvoert: calibre-debug -r “Plugin Name”. Alle doorgegeven argumenten zijn aanwezig in de variabele args.
BestandsTypePlugin¶
- class calibre.customize.FileTypePlugin(plugin_path)[broncode]¶
Basisklassen:
PluginEen plug-in die gekoppeld is aan een bepaalde reeks bestandstypen.
- file_types = {}¶
Set van bestandstypen waarvoor deze plug-in moet worden uitgevoerd. Gebruik ‘*’ voor alle bestandstypen. Bijvoorbeeld:
{'lit', 'mobi', 'prc'}
- on_import = False¶
Als True, wordt deze plug-in uitgevoerd wanneer boeken aan de database worden toegevoegd.
- on_postimport = False¶
Als True, wordt deze plug-in uitgevoerd nadat boeken aan de database zijn toegevoegd. In dit geval worden de postimport- en postadd-methoden van de plug-in aangeroepen.
- on_postconvert = False¶
Als True, wordt deze plug-in uitgevoerd nadat een boek is geconverteerd. In dit geval wordt de postconvert-methode van de plug-in aangeroepen.
- on_postdelete = False¶
Als True, wordt deze plug-in uitgevoerd nadat een boekbestand uit de database is verwijderd. In dit geval wordt de postdelete-methode van de plug-in aangeroepen.
- on_preprocess = False¶
Indien True, wordt deze plug-in vlak voor een conversie uitgevoerd.
- on_postprocess = False¶
Indien True, wordt deze plug-in uitgevoerd na conversie op het uiteindelijke bestand dat door de conversie-uitvoerplug-in is geproduceerd.
- type = 'Bestandstype'¶
Het type van deze plug-in. Wordt gebruikt voor het categoriseren van plug-ins in de GUI.
- run(path_to_ebook)[broncode]¶
Voer de plug-in uit. Moet worden geïmplementeerd in subklassen. Deze moet alle vereiste wijzigingen aan het e-boek uitvoeren en het absolute pad naar het gewijzigde e-boek retourneren. Als er geen wijzigingen nodig zijn, moet het pad naar het oorspronkelijke e-boek worden geretourneerd. Als er een fout optreedt, moet er een uitzondering worden gegenereerd. De standaardimplementatie retourneert gewoon het pad naar het oorspronkelijke e-boek. Merk op dat het pad naar het originele bestand (voordat er plug-ins voor bestandstypen worden uitgevoerd) beschikbaar is als self.original_path_to_file.
Het gewijzigde e-boekbestand moet worden aangemaakt met de methode
temporary_file().- Parameters:
path_to_ebook – Absoluut pad naar het e-book.
- Retouren:
Absoluut pad naar het gewijzigde e-book.
- postimport(book_id, book_format, db)[broncode]¶
Wordt aangeroepen na het importeren, d.w.z. nadat het boekbestand aan de database is toegevoegd. Let op: dit is iets anders dan
postadd(), dat wordt aangeroepen wanneer het boekrecord voor het eerst wordt aangemaakt. Deze methode wordt aangeroepen telkens wanneer een nieuw bestand aan een boekrecord wordt toegevoegd. Dit is handig om het boekrecord aan te passen op basis van de inhoud van het nieuw toegevoegde bestand.- Parameters:
book_id – Gegevensbank id van het toegevoegde boek.
book_format – Het bestandsformaat van het toegevoegde boek.
db – Bibliotheekdatabase.
- postconvert(book_id, book_format, db)[broncode]¶
Dit wordt postconversie genoemd, d.w.z. nadat het geconverteerde boekbestand aan de database is toegevoegd. Let op: dit wordt alleen uitgevoerd na een conversie, niet nadat een boek is toegevoegd. Het is handig om het boekrecord aan te passen op basis van de inhoud van het nieuw toegevoegde bestand.
- Parameters:
book_id – Gegevensbank id van het toegevoegde boek.
book_format – Het bestandsformaat van het toegevoegde boek.
db – Bibliotheekdatabase.
- postdelete(book_id, book_format, db)[broncode]¶
Wordt post-verwijdering genoemd, d.w.z. nadat het boekbestand uit de database is verwijderd. Let op: dit wordt niet uitgevoerd wanneer een boekrecord wordt verwijderd, maar alleen wanneer een of meer formaten van het boek worden verwijderd. Dit is handig om het boekrecord aan te passen op basis van het formaat van het verwijderde bestand.
- Parameters:
book_id – Gegevensbank id van het toegevoegde boek.
book_format – Het bestandsformaat van het toegevoegde boek.
db – Bibliotheekdatabase.
- postadd(book_id, fmt_map, db)[broncode]¶
Wordt aangeroepen na het toevoegen, d.w.z. nadat een boek aan de database is toegevoegd. Let op: dit is iets anders dan
postimport(), dat wordt aangeroepen nadat een enkel boekbestand aan een boek is toegevoegd. postadd() wordt alleen aangeroepen wanneer een volledig boekrecord met mogelijk meer dan één boekbestand voor het eerst is aangemaakt. Dit is handig als u het boekrecord in de database wilt wijzigen wanneer het boek voor het eerst aan Calibre wordt toegevoegd.- Parameters:
book_id – Gegevensbank id van het toegevoegde boek.
fmt_map – Kaart van bestandsformaat naar pad van waaruit het bestandsformaat is toegevoegd. Houd er rekening mee dat dit al dan niet naar een daadwerkelijk bestaand bestand kan verwijzen, aangezien bestanden soms als streams worden toegevoegd. In dat geval kan het een dummywaarde of een niet-bestaand pad zijn.
db – Bibliotheek gegevensbank
Metadata plugins¶
- class calibre.customize.MetadataReaderPlugin(*args, **kwargs)[broncode]¶
Basisklassen:
PluginEen plug-in die het lezen van metadata uit een reeks bestandstypen implementeert.
- file_types = {}¶
Set van bestandstypen waarvoor deze plug-in moet worden uitgevoerd. Bijvoorbeeld:
set(['lit', 'mobi', 'prc'])
- supported_platforms = ['windows', 'osx', 'linux']¶
Lijst van platformen waar deze plugin op werkt. Bijvoorbeeld:
['windows', 'osx', 'linux']
- version = (8, 15, 0)¶
De versie van deze plugin in 3’en (hoofd, sub, herziening)
- author = 'Kovid Goyal'¶
De maker van deze plugin
- type = 'Metagegevens-lezer'¶
Het type van deze plug-in. Wordt gebruikt voor het categoriseren van plug-ins in de GUI.
- get_metadata(stream, type)[broncode]¶
Retourneer metadata voor het bestand dat wordt vertegenwoordigd door stream (een bestandachtig object dat lezen ondersteunt). Genereer een uitzondering wanneer er een fout optreedt met de invoergegevens.
- Parameters:
type – Het type bestand. Gegarandeerd een van de vermeldingen in
file_types.- Retouren:
Een
calibre.ebooks.metadata.book.Metadata-object
- class calibre.customize.MetadataWriterPlugin(*args, **kwargs)[broncode]¶
Basisklassen:
PluginEen plug-in die het lezen van metadata uit een reeks bestandstypen implementeert.
- file_types = {}¶
Set van bestandstypen waarvoor deze plug-in moet worden uitgevoerd. Bijvoorbeeld:
set(['lit', 'mobi', 'prc'])
- supported_platforms = ['windows', 'osx', 'linux']¶
Lijst van platformen waar deze plugin op werkt. Bijvoorbeeld:
['windows', 'osx', 'linux']
- version = (8, 15, 0)¶
De versie van deze plugin in 3’en (hoofd, sub, herziening)
- author = 'Kovid Goyal'¶
De maker van deze plugin
- type = 'Metagegevens-schrijver'¶
Het type van deze plug-in. Wordt gebruikt voor het categoriseren van plug-ins in de GUI.
- set_metadata(stream, mi, type)[broncode]¶
Stel metadata in voor het bestand dat wordt vertegenwoordigd door stream (een bestandachtig object dat lezen ondersteunt). Genereer een uitzondering wanneer er een fout optreedt met de invoergegevens.
- Parameters:
type – Het type bestand. Gegarandeerd een van de vermeldingen in
file_types.mi – Een
calibre.ebooks.metadata.book.Metadata-object
Catalogus plugins¶
- class calibre.customize.CatalogPlugin(plugin_path)[broncode]¶
Basisklassen:
PluginEen plugin welke een catalogus generator implementeert.
- file_types = {}¶
Type uitvoerbestand waarvoor deze plug-in moet worden uitgevoerd. Bijvoorbeeld: ‘epub’ of ‘xml’
- type = 'Catalogusgenerator'¶
Het type van deze plug-in. Wordt gebruikt voor het categoriseren van plug-ins in de GUI.
- cli_options = []¶
CLI-parseropties die specifiek zijn voor deze plug-in, gedeclareerd als namedtuple Option:
uit collections import namedtuple Option = namedtuple(‘Option’, ‘option, default, dest, help’) cli_options = [Option(’–catalog-title’, default = ‘My Catalog’, dest = ‘catalog_title’, help = (_(‘Titel van gegenereerde catalogus. nStandaard:’) + “ ‘” + ‘%default’ + “’”))] cli_options geparseerd in calibre.db.cli.cmd_catalog:option_parser()
- initialize()[broncode]¶
Als de plug-in niet ingebouwd is, kopieer dan de .ui- en .py-bestanden van de plug-in uit het ZIP-bestand naar $TMPDIR. Het tabblad wordt dynamisch gegenereerd en toegevoegd aan het dialoogvenster Catalog Options in calibre.gui2.dialogs.catalog.py:Catalog.
- run(path_to_output, opts, db, ids, notification=None)[broncode]¶
Voer de plug-in uit. Moet worden geïmplementeerd in subklassen. Het moet de catalogus genereren in het formaat dat is opgegeven in file_types en het absolute pad naar het gegenereerde catalogusbestand retourneren. Als er een fout optreedt, moet er een uitzondering worden gegenereerd.
Het gegenereerde catalogusbestand moet worden aangemaakt met de methode
temporary_file().- Parameters:
path_to_output – Absoluut pad naar het gegenereerde catalogusbestand.
opts – Een woordenboek met trefwoordargumenten
db – Een LibraryDatabase2 object
Metadata download plugins¶
- class calibre.ebooks.metadata.sources.base.Source(*args, **kwargs)[broncode]¶
Basisklassen:
Plugin- type = 'Externe metagegevensbron'¶
Het type van deze plug-in. Wordt gebruikt voor het categoriseren van plug-ins in de GUI.
- author = 'Kovid Goyal'¶
De maker van deze plugin
- supported_platforms = ['windows', 'osx', 'linux']¶
Lijst van platformen waar deze plugin op werkt. Bijvoorbeeld:
['windows', 'osx', 'linux']
- capabilities = frozenset({})¶
Set van mogelijkheden die door deze plug-in worden ondersteund. Nuttige mogelijkheden zijn: ‘identify’, ‘cover’
- touched_fields = frozenset({})¶
Lijst met metagegevensvelden die mogelijk door deze plug-in kunnen worden gedownload tijdens de identificatiefase
- has_html_comments = False¶
Stel dit in op True als uw plug-in HTML-geformatteerde opmerkingen retourneert.
- supports_gzip_transfer_encoding = False¶
Als je dit instelt op True, geeft het browserobject aan dat het gzip-overdrachtcodering ondersteunt. Dit kan downloads versnellen, maar zorg er eerst voor dat de bron gzip-overdrachtcodering ook echt goed ondersteunt.
- ignore_ssl_errors = False¶
Stel dit in op True om HTTPS-certificaatfouten te negeren bij het verbinden met deze bron.
- cached_cover_url_is_reliable = True¶
In de cache opgeslagen cover-URL’s kunnen soms onbetrouwbaar zijn (d.w.z. het downloaden kan mislukken of de geretourneerde afbeelding kan nep zijn). Als dat vaak het geval is bij deze bron, stel dan in op False.
- options = ()¶
Een lijst met
Option-objecten. Deze worden gebruikt om automatisch de configuratiewidget voor deze plug-in te bouwen.
- config_help_message = None¶
Een tekenreeks die bovenaan de configuratiewidget voor deze plug-in wordt weergegeven.
- can_get_multiple_covers = False¶
Als True, kan deze bron meerdere covers retourneren voor een bepaalde zoekopdracht.
- auto_trim_covers = False¶
Als deze optie is ingesteld op True, worden covers die door deze plug-in worden gedownload automatisch bijgesneden.
- prefer_results_with_isbn = True¶
Als deze optie is ingesteld op True en deze bron meerdere resultaten voor een zoekopdracht retourneert, waarvan sommige ISBN-nummers hebben en andere niet, worden de resultaten zonder ISBN-nummers genegeerd.
- is_configured()[broncode]¶
Geef False terug als uw plug-in moet worden geconfigureerd voordat deze kan worden gebruikt. Er kan bijvoorbeeld een gebruikersnaam/wachtwoord/API-sleutel nodig zijn.
- customization_help()[broncode]¶
Geef een string terug met hulp bij het aanpassen van deze plug-in. Standaard wordt een
NotImplementedErrorgegenereerd, wat aangeeft dat de plug-in niet hoeft te worden aangepast.Als u deze methode opnieuw implementeert in uw subklasse, wordt de gebruiker gevraagd een tekenreeks in te voeren als aanpassing voor deze plug-in. De aanpassingsreeks is beschikbaar als
self.site_customization.Siteaanpassing kan van alles zijn, bijvoorbeeld het pad naar een benodigd binair bestand op de computer van de gebruiker.
- Parameters:
gui – Indien waar, geef HTML hulp terug, anders platte tekst hulp.
- config_widget()[broncode]¶
Implementeer deze methode en
save_settings()in uw plug-in om een aangepast configuratievenster te gebruiken, in plaats van te vertrouwen op de eenvoudige, op strings gebaseerde standaardaanpassing.Als deze methode wordt geïmplementeerd, moet deze een QWidget retourneren. De widget kan een optionele methode validate() hebben die geen argumenten accepteert en onmiddellijk wordt aangeroepen nadat de gebruiker op OK heeft geklikt. Wijzigingen worden alleen toegepast als de methode True retourneert.
Als u om een of andere reden de configuratie op dit moment niet kunt uitvoeren, retourneer dan een tuple van twee strings (bericht, details). Deze worden als waarschuwingsdialoogvenster aan de gebruiker getoond en het proces wordt afgebroken.
- save_settings(config_widget)[broncode]¶
Sla de door de gebruiker opgegeven instellingen op met config_widget.
- Parameters:
config_widget – De widget die wordt geretourneerd door
config_widget().
- get_author_tokens(authors, only_first_author=True)[broncode]¶
Neem een lijst met auteurs en retourneer een lijst met tokens die bruikbaar zijn voor een AND-zoekopdracht. Deze functie probeert tokens te retourneren in de volgorde voornaam, middelste naam, achternaam, waarbij wordt aangenomen dat als er een komma in de auteursnaam staat, de naam in de vorm achternaam, andere namen is.
- get_title_tokens(title, strip_joiners=True, strip_subtitle=False)[broncode]¶
Neem een titel en retourneer een lijst met tokens die nuttig zijn voor een AND-zoekopdracht. Sluit (optioneel) verbindingswoorden en leestekens uit.
- split_jobs(jobs, num)[broncode]¶
Splits een lijst met taken in maximaal num groepen, zo gelijkmatig mogelijk.
- test_fields(mi)[broncode]¶
Geef het eerste veld uit self.touched_fields terug dat null is op het mi-object.
- clean_downloaded_metadata(mi)[broncode]¶
Roep deze methode aan in de identificatiemethode van uw plug-in om metadata te normaliseren voordat u het Metadata-object in result_queue plaatst. U kunt natuurlijk een aangepast algoritme gebruiken dat geschikt is voor uw metadatasource.
- get_book_url(identifiers)[broncode]¶
Geef een 3-tuple of None terug. De 3-tuple heeft de vorm: (identifier_type, identifier_value, URL). De URL is de URL voor het boek dat door identifiers bij deze bron wordt geïdentificeerd. identifier_type, identifier_value specificeren de identifier die overeenkomt met de URL. Deze URL moet door een mens met een browser kunnen worden bekeken. Het is bedoeld om een klikbare link te bieden waarmee de gebruiker gemakkelijk de boekenpagina bij deze bron kan bezoeken. Als er geen URL wordt gevonden, retourneer dan None. Deze methode moet snel en consistent zijn, dus implementeer deze alleen als het mogelijk is om de URL te construeren op basis van een bekend schema met gegeven identifiers.
- get_book_url_name(idtype, idval, url)[broncode]¶
Geef een voor mensen leesbare naam terug vanuit de retourwaarde van get_book_url().
- get_book_urls(identifiers)[broncode]¶
Overschrijf deze methode als u meerdere URL’s voor dit boek wilt retourneren. Retourneer een lijst met 3-tuples. Standaard roept deze methode gewoon
get_book_url()aan.
- get_cached_cover_url(identifiers)[broncode]¶
Geef de URL van de cache van de omslag van het boek terug dat wordt geïdentificeerd door het woordenboek met identificatiecodes, of None als een dergelijke URL niet bestaat.
Let op: deze methode mag alleen gevalideerde URL’s retourneren, dus geen URL’s die kunnen leiden tot een generieke omslagafbeelding of een foutmelding dat de pagina niet gevonden kan worden.
- id_from_url(url)[broncode]¶
Parseer een URL en retourneer een tuple in de vorm: (identifier_type, identifier_value). Als de URL niet overeenkomt met het patroon voor de metadatabron, retourneer dan None.
- identify_results_keygen(title=None, authors=None, identifiers={})[broncode]¶
Geef een functie terug die wordt gebruikt om een sleutel te genereren waarmee metadata-objecten kunnen worden gesorteerd op relevantie voor een zoekopdracht (titel, auteurs, identificatiegegevens).
Deze sleutels worden gebruikt om de resultaten van een aanroep naar
identify()te sorteren.Voor meer informatie over het standaardalgoritme, zie
InternalMetadataCompareKeyGen. Implementeer deze functie opnieuw in uw plug-in als het standaardalgoritme niet geschikt is.
- identify(log, result_queue, abort, title=None, authors=None, identifiers={}, timeout=30)[broncode]¶
Identificeer een boek aan de hand van de titel/auteur/ISBN/enz.
Als er identificatiegegevens zijn opgegeven en er geen overeenkomst wordt gevonden en deze metagegevensbron niet alle gerelateerde identificatiegegevens opslaat (bijvoorbeeld alle ISBN-nummers van een boek), moet deze methode opnieuw worden geprobeerd met alleen de titel en de auteur (ervan uitgaande dat deze zijn opgegeven).
Als deze metadatabron ook covers levert, moet de URL naar de cover in de cache worden opgeslagen, zodat bij een volgende oproep aan de get covers API met hetzelfde ISBN/speciale identificatiecode de cover-URL niet opnieuw hoeft te worden opgehaald. Gebruik hiervoor de caching API.
Elk metadata-object dat met deze methode in result_queue wordt geplaatst, moet een source_relevance-attribuut hebben dat een geheel getal is dat de volgorde aangeeft waarin de resultaten door de metadatasource voor deze query zijn geretourneerd. Dit geheel getal wordt gebruikt door
compare_identify_results(). Als de volgorde niet belangrijk is, stel deze dan voor elk resultaat in op nul.Zorg ervoor dat alle informatie over omslag/ISBN-toewijzingen in de cache wordt opgeslagen voordat het Metadata-object in result_queue wordt geplaatst.
- Parameters:
log – Een logobject, gebruik het om foutopsporingsinformatie/fouten weer te geven
result_queue – Een resultatenwachtrij, resultaten moeten hierin worden geplaatst. Elk resultaat is een metadata-object.
abort – Als abort.is_set() True retourneert, stop dan de verdere verwerking en keer zo snel mogelijk terug.
title – De titel van het boek kan ‘Geen’ zijn.
authors – Een lijst met auteurs van het boek kan None zijn.
identifiers – Een woordenboek met andere identificatiecodes, meestal {‘isbn’:’1234…’}
timeout – Time-out in seconden, geen enkel netwerkverzoek mag langer dan de time-out blijven hangen.
- Retouren:
Geen als er geen fouten zijn opgetreden, anders een unicode-weergave van de fout die geschikt is om aan de gebruiker te tonen.
- download_cover(log, result_queue, abort, title=None, authors=None, identifiers={}, timeout=30, get_best_cover=False)[broncode]¶
Download een cover en plaats deze in result_queue. De parameters hebben allemaal dezelfde betekenis als voor
identify(). Plaats (self, cover_data) in result_queue.Deze methode moet waar mogelijk gebruikmaken van URL’s in de cache voor meer efficiëntie. Wanneer er geen gegevens in de cache aanwezig zijn, roepen de meeste plug-ins gewoon identify aan en gebruiken ze de resultaten daarvan.
Als de parameter get_best_cover True is en deze plug-in meerdere covers kan ophalen, moet deze alleen de “beste” cover ophalen.
- class calibre.ebooks.metadata.sources.base.InternalMetadataCompareKeyGen(mi, source_plugin, title, authors, identifiers)[broncode]¶
Genereer een sorteersleutel voor het vergelijken van de relevantie van metagegevensobjecten, gegeven een zoekopdracht. Dit wordt alleen gebruikt om resultaten uit dezelfde metagegevensbron te vergelijken, niet tussen verschillende bronnen.
De sorteersleutel zorgt ervoor dat een oplopende sortering een sortering is op volgorde van afnemende relevantie.
Het algoritme is:
Geef de voorkeur aan resultaten die ten minste één identificeerder hebben die hetzelfde is als voor de query.
Geef de voorkeur aan resultaten met een URL in de cache
Geef de voorkeur aan resultaten waarbij alle beschikbare velden zijn ingevuld
Geef de voorkeur aan resultaten in dezelfde taal als de huidige taal van de gebruikersinterface.
Geef de voorkeur aan resultaten die exact overeenkomen met de zoekopdracht
Geef de voorkeur aan resultaten met langere opmerkingen (langer dan 10% longer)
- Gebruik de relevantie van het resultaat zoals gerapporteerd door de zoekfunctie van de metadatabron.
motor
Omzet plugins¶
- class calibre.customize.conversion.InputFormatPlugin(*args)[broncode]¶
Basisklassen:
PluginInputFormatPlugins zijn verantwoordelijk voor het converteren van een document naar HTML+OPF+CSS+etc. De resultaten van de conversie moeten worden gecodeerd in UTF-8. De belangrijkste actie vindt plaats in
convert().- type = 'Invoer converteren'¶
Het type van deze plug-in. Wordt gebruikt voor het categoriseren van plug-ins in de GUI.
- can_be_disabled = False¶
Als False, kan de gebruiker deze plug-in niet uitschakelen. Gebruik met zorg.
- supported_platforms = ['windows', 'osx', 'linux']¶
Lijst van platformen waar deze plugin op werkt. Bijvoorbeeld:
['windows', 'osx', 'linux']
- file_types = {}¶
Set van bestandstypen waarvoor deze plug-in moet worden uitgevoerd Bijvoorbeeld:
set(['azw', 'mobi', 'prc'])
- is_image_collection = False¶
Als True, genereert deze invoerplugin een verzameling afbeeldingen, één per HTML-bestand. Dit kan dynamisch worden ingesteld in de convert-methode als de invoerbestanden zowel afbeeldingsverzamelingen als niet-afbeeldingsverzamelingen kunnen zijn. Als u dit instelt op True, moet u de methode get_images() implementeren die een lijst met afbeeldingen retourneert.
- core_usage = 1¶
Aantal CPU-kernen dat door deze plug-in wordt gebruikt. Een waarde van -1 betekent dat alle beschikbare kernen worden gebruikt.
- for_viewer = False¶
Als deze optie is ingesteld op True, voert de invoerplugin een speciale bewerking uit om de uitvoer geschikt te maken voor weergave.
- output_encoding = 'utf-8'¶
De codering waarin deze invoerplugin bestanden aanmaakt. Een waarde van None betekent dat de codering niet is gedefinieerd en afzonderlijk moet worden gedetecteerd.
- common_options = {<calibre.customize.conversion.OptionRecommendation object>}¶
Opties die door alle invoerformaatplugins worden gedeeld. Niet overschrijven in subklassen. Gebruik in plaats daarvan
options. Elke optie moet een instantie zijn vanOptionRecommendation.
- options = {}¶
Opties om het gedrag van deze plug-in aan te passen. Elke optie moet een instantie zijn van
OptionRecommendation.
- recommendations = {}¶
Een reeks van 3-tuples in de vorm (optienaam, aanbevolen_waarde, aanbevelingsniveau)
- get_images()[broncode]¶
Geef een lijst met absolute paden naar de afbeeldingen terug, als deze invoerplugin een afbeeldingenverzameling vertegenwoordigt. De lijst met afbeeldingen staat in dezelfde volgorde als de rug en de inhoudsopgave.
- convert(stream, options, file_ext, log, accelerators)[broncode]¶
Deze methode moet worden geïmplementeerd in subklassen. Deze moet het pad naar het aangemaakte OPF-bestand of een
OEBBook-instantie retourneren. Alle uitvoer moet in de huidige map worden opgeslagen. Als deze plug-in bestanden buiten de huidige map aanmaakt, moeten deze worden verwijderd/gemarkeerd voor verwijdering voordat deze methode wordt geretourneerd.- Parameters:
stream – Een bestandachtig object dat het invoerbestand bevat.
options – Opties om het conversieproces aan te passen. Gegarandeerd dat het attributen heeft die overeenkomen met alle opties die door deze plug-in worden gedeclareerd. Daarnaast heeft het een verbose-attribuut dat integrale waarden van nul en hoger aanneemt. Hogere getallen betekenen meer verbose. Een ander nuttig attribuut is
input_profile, een instantie vancalibre.customize.profiles.InputProfile.file_ext – De extensie (zonder de .) van het invoerbestand. Deze behoort gegarandeerd tot een van de file_types die door deze plug-in worden ondersteund.
log – Een
calibre.utils.logging.Log-object. Alle uitvoer moet dit object gebruiken.accelerators – Een woordenboek met diverse informatie die de invoerplugin gemakkelijk kan verkrijgen en die de volgende fasen van de conversie zou versnellen.
- postprocess_book(oeb, opts, log)[broncode]¶
Wordt aangeroepen om de invoerplugin toe te staan nabewerking uit te voeren nadat het boek is geparseerd.
- specialize(oeb, opts, log, output_fmt)[broncode]¶
Wordt aangeroepen om de invoerplugin in staat te stellen het geparseerde boek te specialiseren voor een bepaald uitvoerformaat. Wordt aangeroepen na postprocess_book en voordat er transformaties worden uitgevoerd op het geparseerde boek.
- gui_configuration_widget(parent, get_option_by_name, get_option_help, db, book_id=None)[broncode]¶
Wordt aangeroepen om de widget te maken die wordt gebruikt voor het configureren van deze plug-in in de Calibre GUI. De widget moet een instantie zijn van de klasse PluginWidget. Zie de ingebouwde invoerplug-ins voor voorbeelden.
- class calibre.customize.conversion.OutputFormatPlugin(*args)[broncode]¶
Basisklassen:
PluginOutputFormatPlugins zijn verantwoordelijk voor het converteren van een OEB-document (OPF+HTML) naar een e-book.
Het OEB-document kan worden verondersteld te zijn gecodeerd in UTF-8. De belangrijkste actie vindt plaats in
convert().- type = 'Converteer uitvoer'¶
Het type van deze plug-in. Wordt gebruikt voor het categoriseren van plug-ins in de GUI.
- can_be_disabled = False¶
Als False, kan de gebruiker deze plug-in niet uitschakelen. Gebruik met zorg.
- supported_platforms = ['windows', 'osx', 'linux']¶
Lijst van platformen waar deze plugin op werkt. Bijvoorbeeld:
['windows', 'osx', 'linux']
- file_type = None¶
Het bestandstype (extensie zonder voorloop-punt) dat deze plug-in uitvoert
- common_options = {<calibre.customize.conversion.OptionRecommendation object>}¶
Opties die door alle invoerformaatplugins worden gedeeld. Niet overschrijven in subklassen. Gebruik in plaats daarvan
options. Elke optie moet een instantie zijn vanOptionRecommendation.
- options = {}¶
Opties om het gedrag van deze plug-in aan te passen. Elke optie moet een instantie zijn van
OptionRecommendation.
- recommendations = {}¶
Een reeks van 3-tuples in de vorm (optienaam, aanbevolen_waarde, aanbevelingsniveau)
- property description¶
str(object=’’) -> str str(bytes_or_buffer[, encoding[, errors]]) -> str
Maak een nieuw stringobject op basis van het opgegeven object. Als encoding of errors is opgegeven, moet het object een gegevensbuffer blootstellen die wordt gedecodeerd met behulp van de opgegeven codering en foutverwerker. Anders wordt het resultaat van object.__str__() (indien gedefinieerd) of repr(object) geretourneerd. De standaardwaarde voor encoding is ‘utf-8’. De standaardwaarde voor errors is ‘strict’.
- convert(oeb_book, output, input_plugin, opts, log)[broncode]¶
Geef de inhoud van oeb_book (een instantie van
calibre.ebooks.oeb.OEBBook) weer in het bestand dat is opgegeven door output.- Parameters:
output – Een bestandachtig object of een tekenreeks. Als het een tekenreeks is, is dit het pad naar een map die al dan niet bestaat. De uitvoerplugin moet de uitvoer naar die map schrijven. Als het een bestandachtig object is, moet de uitvoerplugin de uitvoer naar het bestand schrijven.
input_plugin – De invoerplugin die aan het begin van de conversiepijplijn werd gebruikt.
opts – Conversieopties. Gegarandeerd met attributen die overeenkomen met de OptionRecommendations van deze plug-in.
log – De logger. Gebruik dit om debug-/infoboodschappen enz. af te drukken.
- specialize_options(log, opts, input_fmt)[broncode]¶
Kan worden gebruikt om de waarden van conversieopties te wijzigen, zoals gebruikt door de conversiepijplijn.
- specialize_css_for_output(log, opts, item, stylizer)[broncode]¶
Kan worden gebruikt om wijzigingen aan te brengen in de CSS tijdens het CSS-afvlakkingsproces.
- Parameters:
item – Het item (HTML-bestand) dat wordt verwerkt
stylizer – Een Stylizer-object dat de afgevlakte stijlen voor item bevat. U kunt de stijl voor elk element ophalen met stylizer.style(element).
- gui_configuration_widget(parent, get_option_by_name, get_option_help, db, book_id=None)[broncode]¶
Wordt aangeroepen om de widget te maken die wordt gebruikt voor het configureren van deze plug-in in de Calibre GUI. De widget moet een instantie zijn van de klasse PluginWidget. Zie de ingebouwde uitvoerplug-ins voor voorbeelden.
Apparaatstuurprogramma’s¶
De basisklasse voor alle apparaatstuurprogramma’s is DevicePlugin. Als uw apparaat zich echter als een USBMS-station aan het besturingssysteem presenteert, moet u in plaats daarvan de USBMS-klasse gebruiken, omdat deze alle logica implementeert die nodig is om dit soort apparaten te ondersteunen.
- class calibre.devices.interface.DevicePlugin(plugin_path)[broncode]¶
Basisklassen:
PluginDefinieert de interface die moet worden geïmplementeerd door backends die communiceren met een e-bookreader.
- type = 'Toestel interface'¶
Het type van deze plug-in. Wordt gebruikt voor het categoriseren van plug-ins in de GUI.
- FORMATS = ['lrf', 'rtf', 'pdf', 'txt']¶
Geordende lijst met ondersteunde formaten
- VENDOR_ID = 0¶
VENDOR_ID kan een geheel getal, een lijst met gehele getallen of een woordenboek zijn. Als het een woordenboek is, moet het een woordenboek van woordenboeken zijn, in de vorm:
{ integer_vendor_id : { product_id : [list of BCDs], ... }, ... }
- PRODUCT_ID = 0¶
Een integer of een lijst met integers
- BCD = None¶
BCD kan ofwel None zijn om geen onderscheid te maken tussen apparaten op basis van BCD, ofwel een lijst met de BCD-nummers van alle apparaten die door dit stuurprogramma worden ondersteund.
- THUMBNAIL_HEIGHT = 68¶
Hoogte van voorbeeldweergave op het bestand
- THUMBNAIL_COMPRESSION_QUALITY = 75¶
Compressiekwaliteit voor miniaturen. Stel deze waarde dichter bij 100 in voor miniaturen van betere kwaliteit met minder compressieartefacten. Uiteraard worden de miniaturen dan ook groter.
- WANTS_UPDATED_THUMBNAILS = False¶
Stel dit in op True als het apparaat het bijwerken van miniatuurafbeeldingen van omslagen tijdens sync_booklists ondersteunt. Als u dit instelt op true, wordt device.py gevraagd om de miniatuurafbeeldingen van omslagen tijdens het matchen van boeken te vernieuwen.
- CAN_SET_METADATA = ['title', 'authors', 'collections']¶
Of de metadata van boeken via de GUI kan worden ingesteld.
- CAN_DO_DEVICE_DB_PLUGBOARD = False¶
Of het apparaat device_db metadata plugboards kan verwerken
- path_sep = '/'¶
Padseparator voor paden naar boeken op het apparaat
- icon = 'reader.png'¶
Icoon voor dit apparaat
- UserAnnotation¶
alias of
Annotation
- OPEN_FEEDBACK_MESSAGE = None¶
GUI geeft dit weer als een bericht in de statusbalk als het niet None is. Handig als het openen lang kan duren.
- VIRTUAL_BOOK_EXTENSIONS = frozenset({})¶
Set extensies die “virtuele boeken” op het apparaat zijn en daarom niet kunnen worden bekeken/opgeslagen/toegevoegd aan de bibliotheek. Bijvoorbeeld:
frozenset(['kobo'])
- VIRTUAL_BOOK_EXTENSION_MESSAGE = None¶
Bericht dat aan de gebruiker wordt getoond voor virtuele boekuitbreidingen.
- NUKE_COMMENTS = None¶
Of opmerkingen in het exemplaar van het boek dat naar het apparaat is verzonden, moeten worden verwijderd. Indien niet None, moet dit een korte tekenreeks zijn waarmee de opmerkingen worden vervangen.
- MANAGES_DEVICE_PRESENCE = False¶
Als True aangeeft dat deze driver volledig verantwoordelijk is voor het detecteren van apparaten, het uitwerpen ervan, enzovoort. Als u dit instelt op True, moet u de methoden detect_managed_devices en debug_managed_device_detection implementeren. Een driver waarbij dit is ingesteld op true is verantwoordelijk voor het detecteren van apparaten, het beheren van een zwarte lijst met apparaten, een lijst met uitgeworpen apparaten enzovoort. Calibre roept periodiek de methode detect_managed_devices() aan en als deze een gedetecteerd apparaat retourneert, roept Calibre open() aan. open() wordt elke keer aangeroepen wanneer een apparaat wordt geretourneerd, zelfs als eerdere aanroepen van open() zijn mislukt. Daarom moet de driver zijn eigen zwarte lijst met mislukte apparaten bijhouden. Op dezelfde manier zal Calibre bij het uitwerpen eject() aanroepen en vervolgens, ervan uitgaande dat de volgende aanroep van detect_managed_devices() None retourneert, post_yank_cleanup() aanroepen.
- SLOW_DRIVEINFO = False¶
Als deze optie op True is ingesteld, roept Calibre de methode
get_driveinfo()aan nadat de boekenlijsten zijn geladen om de driveinfo op te halen.
- ASK_TO_ALLOW_CONNECT = False¶
Als deze optie is ingesteld op True, vraagt Calibre de gebruiker bij de eerste detectie of hij het apparaat met Calibre wil beheren. Als u deze optie instelt op True, moet u
get_device_uid(),ignore_connected_device(),get_user_blacklisted_devices()enset_user_blacklisted_devices()implementeren.
- user_feedback_after_callback = None¶
Stel dit in op een woordenboek in de vorm {‘title’:title, ‘msg’:msg, ‘det_msg’:detailed_msg} om Calibre een bericht naar de gebruiker te laten pop-upen nadat enkele callbacks zijn uitgevoerd (momenteel alleen upload_books). Let erop dat u de gebruiker niet overspoelt met te veel berichten. Deze variabele wordt na elke callback gecontroleerd, dus stel deze alleen in wanneer dat echt nodig is.
- classmethod get_open_popup_message()[broncode]¶
GUI geeft dit weer als een niet-modale pop-up. Moet een instantie zijn van OpenPopupMessage.
- classmethod model_metadata() tuple[ModelMetadata, ...][broncode]¶
Metadata over alle daadwerkelijke apparaatmodellen die deze driver ondersteunt
- is_usb_connected(devices_on_system, debug=False, only_presence=False)[broncode]¶
Geef True, device_info terug als een apparaat dat door deze plug-in wordt beheerd momenteel is aangesloten.
- Parameters:
devices_on_system – Lijst met momenteel aangesloten apparaten
- detect_managed_devices(devices_on_system, force_refresh=False)[broncode]¶
Wordt alleen aangeroepen als MANAGES_DEVICE_PRESENCE waar is.
Scan naar apparaten die deze driver kan verwerken. Als er een apparaat wordt gevonden, moet een apparaatobject worden geretourneerd. Dit object wordt doorgegeven aan de methode open() als connected_device. Als er geen apparaat wordt gevonden, retourneer dan None. Het geretourneerde object kan van alles zijn, calibre gebruikt het niet, het wordt alleen doorgegeven aan open().
Deze methode wordt periodiek aangeroepen door de GUI, dus zorg ervoor dat deze niet te veel bronnen verbruikt. Gebruik een cache om te voorkomen dat het systeem herhaaldelijk wordt gescand.
- Parameters:
devices_on_system – Set USB-apparaten gevonden op het systeem.
force_refresh – Als True en de driver een cache gebruikt om herhaaldelijk scannen te voorkomen, moet de cache worden geleegd.
- debug_managed_device_detection(devices_on_system, output)[broncode]¶
Wordt alleen aangeroepen als MANAGES_DEVICE_PRESENCE waar is.
Moet informatie over de apparaten die op het systeem zijn gedetecteerd naar de uitvoer schrijven, wat een bestandachtig object is.
Moet True retourneren als een apparaat is gedetecteerd en succesvol is geopend, anders False.
- reset(key='-1', log_packets=False, report_progress=None, detected_device=None)[broncode]¶
- Parameters:
key – De sleutel om het apparaat te ontgrendelen
log_packets – Indien waar, wordt de pakketstroom van/naar het apparaat geregistreerd.
report_progress – Functie die wordt aangeroepen met een % progress (getal tussen 0 en 100) voor verschillende taken. Als deze wordt aangeroepen met -1, betekent dit dat de taak geen voortgangsinformatie heeft.
detected_device – Apparaatinformatie van de apparaatscanner
- can_handle_windows(usbdevice, debug=False)[broncode]¶
Optionele methode om verdere controles uit te voeren op een apparaat om te zien of dit stuurprogramma het kan verwerken. Als dat niet het geval is, moet het False retourneren. Deze methode wordt alleen aangeroepen nadat de leverancier, product-id’s en de bcd overeenkomen, zodat het relatief tijdrovende controles kan uitvoeren. De standaardimplementatie retourneert True. Deze methode wordt alleen aangeroepen op Windows. Zie ook
can_handle().Houd er rekening mee dat voor apparaten op basis van USBMS deze methode standaard wordt gedelegeerd aan
can_handle(). U hoeft dus alleencan_handle()te overschrijven in uw subklasse van USBMS.- Parameters:
usbdevice – Een USB-apparaat zoals geretourneerd door
calibre.devices.winusb.scan_usb_devices()
- can_handle(device_info, debug=False)[broncode]¶
Unix-versie van
can_handle_windows().- Parameters:
device_info – Is een tuple van (vid, pid, bcd, fabrikant, product, serienummer)
- open(connected_device, library_uuid)[broncode]¶
Voer alle apparaatspecifieke initialisaties uit. Wordt aangeroepen nadat het apparaat is gedetecteerd, maar vóór andere functies die met het apparaat communiceren. Bijvoorbeeld: voor apparaten die zich presenteren als USB-massaopslagapparaten, is deze methode verantwoordelijk voor het koppelen van het apparaat of, als het apparaat automatisch is gekoppeld, voor het achterhalen waar het is gekoppeld. De methode
calibre.devices.usbms.device.Device.open()heeft een implementatie van deze functie die als een goed voorbeeld voor USB-massaopslagapparaten kan dienen.Deze methode kan een OpenFeedback-uitzondering genereren om een bericht aan de gebruiker weer te geven.
- Parameters:
connected_device – Het apparaat dat we proberen te openen. Het is een tuple van (leverancier-id, product-id, bcd, naam van de fabrikant, productnaam, serienummer van het apparaat). Sommige apparaten hebben echter geen serienummer en in Windows zijn alleen de eerste drie velden aanwezig, de rest is None.
library_uuid – De UUID van de huidige Calibre-bibliotheek. Kan None zijn als er geen bibliotheek is (bijvoorbeeld bij gebruik vanaf de opdrachtregel).
- eject()[broncode]¶
Koppel het apparaat los van het besturingssysteem. Hierbij wordt niet gecontroleerd of er nog GUI-taken in behandeling zijn die met het apparaat moeten communiceren.
OPMERKING: Deze methode mag niet worden aangeroepen op dezelfde thread als de rest van de apparaatmethoden.
- post_yank_cleanup()[broncode]¶
Wordt aangeroepen als de gebruiker het apparaat verwijdert zonder het eerst uit te werpen.
- set_progress_reporter(report_progress)[broncode]¶
Stel een functie in om voortgangsinformatie te rapporteren.
- Parameters:
report_progress – Functie die wordt aangeroepen met een % progress (getal tussen 0 en 100) voor verschillende taken. Als deze wordt aangeroepen met -1, betekent dit dat de taak geen voortgangsinformatie heeft.
- get_device_information(end_session=True)[broncode]¶
Vraag het apparaat om apparaatinformatie. Zie L{DeviceInfoQuery}.
- Retouren:
(apparaatnaam, apparaatversie, softwareversie op apparaat, MIME-type) De tuple kan optioneel een vijfde element hebben, namelijk een woordenboek met schijfinformatie. Zie usbms.driver voor een voorbeeld.
- get_driveinfo()[broncode]¶
Geef het driveinfo-woordenboek terug. Wordt meestal aangeroepen vanuit get_device_information(), maar als het laden van de driveinfo traag verloopt voor deze driver, dan moet SLOW_DRIVEINFO worden ingesteld. In dit geval wordt deze methode door calibre aangeroepen nadat de boekenlijsten zijn geladen. Merk op dat deze methode niet wordt aangeroepen op de apparaatthread, dus de driver moet de drive-informatie in de methode books() in de cache opslaan en deze functie moet de gegevens uit de cache teruggeven.
- card_prefix(end_session=True)[broncode]¶
Geef een lijst met twee elementen terug met het voorvoegsel van de paden op de kaarten. Als er geen kaart aanwezig is, wordt None ingesteld voor het voorvoegsel van de kaart. Bijvoorbeeld: (‘/place’, ‘/place2’) (None, ‘place2’) (‘place’, None) (None, None)
- total_space(end_session=True)[broncode]¶
- Verkrijg de totale beschikbare ruimte op de koppelpunten:
Hoofdgeheugen
Geheugenkaart A
Geheugenkaart B
- Retouren:
Een lijst met 3 elementen met een totale ruimte in bytes van (1, 2, 3). Als een bepaald apparaat geen van deze locaties heeft, moet het 0 retourneren.
- free_space(end_session=True)[broncode]¶
- Maak vrije ruimte beschikbaar op de koppelpunten:
Hoofdgeheugen
Geheugenkaart A
Geheugenkaart B
- Retouren:
Een lijst met 3 elementen met vrije ruimte in bytes van (1, 2, 3). Als een bepaald apparaat geen van deze locaties heeft, moet het -1 retourneren.
- books(oncard=None, end_session=True)[broncode]¶
Geef een lijst met e-books op het apparaat weer.
- Parameters:
oncard – Als ‘carda’ of ‘cardb’ een lijst met e-books op de specifieke opslagkaart retourneert, retourneer dan anders een lijst met e-books in het hoofdgeheugen van het apparaat. Als een kaart is opgegeven en er geen boeken op de kaart staan, retourneer dan een lege lijst.
- Retouren:
Een boekenlijst.
- upload_books(files, names, on_card=None, end_session=True, metadata=None)[broncode]¶
Upload een lijst met boeken naar het apparaat. Als er al een bestand op het apparaat staat, moet dit worden vervangen. Deze methode moet een
FreeSpaceErrorgenereren als er onvoldoende vrije ruimte op het apparaat is. De tekst van de FreeSpaceError moet het woord “card” bevatten alson_cardniet None is, anders moet het het woord “memory” bevatten.- Parameters:
files – Een lijst met paden
names – Een lijst met bestandsnamen die de boeken moeten hebben nadat ze naar het apparaat zijn geüpload. len(names) == len(files)
metadata – Als het niet None is, is het een lijst met
Metadata-objecten. Het idee is om de metadata te gebruiken om te bepalen waar op het apparaat het boek moet worden geplaatst. len(metadata) == len(files). Naast de reguliere omslag (pad naar omslag) kan er ook een thumbnail-attribuut zijn, dat bij voorkeur moet worden gebruikt. Het thumbnail-attribuut heeft de vorm (breedte, hoogte, cover_data als jpeg).
- Retouren:
Een lijst met 3-elementige tuples. De lijst is bedoeld om te worden doorgegeven aan
add_books_to_metadata().
- classmethod add_books_to_metadata(locations, metadata, booklists)[broncode]¶
Voeg locaties toe aan de boekenlijsten. Deze functie mag niet communiceren met het apparaat.
- Parameters:
locations – Resultaat van een oproep naar L{upload_books}
metadata – Lijst met
Metadata-objecten, hetzelfde als voorupload_books().booklists – Een tuple met het resultaat van aanroepen van (
books(oncard=None)(),books(oncard='carda')(), :meth`books(oncard=’cardb’)`).
- delete_books(paths, end_session=True)[broncode]¶
Boeken verwijderen op paden op het apparaat.
- classmethod remove_books_from_metadata(paths, booklists)[broncode]¶
Verwijder boeken uit de metadatalijst. Deze functie mag niet communiceren met het apparaat.
- Parameters:
paths – paden naar boeken op het apparaat.
booklists – Een tuple met het resultaat van aanroepen van (
books(oncard=None)(),books(oncard='carda')(), :meth`books(oncard=’cardb’)`).
- sync_booklists(booklists, end_session=True)[broncode]¶
Metadata bijwerken op het apparaat.
- Parameters:
booklists – Een tuple met het resultaat van aanroepen van (
books(oncard=None)(),books(oncard='carda')(), :meth`books(oncard=’cardb’)`).
- get_file(path, outfile, end_session=True)[broncode]¶
Lees het bestand op
padop het apparaat en schrijf het naar uitbestand.- Parameters:
outfile – bestandsobject zoals
sys.stdoutof het resultaat van eenopen()-aanroep.
- classmethod config_widget()[broncode]¶
Moet een QWidget retourneren. De QWidget bevat de instellingen voor de apparaatinterface.
- classmethod save_settings(settings_widget)[broncode]¶
Moet instellingen opslaan op schijf. Neemt de widget die is gemaakt in
config_widget()en slaat alle instellingen op schijf op.
- classmethod settings()[broncode]¶
Moet een opts-object retourneren. Het opts-object moet ten minste één attribuut format_map hebben, een geordende lijst met formaten voor het apparaat.
- set_plugboards(plugboards, pb_func)[broncode]¶
voorzie de driver van de huidige set plugboards en een functie om een specifiek plugboard te selecteren. Deze methode wordt onmiddellijk voor add_books en sync_booklists aangeroepen.
- pb_func is een aanroepbare functie met de volgende handtekening:
def pb_func(apparaatnaam, formaat, plugboards)
Je geeft het de huidige apparaatnaam (de klassenaam of DEVICE_PLUGBOARD_NAME), het formaat waarin je geïnteresseerd bent (een ‘echt’ formaat of ‘device_db’) en de plugboards (die je hebt gekregen van set_plugboards, dezelfde plek waar je deze methode hebt gekregen).
- Retouren:
Geen of één plugboard-instantie.
- set_driveinfo_name(location_code, name)[broncode]¶
Stel de apparaatnaam in het bestand driveinfo in op ‘naam’. Deze instelling blijft behouden totdat het bestand opnieuw wordt aangemaakt of de naam opnieuw wordt gewijzigd.
Niet-schijfapparaten moeten deze methode implementeren op basis van de locatiecodes die worden geretourneerd door de methode get_device_information().
- prepare_addable_books(paths)[broncode]¶
Gegeven een lijst met paden, retourneert een andere lijst met paden. Deze paden verwijzen naar toevoegbare versies van de boeken.
Als er een fout optreedt bij het voorbereiden van een boek, dan moet de positie in de geretourneerde lijst voor dat boek in plaats van een pad een drietal zijn: (origineel_pad, de uitzonderingsinstantie, traceback)
- startup()[broncode]¶
Wordt aangeroepen wanneer Calibre het apparaat opstart. Voer alle vereiste initialisaties uit. Houd er rekening mee dat er meerdere instanties van de klasse kunnen worden geïnstantieerd, waardoor __init__ meerdere keren kan worden aangeroepen, maar slechts één instantie deze methode zal aanroepen. Deze methode wordt aangeroepen op de apparaatthread, niet op de GUI-thread.
- shutdown()[broncode]¶
Wordt aangeroepen wanneer Calibre wordt afgesloten, hetzij definitief, hetzij ter voorbereiding op een herstart. Voer eventuele vereiste opschoonacties uit. Deze methode wordt aangeroepen op de apparaatthread, niet op de GUI-thread.
- get_device_uid()[broncode]¶
Moet een unieke id retourneren voor het momenteel verbonden apparaat (dit wordt onmiddellijk na een succesvolle aanroep van open() aangeroepen). U moet deze methode implementeren als u ASK_TO_ALLOW_CONNECT = True instelt.
- ignore_connected_device(uid)[broncode]¶
Moet het apparaat dat wordt geïdentificeerd door uid (het resultaat van een aanroep naar get_device_uid()) in de toekomst negeren. U moet deze methode implementeren als u ASK_TO_ALLOW_CONNECT = True instelt. Houd er rekening mee dat deze functie onmiddellijk na open() wordt aangeroepen, dus als open() een bepaalde status in de cache opslaat, moet het stuurprogramma die status resetten.
- get_user_blacklisted_devices()[broncode]¶
Geef een overzicht van de apparaat-uid’s en hun gebruiksvriendelijke namen voor alle apparaten die de gebruiker heeft gevraagd te negeren.
- set_user_blacklisted_devices(devices)[broncode]¶
Stel de lijst in met apparaat-uid’s die door dit stuurprogramma moeten worden genegeerd.
- specialize_global_preferences(device_prefs)[broncode]¶
Implementeer deze methode als uw apparaat een bepaalde voorkeur wil overschrijven. U moet ervoor zorgen dat alle call-sites die een voorkeur willen die kan worden overschreven, device_prefs[‘something’] gebruiken in plaats van prefs[‘something’]. Uw methode moet device_prefs.set_overrides(pref=val, pref=val, …) aanroepen. Momenteel gebruikt voor: metadatabeheer (prefs[‘manage_device_metadata’])
- set_library_info(library_name, library_uuid, field_metadata)[broncode]¶
Implementeer deze methode als u informatie wilt over de huidige Calibre-bibliotheek. Deze methode wordt aangeroepen bij het opstarten en wanneer de Calibre-bibliotheek verandert terwijl er verbinding is.
- is_dynamically_controllable()[broncode]¶
Wordt door het apparaatbeheerprogramma aangeroepen bij het starten van plug-ins. Als deze methode een tekenreeks retourneert, dan a) ondersteunt deze de dynamische besturingsinterface van het apparaatbeheerprogramma en b) moet die naam worden gebruikt bij communicatie met de plug-in.
Deze methode kan worden aangeroepen op de GUI-thread. Een driver die deze methode implementeert, moet threadveilig zijn.
- start_plugin()[broncode]¶
Deze methode wordt aangeroepen om de plug-in te starten. De plug-in moet apparaatverbindingen gaan accepteren, ongeacht hoe dat gebeurt. Als de plug-in al verbindingen accepteert, doe dan niets.
Deze methode kan worden aangeroepen op de GUI-thread. Een driver die deze methode implementeert, moet threadveilig zijn.
- stop_plugin()[broncode]¶
Deze methode wordt aangeroepen om de plug-in te stoppen. De plug-in mag dan geen verbindingen meer accepteren en moet zichzelf opschonen. Waarschijnlijk moet deze methode shutdown aanroepen. Als de plug-in al geen verbindingen meer accepteert, hoeft er niets te gebeuren.
Deze methode kan worden aangeroepen op de GUI-thread. Een driver die deze methode implementeert, moet threadveilig zijn.
- get_option(opt_string, default=None)[broncode]¶
Geef de waarde terug van de optie die wordt aangegeven door opt_string. Deze methode kan worden aangeroepen wanneer de plug-in niet is gestart. Geef None terug als de optie niet bestaat.
Deze methode kan worden aangeroepen op de GUI-thread. Een driver die deze methode implementeert, moet threadveilig zijn.
- set_option(opt_string, opt_value)[broncode]¶
Stel de waarde in van de optie die wordt aangegeven door opt_string. Deze methode kan worden aangeroepen wanneer de plug-in niet is gestart.
Deze methode kan worden aangeroepen op de GUI-thread. Een driver die deze methode implementeert, moet threadveilig zijn.
- is_running()[broncode]¶
Geef True terug als de plug-in is gestart, anders false.
Deze methode kan worden aangeroepen op de GUI-thread. Een driver die deze methode implementeert, moet threadveilig zijn.
- synchronize_with_db(db, book_id, book_metadata, first_call)[broncode]¶
Wordt aangeroepen tijdens het matchen van boeken wanneer een boek op het apparaat wordt gematcht met een boek in de database van Calibre. De methode is verantwoordelijk voor het synchroniseren van gegevens van het apparaat naar de database van Calibre (indien nodig).
De methode moet een tuple met twee waarden retourneren. De eerste waarde is een set van Calibre-boek-id’s die zijn gewijzigd als de database van Calibre is gewijzigd, of None als de database niet is gewijzigd. Als de eerste waarde een lege set is, worden de metagegevens voor het boek op het apparaat bijgewerkt met de metagegevens van Calibre en teruggestuurd naar het apparaat, maar wordt de GUI van dat boek niet vernieuwd. Dit is handig wanneer de Calibre-gegevens correct zijn, maar naar het apparaat moeten worden verzonden.
De tweede waarde is zelf een tuple met twee waarden. De eerste waarde in de tuple geeft aan of een boekformaat naar het apparaat moet worden verzonden. Het doel hiervan is om te kunnen controleren of het boek op het apparaat hetzelfde is als het boek in Calibre. Deze waarde moet None zijn als er geen boek wordt verzonden, anders moet de basisbestandsnaam op het apparaat worden geretourneerd (een tekenreeks zoals foobar.epub). Zorg ervoor dat de extensie in de naam wordt opgenomen. Het apparaatsubsysteem maakt een send_books-taak aan voor alle boeken met een teruggegeven waarde die niet None is. Opmerking: behalve om later de extensie op te halen, wordt de naam genegeerd in gevallen waarin het apparaat een sjabloon gebruikt om de bestandsnaam te genereren, wat bij de meeste het geval is. De tweede waarde in de teruggegeven tuple geeft aan of het formaat een toekomstige datum heeft. Geef True terug als dat het geval is, anders False. Calibre toont een dialoogvenster aan de gebruiker met een lijst van alle boeken met een toekomstige datum.
Zeer belangrijk: deze methode wordt aangeroepen op de GUI-thread. Deze moet threadveilig zijn ten opzichte van de thread van de apparaatbeheerder.
book_id: de Calibre-id voor het boek in de database. book_metadata: het metadata-object voor het boek dat afkomstig is van het apparaat. first_call: True als dit de eerste oproep tijdens een synchronisatie is, anders False.
- class calibre.devices.interface.BookList(oncard, prefix, settings)[broncode]¶
Basisklassen:
listEen lijst met boeken. Elk boekobject moet de volgende velden bevatten:
titel
auteurs
grootte (bestandsgrootte van het boek)
datetime (een UTC-tijdtuple)
pad (pad op het apparaat naar het boek)
thumbnail (kan None zijn) thumbnail is ofwel een str/bytes-object met de afbeeldingsgegevens, ofwel moet het een attribuut image_path hebben dat een absoluut (platform-native) pad naar de afbeelding opslaat.
tags (een lijst met strings, kan leeg zijn).
- supports_collections()[broncode]¶
Geef True terug als het apparaat verzamelingen voor deze boekenlijst ondersteunt.
- add_book(book, replace_metadata)[broncode]¶
Voeg het boek toe aan de boekenlijst. Het doel is om alle apparaat-interne metadata te behouden. Retourneer True als boekenlijsten moeten worden gesynchroniseerd.
- remove_book(book)[broncode]¶
Verwijder een boek uit de boekenlijst. Corrigeer tegelijkertijd alle metagegevens van het apparaat.
- get_collections(collection_attributes)[broncode]¶
Geef een woordenboek terug met verzamelingen die zijn gemaakt op basis van collection_attributes. Elke vermelding in het woordenboek heeft de vorm verzamelingsnaam:[lijst met boeken]
De lijst met boeken is gesorteerd op boektitel, behalve voor collecties die zijn samengesteld uit series. In dat geval wordt series_index gebruikt.
- Parameters:
collection_attributes – Een lijst met attributen van het Book-object
USB-apparaten voor massaopslag¶
De basisklasse voor dergelijke apparaten is calibre.devices.usbms.driver.USBMS. Deze klasse erft op zijn beurt een deel van zijn functionaliteit van zijn basisklassen, die hieronder worden beschreven. Een typisch basisstuurprogramma op basis van USBMS ziet er als volgt uit:
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])
- class calibre.devices.usbms.device.Device(plugin_path)[broncode]¶
Basisklassen:
DeviceConfig,DevicePluginDeze klasse biedt logica die gemeenschappelijk is voor alle stuurprogramma’s voor apparaten die zichzelf exporteren als USB-massaopslagapparaten. Biedt implementaties voor het koppelen/uitwerpen van USBMS-apparaten op alle platforms.
- VENDOR_ID = 0¶
VENDOR_ID kan een geheel getal, een lijst met gehele getallen of een woordenboek zijn. Als het een woordenboek is, moet het een woordenboek van woordenboeken zijn, in de vorm:
{ integer_vendor_id : { product_id : [list of BCDs], ... }, ... }
- PRODUCT_ID = 0¶
Een integer of een lijst met integers
- BCD = None¶
BCD kan ofwel None zijn om geen onderscheid te maken tussen apparaten op basis van BCD, ofwel een lijst met de BCD-nummers van alle apparaten die door dit stuurprogramma worden ondersteund.
- WINDOWS_MAIN_MEM = None¶
Tekenreeks die het hoofdgeheugen van het apparaat identificeert in de Windows PnP-id-tekenreeksen. Dit kan None, een tekenreeks, een lijst met tekenreeksen of een gecompileerde regex zijn.
- WINDOWS_CARD_A_MEM = None¶
Tekenreeks die de eerste kaart van het apparaat identificeert in de Windows PnP-id-tekenreeksen. Dit kan None, string, lijst met strings of gecompileerde regex zijn.
- WINDOWS_CARD_B_MEM = None¶
Tekenreeks die de tweede kaart van het apparaat identificeert in de Windows PnP-id-tekenreeksen. Dit kan None, string, lijst met strings of gecompileerde regex zijn.
- OSX_MAIN_MEM_VOL_PAT = None¶
Gebruikt door de nieuwe stuurprogrammadetectie om het hoofdgeheugen te onderscheiden van opslagkaarten. Moet een reguliere expressie zijn die overeenkomt met het door macOS toegewezen koppelpunt van het hoofdgeheugen.
- MAX_PATH_LEN = 250¶
De maximale lengte van paden die op het apparaat worden aangemaakt
- NEWS_IN_FOLDER = True¶
Plaats nieuws in een eigen map
- classmethod model_metadata() tuple[ModelMetadata, ...][broncode]¶
Metadata over alle daadwerkelijke apparaatmodellen die deze driver ondersteunt
- reset(key='-1', log_packets=False, report_progress=None, detected_device=None)[broncode]¶
- Parameters:
key – De sleutel om het apparaat te ontgrendelen
log_packets – Indien waar, wordt de pakketstroom van/naar het apparaat geregistreerd.
report_progress – Functie die wordt aangeroepen met een % progress (getal tussen 0 en 100) voor verschillende taken. Als deze wordt aangeroepen met -1, betekent dit dat de taak geen voortgangsinformatie heeft.
detected_device – Apparaatinformatie van de apparaatscanner
- set_progress_reporter(report_progress)[broncode]¶
Stel een functie in om voortgangsinformatie te rapporteren.
- Parameters:
report_progress – Functie die wordt aangeroepen met een % progress (getal tussen 0 en 100) voor verschillende taken. Als deze wordt aangeroepen met -1, betekent dit dat de taak geen voortgangsinformatie heeft.
- card_prefix(end_session=True)[broncode]¶
Geef een lijst met twee elementen terug met het voorvoegsel van de paden op de kaarten. Als er geen kaart aanwezig is, wordt None ingesteld voor het voorvoegsel van de kaart. Bijvoorbeeld: (‘/place’, ‘/place2’) (None, ‘place2’) (‘place’, None) (None, None)
- total_space(end_session=True)[broncode]¶
- Verkrijg de totale beschikbare ruimte op de koppelpunten:
Hoofdgeheugen
Geheugenkaart A
Geheugenkaart B
- Retouren:
Een lijst met 3 elementen met een totale ruimte in bytes van (1, 2, 3). Als een bepaald apparaat geen van deze locaties heeft, moet het 0 retourneren.
- free_space(end_session=True)[broncode]¶
- Maak vrije ruimte beschikbaar op de koppelpunten:
Hoofdgeheugen
Geheugenkaart A
Geheugenkaart B
- Retouren:
Een lijst met 3 elementen met vrije ruimte in bytes van (1, 2, 3). Als een bepaald apparaat geen van deze locaties heeft, moet het -1 retourneren.
- windows_sort_drives(drives)[broncode]¶
Wordt aangeroepen om het hoofdgeheugen en de opslagkaart te onderscheiden voor apparaten die geen onderscheid maken op basis van WINDOWS_CARD_NAME. Bijvoorbeeld: de EB600.
- can_handle_windows(usbdevice, debug=False)[broncode]¶
Optionele methode om verdere controles uit te voeren op een apparaat om te zien of dit stuurprogramma het kan verwerken. Als dat niet het geval is, moet het False retourneren. Deze methode wordt alleen aangeroepen nadat de leverancier, product-id’s en de bcd overeenkomen, zodat het relatief tijdrovende controles kan uitvoeren. De standaardimplementatie retourneert True. Deze methode wordt alleen aangeroepen op Windows. Zie ook
can_handle().Houd er rekening mee dat voor apparaten op basis van USBMS deze methode standaard wordt gedelegeerd aan
can_handle(). U hoeft dus alleencan_handle()te overschrijven in uw subklasse van USBMS.- Parameters:
usbdevice – Een USB-apparaat zoals geretourneerd door
calibre.devices.winusb.scan_usb_devices()
- open(connected_device, library_uuid)[broncode]¶
Voer alle apparaatspecifieke initialisaties uit. Wordt aangeroepen nadat het apparaat is gedetecteerd, maar vóór andere functies die met het apparaat communiceren. Bijvoorbeeld: voor apparaten die zich presenteren als USB-massaopslagapparaten, is deze methode verantwoordelijk voor het koppelen van het apparaat of, als het apparaat automatisch is gekoppeld, voor het achterhalen waar het is gekoppeld. De methode
calibre.devices.usbms.device.Device.open()heeft een implementatie van deze functie die als een goed voorbeeld voor USB-massaopslagapparaten kan dienen.Deze methode kan een OpenFeedback-uitzondering genereren om een bericht aan de gebruiker weer te geven.
- Parameters:
connected_device – Het apparaat dat we proberen te openen. Het is een tuple van (leverancier-id, product-id, bcd, naam van de fabrikant, productnaam, serienummer van het apparaat). Sommige apparaten hebben echter geen serienummer en in Windows zijn alleen de eerste drie velden aanwezig, de rest is None.
library_uuid – De UUID van de huidige Calibre-bibliotheek. Kan None zijn als er geen bibliotheek is (bijvoorbeeld bij gebruik vanaf de opdrachtregel).
- eject()[broncode]¶
Koppel het apparaat los van het besturingssysteem. Hierbij wordt niet gecontroleerd of er nog GUI-taken in behandeling zijn die met het apparaat moeten communiceren.
OPMERKING: Deze methode mag niet worden aangeroepen op dezelfde thread als de rest van de apparaatmethoden.
- post_yank_cleanup()[broncode]¶
Wordt aangeroepen als de gebruiker het apparaat verwijdert zonder het eerst uit te werpen.
- sanitize_callback(path)[broncode]¶
Callback om individuele apparaatstuurprogramma’s toe te staan de padzuivering die wordt gebruikt door
create_upload_path()te overschrijven.
- filename_callback(default, mi)[broncode]¶
Callback waarmee bestuurders de standaardbestandsnaam kunnen wijzigen die is ingesteld door
create_upload_path().
- sanitize_path_components(components)[broncode]¶
Voer alle apparaatspecifieke opschoning uit op de padcomponenten voor bestanden die naar het apparaat moeten worden geüpload.
- get_annotations(path_map)[broncode]¶
Resolve path_map naar annotation_map van bestanden die op het apparaat zijn gevonden
- add_annotation_to_library(db, db_id, annotation)[broncode]¶
Voeg een annotatie toe aan de Calibre-bibliotheek
- class calibre.devices.usbms.cli.CLI[broncode]¶
- class calibre.devices.usbms.driver.USBMS(plugin_path)[broncode]¶
-
De basisklasse voor alle USBMS-apparaten. Implementeert de logica voor het verzenden/ontvangen/bijwerken van metadata/het cachen van metadata/enz.
- description = 'Communiceer met een e-boek reader.'¶
Een korte tekst die beschrijft wat de plugin doet
- author = 'John Schember'¶
De maker van deze plugin
- supported_platforms = ['windows', 'osx', 'linux']¶
Lijst van platformen waar deze plugin op werkt. Bijvoorbeeld:
['windows', 'osx', 'linux']
- booklist_class¶
alias of
BookList
- book_class¶
alias of
Book
- FORMATS = []¶
Geordende lijst met ondersteunde formaten
- CAN_SET_METADATA = []¶
Of de metadata van boeken via de GUI kan worden ingesteld.
- get_device_information(end_session=True)[broncode]¶
Vraag het apparaat om apparaatinformatie. Zie L{DeviceInfoQuery}.
- Retouren:
(apparaatnaam, apparaatversie, softwareversie op apparaat, MIME-type) De tuple kan optioneel een vijfde element hebben, namelijk een woordenboek met schijfinformatie. Zie usbms.driver voor een voorbeeld.
- set_driveinfo_name(location_code, name)[broncode]¶
Stel de apparaatnaam in het bestand driveinfo in op ‘naam’. Deze instelling blijft behouden totdat het bestand opnieuw wordt aangemaakt of de naam opnieuw wordt gewijzigd.
Niet-schijfapparaten moeten deze methode implementeren op basis van de locatiecodes die worden geretourneerd door de methode get_device_information().
- books(oncard=None, end_session=True)[broncode]¶
Geef een lijst met e-books op het apparaat weer.
- Parameters:
oncard – Als ‘carda’ of ‘cardb’ een lijst met e-books op de specifieke opslagkaart retourneert, retourneer dan anders een lijst met e-books in het hoofdgeheugen van het apparaat. Als een kaart is opgegeven en er geen boeken op de kaart staan, retourneer dan een lege lijst.
- Retouren:
Een boekenlijst.
- upload_books(files, names, on_card=None, end_session=True, metadata=None)[broncode]¶
Upload een lijst met boeken naar het apparaat. Als er al een bestand op het apparaat staat, moet dit worden vervangen. Deze methode moet een
FreeSpaceErrorgenereren als er onvoldoende vrije ruimte op het apparaat is. De tekst van de FreeSpaceError moet het woord “card” bevatten alson_cardniet None is, anders moet het het woord “memory” bevatten.- Parameters:
files – Een lijst met paden
names – Een lijst met bestandsnamen die de boeken moeten hebben nadat ze naar het apparaat zijn geüpload. len(names) == len(files)
metadata – Als het niet None is, is het een lijst met
Metadata-objecten. Het idee is om de metadata te gebruiken om te bepalen waar op het apparaat het boek moet worden geplaatst. len(metadata) == len(files). Naast de reguliere omslag (pad naar omslag) kan er ook een thumbnail-attribuut zijn, dat bij voorkeur moet worden gebruikt. Het thumbnail-attribuut heeft de vorm (breedte, hoogte, cover_data als jpeg).
- Retouren:
Een lijst met 3-elementige tuples. De lijst is bedoeld om te worden doorgegeven aan
add_books_to_metadata().
- upload_cover(path, filename, metadata, filepath)[broncode]¶
Upload de boekomslag naar het apparaat. De standaardimplementatie doet niets.
- Parameters:
path – Het volledige pad naar de map waarin het bijbehorende boek zich bevindt.
filename – De naam van het boek bestand zonder de extensie.
metadata – metadata die bij het boek hoort. Gebruik metadata.thumbnail voor de omslag.
filepath – Het volledige pad naar het e-boekbestand
- add_books_to_metadata(locations, metadata, booklists)[broncode]¶
Voeg locaties toe aan de boekenlijsten. Deze functie mag niet communiceren met het apparaat.
- Parameters:
locations – Resultaat van een oproep naar L{upload_books}
metadata – Lijst met
Metadata-objecten, hetzelfde als voorupload_books().booklists – Een tuple met het resultaat van aanroepen van (
books(oncard=None)(),books(oncard='carda')(), :meth`books(oncard=’cardb’)`).
- delete_books(paths, end_session=True)[broncode]¶
Boeken verwijderen op paden op het apparaat.
- remove_books_from_metadata(paths, booklists)[broncode]¶
Verwijder boeken uit de metadatalijst. Deze functie mag niet communiceren met het apparaat.
- Parameters:
paths – paden naar boeken op het apparaat.
booklists – Een tuple met het resultaat van aanroepen van (
books(oncard=None)(),books(oncard='carda')(), :meth`books(oncard=’cardb’)`).
- sync_booklists(booklists, end_session=True)[broncode]¶
Metadata bijwerken op het apparaat.
- Parameters:
booklists – Een tuple met het resultaat van aanroepen van (
books(oncard=None)(),books(oncard='carda')(), :meth`books(oncard=’cardb’)`).
- classmethod normalize_path(path)[broncode]¶
Retourpad met platform-specifieke padseparatoren
Acties in de gebruikersinterface¶
Als u uw eigen plug-in in een ZIP-bestand toevoegt, moet u zowel InterfaceActionBase als InterfaceAction als subklasse gebruiken. De methode load_actual_plugin() van uw InterfaceActionBase-subklasse moet een geïnstantieerd object van uw InterfaceBase-subklasse retourneren.
- class calibre.gui2.actions.InterfaceAction(parent, site_customization)[broncode]¶
Basisklassen:
QObjectEen plug-in die een “actie” vertegenwoordigt die kan worden uitgevoerd in de grafische gebruikersinterface. Alle items in de werkbalk en contextmenu’s worden geïmplementeerd door deze plug-ins.
Let op: deze klasse is de basisklasse voor deze plug-ins, maar om de plug-in te integreren met het plug-insysteem van Calibre, moet u een wrapperklasse maken die verwijst naar de daadwerkelijke plug-in. Zie de module
calibre.customize.builtinsvoor voorbeelden.Als twee
InterfaceActionobjecten dezelfde naam hebben, krijgt de gene met de hoogste prioriteit voorrang.Subklassen moeten de methoden
genesis(),library_changed(),location_selected(),shutting_down(),initialization_complete()entag_browser_context_action()implementeren.Eenmaal geïnitialiseerd heeft deze plug-in toegang tot de hoofd-GUI van Calibre via het
gui-lid. Je kunt andere plug-ins op naam openen, bijvoorbeeld:self.gui.iactions['Save To Disk']
Om toegang te krijgen tot de eigenlijke plug-in, gebruikt u het
interface_action_base_plugin-attribuut. Dit attribuut is pas beschikbaar nadat de plug-in is geïnitialiseerd. Handig als u methoden uit de plug-in-klasse wilt gebruiken, zoals do_user_config().De QAction gespecificeerd door
action_specwordt automatisch aangemaakt en beschikbaar gesteld alsself.qaction.- name = 'Implement me'¶
De naam van de plug-in. Als er twee plug-ins met dezelfde naam aanwezig zijn, krijgt degene met de hoogste prioriteit voorrang.
- priority = 1¶
De prioriteit van de plug-in. Als er twee plug-ins met dezelfde naam aanwezig zijn, krijgt degene met de hoogste prioriteit voorrang.
- popup_type = 1¶
Het type pop-upmenu voor wanneer deze plug-in aan een werkbalk wordt toegevoegd
- auto_repeat = False¶
Of deze actie moet worden herhaald als de snelkoppeling-toets wordt ingedrukt.
- action_spec = ('text', 'icon', None, None)¶
Van het formaat: (tekst, pictogram_pad, tooltip, sneltoets). Pictogram, tooltip en sneltoets kunnen None zijn. De sneltoets moet een tekenreeks, None of een tuple van sneltoetsen zijn. Als None, wordt er geen sneltoets geregistreerd die overeenkomt met de actie. Als u een lege tuple doorgeeft, wordt de sneltoets geregistreerd zonder standaardtoetscombinatie.
- action_shortcut_name = None¶
Indien niet None, gebruikt voor de naam die aan de gebruiker wordt getoond bij het aanpassen van de sneltoetsen voor de bovenstaande actiespecificatie in plaats van action_spec[0].
Indien waar, wordt automatisch een menu gemaakt en toegevoegd aan self.qaction
Als True, wordt een kloon van self.qaction toegevoegd aan het menu van self.qaction Als u wilt dat de tekst van deze actie verschilt van die van self.qaction, stel deze variabele dan in op de nieuwe tekst
- dont_add_to = frozenset({})¶
Set van locaties waaraan deze actie niet mag worden toegevoegd. Zie
all_locationsvoor een lijst met mogelijke locaties.
- dont_remove_from = frozenset({})¶
Set van locaties waaruit deze actie niet mag worden verwijderd. Zie
all_locationsvoor een lijst met mogelijke locaties.
- action_type = 'global'¶
Type actie ‘huidig’ betekent acties op de huidige weergave ‘globaal’ betekent een actie die niet op de huidige weergave wordt uitgevoerd, maar op Calibre als geheel
- accepts_drops = False¶
Als True, dan heeft deze InterfaceAction de mogelijkheid om te reageren op drag-and-drop-gebeurtenissen. Zie de methoden
accept_enter_event(),accept_drag_move_event()endrop_event()voor meer informatie.
- accept_enter_event(event, mime_data)[broncode]¶
Deze methode moet True retourneren als deze interface-actie de sleepgebeurtenis kan verwerken. Roep accept/ignore niet aan voor de gebeurtenis, dat wordt afgehandeld door de Calibre-gebruikersinterface.
- accept_drag_move_event(event, mime_data)[broncode]¶
Deze methode moet True retourneren als deze interface-actie de sleepgebeurtenis kan verwerken. Roep accept/ignore niet aan voor de gebeurtenis, dat wordt afgehandeld door de Calibre-gebruikersinterface.
- drop_event(event, mime_data)[broncode]¶
Deze methode moet een nuttige actie uitvoeren en True retourneren als deze interface-actie de drop-gebeurtenis kan verwerken. Roep accept/ignore niet aan voor de gebeurtenis, dat wordt afgehandeld door de Calibre-gebruikersinterface. Voer geen blokkerende/langdurige bewerkingen uit in deze functie. Geef in plaats daarvan een signaal af of gebruik QTimer.singleShot en keer snel terug. Zie de ingebouwde acties voor voorbeelden.
Handige methode om eenvoudig acties toe te voegen aan een QMenu. Geeft de aangemaakte QAction terug. Deze actie heeft één extra attribuut, calibre_shortcut_unique_name, dat, indien niet None, verwijst naar de unieke naam waaronder deze actie is geregistreerd bij de toetsenbordmanager.
- Parameters:
menu – The QMenu de nieuw gemaakte actie zal worden toegevoegd aan
unique_name – Een unieke naam voor deze actie. Deze moet wereldwijd uniek zijn, dus maak hem zo beschrijvend mogelijk. Voeg bij twijfel een UUID toe.
text – De tekst van de actie.
icon – Een QIcon of een bestandsnaam. De bestandsnaam wordt doorgegeven aan de ingebouwde functie QIcon.ic(), zodat u niet het volledige pad naar de map met afbeeldingen hoeft door te geven.
shortcut – Een tekenreeks, een lijst met tekenreeksen, None of False. Als False, wordt er geen sneltoets geregistreerd voor deze actie. Als None, wordt er een sneltoets zonder standaardtoetscombinatie geregistreerd. Tekenreeksen en lijsten met tekenreeksen registreren een sneltoets met de opgegeven standaardtoetscombinatie.
description – Een beschrijving voor deze actie. Gebruikt om tooltips in te stellen.
triggered – Een callable die is gekoppeld aan het geactiveerde signaal van de gecreëerde actie.
shortcut_name – De tekst die aan de gebruiker wordt getoond bij het aanpassen van de sneltoetsen voor deze actie. Standaard is deze ingesteld op de waarde van
text.persist_shortcut – Sneltoetsen voor acties die niet altijd worden weergegeven of afhankelijk zijn van de bibliotheek, kunnen verdwijnen wanneer andere sneltoetsen worden bewerkt, tenzij
`persist_shortcut`is ingesteld op True.
- load_resources(names)[broncode]¶
Als deze plug-in in een ZIP-bestand wordt geleverd (door de gebruiker toegevoegde plug-in), kunt u met deze methode bronnen uit het ZIP-bestand laden.
Bijvoorbeeld om een afbeelding te laden:
pixmap = QPixmap() pixmap.loadFromData(tuple(self.load_resources(['images/icon.png']).values())[0]) icon = QIcon(pixmap)
- Parameters:
names – Lijst met paden naar bronnen in het ZIP-bestand met / als scheidingsteken
- Retouren:
Een woordenboek in de vorm
{naam : bestandsinhoud}. Namen die niet in het ZIP-bestand zijn gevonden, komen niet voor in het woordenboek.
- genesis()[broncode]¶
Stel deze plug-in in. Wordt slechts één keer aangeroepen tijdens initialisatie. self.gui is beschikbaar. De actie gespecificeerd door
action_specis beschikbaar alsself.qaction.
- location_selected(loc)[broncode]¶
Wordt aangeroepen wanneer de boekenlijst die in Calibre wordt weergegeven, verandert. Momenteel zijn de waarden voor loc:
library, main, card en cardb.Deze methode moet deze actie en de bijbehorende subacties in- of uitschakelen, afhankelijk van de locatie.
- library_about_to_change(olddb, db)[broncode]¶
Aangeroepen elke keer wanneer de huidige bibliotheek wijzigt.
- Parameters:
olddb – De LibraryDatabase die overeenkomt met de vorige bibliotheek.
db – De LibraryDatabase die overeenkomt met de nieuwe bibliotheek.
- library_changed(db)[broncode]¶
Aangeroepen elke keer wanneer de huidige bibliotheek wijzigt.
- Parameters:
db – De LibraryDatabase die overeenkomt met de huidige bibliotheek.
- gui_layout_complete()[broncode]¶
Wordt één keer per actie aangeroepen wanneer de lay-out van de hoofd-GUI voltooid is. Als uw actie wijzigingen in de lay-out moet aanbrengen, moeten deze hier worden uitgevoerd, in plaats van in
initialization_complete().
- initialization_complete()[broncode]¶
Wordt één keer per actie aangeroepen wanneer de initialisatie van de hoofd-GUI is voltooid.
- tag_browser_context_action(index)[broncode]¶
Wordt aangeroepen bij het weergeven van het contextmenu in de tagbrowser.
indexis de QModelIndex die verwijst naar het tagbrowseritem waarop met de rechtermuisknop is geklikt. Test de geldigheid ervan met index.valid() en haal het onderliggende TagTreeItem-object op met index.data(Qt.ItemDataRole.UserRole). Alle actieobjecten die door deze methode worden opgeleverd, worden toegevoegd aan het contextmenu.
- shutting_down()[broncode]¶
Wordt één keer per plug-in aangeroepen wanneer de hoofd-GUI wordt afgesloten. Geef alle gebruikte bronnen vrij, maar probeer het afsluiten niet te lang te blokkeren.
- class calibre.customize.InterfaceActionBase(*args, **kwargs)[broncode]¶
Basisklassen:
Plugin- supported_platforms = ['windows', 'osx', 'linux']¶
Lijst van platformen waar deze plugin op werkt. Bijvoorbeeld:
['windows', 'osx', 'linux']
- author = 'Kovid Goyal'¶
De maker van deze plugin
- type = 'Gebruikersinterface actie'¶
Het type van deze plug-in. Wordt gebruikt voor het categoriseren van plug-ins in de GUI.
- can_be_disabled = False¶
Als False, kan de gebruiker deze plug-in niet uitschakelen. Gebruik met zorg.
- load_actual_plugin(gui)[broncode]¶
Deze methode moet het daadwerkelijke interface-actiepluginobject retourneren.
Voorkeuren plug-ins¶
- class calibre.customize.PreferencesPlugin(plugin_path)[broncode]¶
Basisklassen:
PluginEen plug-in die een widget vertegenwoordigt die wordt weergegeven in het dialoogvenster Voorkeuren.
Deze plug-in heeft slechts één belangrijke methode: meth:create_widget. De verschillende velden van de plug-in bepalen hoe deze in de gebruikersinterface wordt gecategoriseerd.
- supported_platforms = ['windows', 'osx', 'linux']¶
Lijst van platformen waar deze plugin op werkt. Bijvoorbeeld:
['windows', 'osx', 'linux']
- author = 'Kovid Goyal'¶
De maker van deze plugin
- type = 'Voorkeuren'¶
Het type van deze plug-in. Wordt gebruikt voor het categoriseren van plug-ins in de GUI.
- can_be_disabled = False¶
Als False, kan de gebruiker deze plug-in niet uitschakelen. Gebruik met zorg.
- config_widget = None¶
Importpad naar module die een klasse met de naam ConfigWidget bevat, die de ConfigWidgetInterface implementeert. Gebruikt door
create_widget().
- category_order = 100¶
Waar in de lijst met categorieën de
categorievan deze plug-in moet staan.
- name_order = 100¶
Waar in de lijst met namen in een categorie moet de
gui_namevan deze plug-in staan?
- category = None¶
De categorie waarin deze plug-in moet worden geplaatst
- gui_category = None¶
De categorienaam die aan de gebruiker wordt getoond voor deze plug-in
- gui_name = None¶
De naam die aan de gebruiker wordt getoond voor deze plug-in
- icon = None¶
Het pictogram voor deze plug-in moet een absoluut pad zijn.
- description = None¶
De beschrijving die wordt gebruikt voor tooltips en dergelijke
- create_widget(parent=None)[broncode]¶
Maak en retourneer de daadwerkelijke Qt-widget die wordt gebruikt voor het instellen van deze groep voorkeuren. De widget moet de
calibre.gui2.preferences.ConfigWidgetInterfaceimplementeren.De standaardimplementatie gebruikt
config_widgetom de widget te instantiëren.
- class calibre.gui2.preferences.ConfigWidgetInterface[broncode]¶
Deze klasse definieert de interface die alle widgets die in het dialoogvenster Voorkeuren worden weergegeven, moeten implementeren. Zie
ConfigWidgetBasevoor een basisklasse die deze interface implementeert en ook verschillende handige methoden definieert.- changed_signal = None¶
Dit signaal moet worden verzonden telkens wanneer de gebruiker een waarde in deze widget wijzigt.
- supports_restoring_to_defaults = True¶
Stel in op True als de methode
restore_to_defaults()is geïmplementeerd.
- restore_defaults_desc = 'Standaardinstellingen terugzetten. U moet op ‘Toepassen’ klikken om de standaardinstellingen daadwerkelijk terug te zetten.'¶
De tooltip voor de knop ‘Standaardinstellingen herstellen’
- restart_critical = False¶
Als True, zal het dialoogvenster Voorkeuren de gebruiker niet toestaan om nog meer voorkeuren in te stellen. Heeft alleen effect als
commit()True retourneert.
- genesis(gui)[broncode]¶
Wordt één keer aangeroepen voordat de widget wordt weergegeven en moet alle noodzakelijke instellingen uitvoeren.
- Parameters:
gui – De grafische gebruikersinterface van het hoofdkaliber
- initialize()[broncode]¶
Moet alle configuratiewaarden instellen op hun oorspronkelijke waarden (de waarden die zijn opgeslagen in de configuratiebestanden). Een “return”-instructie is optioneel. Retourneer False als het dialoogvenster niet moet worden weergegeven.
- restore_defaults()[broncode]¶
Alle configuratiewaarden moeten worden ingesteld op hun standaardwaarden.
- commit()[broncode]¶
Sla alle gewijzigde instellingen op. Geef True terug als de wijzigingen een herstart vereisen, anders False. Genereer een
AbortCommit-uitzondering om aan te geven dat er een fout is opgetreden. U bent verantwoordelijk voor het geven van feedback aan de gebruiker over wat de fout is en hoe deze kan worden gecorrigeerd.
- refresh_gui(gui)[broncode]¶
Wordt één keer aangeroepen nadat deze widget is vastgelegd. Zorgt ervoor dat de GUI alle gewijzigde instellingen opnieuw leest. Houd er rekening mee dat de GUI standaard verschillende elementen opnieuw initialiseert, dus de meeste widgets hoeven deze methode niet te gebruiken.
- initial_tab_changed()[broncode]¶
Wordt aangeroepen als het aanvankelijk weergegeven tabblad wordt gewijzigd voordat de widget wordt weergegeven, maar nadat deze is geïnitialiseerd.
- class calibre.gui2.preferences.ConfigWidgetBase(parent=None)[broncode]¶
Basisklasse die code bevat om eenvoudig standaardconfiguratiewidgets toe te voegen, zoals selectievakjes, keuzelijsten, tekstvelden enzovoort. Zie de methode
register().Deze klasse verwerkt automatisch wijzigingsmeldingen, het terugzetten naar de standaardinstellingen, de vertaling tussen GUI-objecten en configuratieobjecten, enz. voor geregistreerde instellingen.
Als uw configuratiewidget van deze klasse erft, maar instellingen bevat die niet zijn geregistreerd, moet u de
ConfigWidgetInterface-methoden overschrijven en de basisklasse-methoden binnen de overschrijvingen aanroepen.- changed_signal¶
Dit signaal moet worden verzonden telkens wanneer de gebruiker een waarde in deze widget wijzigt.
- supports_restoring_to_defaults = True¶
Stel in op True als de methode
restore_to_defaults()is geïmplementeerd.
- restart_critical = False¶
Als True, zal het dialoogvenster Voorkeuren de gebruiker niet toestaan om nog meer voorkeuren in te stellen. Heeft alleen effect als
commit()True retourneert.
- register(name, config_obj, gui_name=None, choices=None, restart_required=False, empty_string_is_None=True, setting=<class 'calibre.gui2.preferences.Setting'>)[broncode]¶
Een instelling registreren.
- Parameters:
name – De instelling naam
config_obj – Het config-object dat de instelling leest/schrijft
gui_name – De naam van het GUI-object dat een interface biedt om de instelling te wijzigen. Standaard wordt aangenomen dat dit
'opt_' + naamis.choices – Als deze instelling een instelling op basis van meerdere keuzes (combobox) is, de lijst met keuzes. De lijst is een lijst met twee elementen in de vorm:
[(gui name, value), ...]setting – De klasse die verantwoordelijk is voor het beheer van deze instelling. De standaardklasse behandelt bijna alle gevallen, dus deze parameter wordt zelden gebruikt.
- initialize()[broncode]¶
Moet alle configuratiewaarden instellen op hun oorspronkelijke waarden (de waarden die zijn opgeslagen in de configuratiebestanden). Een “return”-instructie is optioneel. Retourneer False als het dialoogvenster niet moet worden weergegeven.
- commit(*args)[broncode]¶
Sla alle gewijzigde instellingen op. Geef True terug als de wijzigingen een herstart vereisen, anders False. Genereer een
AbortCommit-uitzondering om aan te geven dat er een fout is opgetreden. U bent verantwoordelijk voor het geven van feedback aan de gebruiker over wat de fout is en hoe deze kan worden gecorrigeerd.
- restore_defaults(*args)[broncode]¶
Alle configuratiewaarden moeten worden ingesteld op hun standaardwaarden.
