Dokumentace API pro moduly¶
Definuje různé abstraktní základní třídy, které mohou být podtřídami pro vytvoření výkonných modulů. Užitečné třídy jsou:
Modul¶
- class calibre.customize.Plugin(plugin_path)[zdroj]¶
Modul calibre. Mezi užitečné členy patří:
self.installation_type: Ukládá způsob, jakým byl modul nainstalován.self.plugin_path: Ukládá cestu k souboru ZIP, který obsahujetento modul, nebo None, pokud jde o vestavěný modul
self.site_customization: Ukládá řetězec přizpůsobení zadanýuživatelem.
Metody, které by měly být přepsány v podtřídách:
Užitečné metody:
__enter__()
- supported_platforms = []¶
Seznam platforem, na kterých tento modul funguje. Například:
['windows', 'osx', 'linux']
- name = 'Trivial Plugin'¶
Název tohoto modulu. Aby fungoval, musíte ho nastavit na něco jiného než Trivial Plugin.
- version = (1, 0, 0)¶
Verze tohoto modulu jako trojice (hlavní, vedlejší, revize)
- description = 'Nedělá vůbec nic'¶
Krátký řetězec popisující, co tento modul dělá
- author = 'Neznámý'¶
Autor modulu
- priority = 1¶
Pokud pro typ souboru existuje více než jeden modul, moduly se spouštějí v pořadí podle klesající priority. Moduly s vyšší prioritou se spustí jako první. Nejvyšší možná priorita je
sys.maxsize. Výchozí priorita je 1.
- minimum_calibre_version = (0, 4, 118)¶
Nejstarší verze calibre, kterou tento modul vyžaduje
- installation_type = None¶
Způsob, jakým je tento modul nainstalován
- can_be_disabled = True¶
Pokud je False, uživatel nebude moci tento modul zakázat. Používejte opatrně.
- type = 'Základ'¶
Typ tohoto modulu. Používá se ke kategorizaci modulů v grafickém rozhraní
- initialize()[zdroj]¶
Volá se jednou při inicializaci modulů calibre. Moduly se znovu inicializují pokaždé, když je přidán nový modul. Pamatujte také, že pokud je modul spuštěn v pracovním procesu, například při přidávání knih, bude modul inicializován pro každý nový pracovní proces.
Zde proveďte jakoukoli inicializaci specifickou pro modul, například extrakci zdrojů ze souboru ZIP modulu. Cesta k souboru ZIP je dostupná jako
self.plugin_path.Pamatujte, že
self.site_customizationv tomto okamžiku není dostupné.
- config_widget()[zdroj]¶
Implementujte tuto metodu a
save_settings()ve svém modulu, pokud chcete použít vlastní konfigurační dialog místo spoléhání na jednoduché výchozí přizpůsobení založené na řetězci.Tato metoda, pokud je implementována, musí vrátit QWidget. Widget může mít volitelnou metodu validate(), která nepřijímá žádné argumenty a je volána okamžitě poté, co uživatel klikne na OK. Změny se použijí právě tehdy, když metoda vrátí True.
Pokud z nějakého důvodu nemůžete konfiguraci v tuto chvíli provést, vraťte dvojici dvou řetězců (zpráva, podrobnosti). Ty se uživateli zobrazí jako dialogové okno s varováním a proces bude přerušen.
- save_settings(config_widget)[zdroj]¶
Uloží nastavení určená uživatelem pomocí config_widget.
- Parametry:
config_widget – Widget vrácený metodou
config_widget().
- do_user_config(parent=None)[zdroj]¶
Tato metoda zobrazí konfigurační dialog pro tento modul. Vrátí True, pokud uživatel klikne na OK, jinak False. Změny se použijí automaticky.
- load_resources(names)[zdroj]¶
Pokud je tento modul dodán v souboru ZIP (modul přidaný uživatelem), tato metoda vám umožní načíst zdroje ze souboru ZIP.
Například pro načtení obrázku:
pixmap = QPixmap() pixmap.loadFromData(self.load_resources(['images/icon.png'])['images/icon.png']) icon = QIcon(pixmap)
- Parametry:
names – Seznam cest ke zdrojům v souboru ZIP s použitím / jako oddělovače
- Vrací:
Slovník ve tvaru
{name: file_contents}. Jakékoli názvy, které nebyly v souboru ZIP nalezeny, nebudou ve slovníku přítomny.
- customization_help(gui=False)[zdroj]¶
Vrátí řetězec s nápovědou, jak tento modul přizpůsobit. Ve výchozím nastavení vyvolá
NotImplementedError, což označuje, že modul nevyžaduje přizpůsobení.Pokud tuto metodu znovu implementujete ve své podtřídě, uživatel bude vyzván k zadání řetězce jako přizpůsobení tohoto modulu. Řetězec přizpůsobení bude dostupný jako
self.site_customization.Přizpůsobení instalace může být cokoli, například cesta k potřebnému binárnímu souboru v počítači uživatele.
- Parametry:
gui – Pokud je True, vrátí nápovědu ve formátu HTML, jinak vrátí nápovědu jako prostý text.
- temporary_file(suffix)[zdroj]¶
Vrátí objekt podobný souboru, který je dočasným souborem v souborovém systému. Tento soubor zůstane dostupný i po zavření a bude odstraněn až při ukončení interpretu. K úplné cestě k vytvořenému dočasnému souboru se dostanete pomocí členu
namevráceného objektu.- Parametry:
suffix – Přípona, kterou bude dočasný soubor mít.
FileTypePlugin¶
- class calibre.customize.FileTypePlugin(plugin_path)[zdroj]¶
Bases:
PluginModul, který je přidružen ke konkrétní sadě typů souborů.
- file_types = {}¶
Sada typů souborů, pro které se má tento modul spustit. Pro všechny typy souborů použijte ‚*‘. Například:
{'lit', 'mobi', 'prc'}
- on_import = False¶
Pokud je True, tento modul se spustí při přidání knih do databáze
- on_postimport = False¶
Pokud je True, tento modul se spustí po přidání knih do databáze. V takovém případě jsou volány metody modulu postimport a postadd.
- on_postconvert = False¶
Pokud je True, spustí se tento modul po převodu knihy. V takovém případě se volá metoda modulu postconvert.
- on_postdelete = False¶
Pokud je True, tento modul se spustí po odstranění souboru knihy z databáze. V takovém případě se volá metoda modulu postdelete.
- on_preprocess = False¶
Pokud je True, tento modul se spustí těsně před převodem
- on_postprocess = False¶
Pokud je True, tento modul se spustí po převodu na konečném souboru vytvořeném výstupním modulem převodu.
- type = 'Typ souboru'¶
Typ tohoto modulu. Používá se ke kategorizaci modulů v grafickém rozhraní
- run(path_to_ebook)[zdroj]¶
Spustí modul. Musí být implementována v podtřídách. Měla by provést všechny požadované úpravy e-knihy a vrátit absolutní cestu k upravené e-knize. Pokud nejsou potřeba žádné úpravy, měla by vrátit cestu k původní e-knize. Pokud dojde k chybě, měla by vyvolat Exception. Výchozí implementace jednoduše vrátí cestu k původní e-knize. Pamatujte, že cesta k původnímu souboru (před spuštěním jakýchkoli modulů typů souborů) je dostupná jako self.original_path_to_file.
Upravený soubor e-knihy by měl být vytvořen metodou
temporary_file().- Parametry:
path_to_ebook – Absolutní cesta k e-knize.
- Vrací:
Absolutní cesta k upravené e-knize.
- postimport(book_id, book_format, db)[zdroj]¶
Volá se po importu, tj. poté, co byl soubor knihy přidán do databáze. Pamatujte, že se liší od
postadd(), která se volá při prvním vytvoření záznamu knihy. Tato metoda se volá pokaždé, když je do záznamu knihy přidán nový soubor. Je užitečná pro úpravu záznamu knihy na základě obsahu nově přidaného souboru.- Parametry:
book_id – Databázové id přidané knihy.
book_format – Typ souboru knihy, která byla přidána.
db – Databáze knihovny.
- postconvert(book_id, book_format, db)[zdroj]¶
Volá se po převodu, tj. poté, co byl výstupní soubor knihy z převodu přidán do databáze. Pamatujte, že se spouští pouze po převodu, nikoli po přidání knihy. Je užitečná pro úpravu záznamu knihy na základě obsahu nově přidaného souboru.
- Parametry:
book_id – Databázové id přidané knihy.
book_format – Typ souboru knihy, která byla přidána.
db – Databáze knihovny.
- postdelete(book_id, book_format, db)[zdroj]¶
Volá se po odstranění, tj. poté, co byl soubor knihy odstraněn z databáze. Pamatujte, že se nespouští při odstranění záznamu knihy, ale pouze při odstranění jednoho nebo více formátů z knihy. Je užitečná pro úpravu záznamu knihy na základě formátu odstraněného souboru.
- Parametry:
book_id – Databázové id přidané knihy.
book_format – Typ souboru knihy, která byla přidána.
db – Databáze knihovny.
- postadd(book_id, fmt_map, db)[zdroj]¶
Volá se po přidání, tj. poté, co byla kniha přidána do db. Pamatujte, že se liší od
postimport(), která se volá po přidání jednoho souboru knihy ke knize. postadd() se volá pouze při prvním vytvoření celého záznamu knihy, který může obsahovat více než jeden soubor knihy. To je užitečné, pokud chcete upravit záznam knihy v databázi při prvním přidání knihy do calibre.- Parametry:
book_id – Databázové id přidané knihy.
fmt_map – Mapa formátu souboru na cestu, ze které byl formát souboru přidán. Pamatujte, že může, ale nemusí ukazovat na skutečný existující soubor, protože soubory se někdy přidávají jako proudy. V takovém případě může jít o zástupnou hodnotu nebo neexistující cestu.
db – Databáze knihovny
Moduly metadat¶
- class calibre.customize.MetadataReaderPlugin(*args, **kwargs)[zdroj]¶
Bases:
PluginModul, který implementuje čtení metadat ze sady typů souborů.
- file_types = {}¶
Sada typů souborů, pro které se má tento modul spustit. Například:
set(['lit', 'mobi', 'prc'])
- supported_platforms = ['windows', 'osx', 'linux']¶
Seznam platforem, na kterých tento modul funguje. Například:
['windows', 'osx', 'linux']
- version = (9, 11, 0)¶
Verze tohoto modulu jako trojice (hlavní, vedlejší, revize)
- author = 'Kovid Goyal'¶
Autor modulu
- type = 'Čtení metadat'¶
Typ tohoto modulu. Používá se ke kategorizaci modulů v grafickém rozhraní
- get_metadata(stream, type)[zdroj]¶
Vrátí metadata souboru reprezentovaného proudem stream (objektem podobným souboru, který podporuje čtení). Pokud dojde k chybě ve vstupních datech, vyvolá výjimku.
- Parametry:
type – Typ souboru. Je zaručeno, že jde o jednu z položek v
file_types.- Vrací:
Objekt
calibre.ebooks.metadata.book.Metadata
- class calibre.customize.MetadataWriterPlugin(*args, **kwargs)[zdroj]¶
Bases:
PluginModul, který implementuje čtení metadat ze sady typů souborů.
- file_types = {}¶
Sada typů souborů, pro které se má tento modul spustit. Například:
set(['lit', 'mobi', 'prc'])
- supported_platforms = ['windows', 'osx', 'linux']¶
Seznam platforem, na kterých tento modul funguje. Například:
['windows', 'osx', 'linux']
- version = (9, 11, 0)¶
Verze tohoto modulu jako trojice (hlavní, vedlejší, revize)
- author = 'Kovid Goyal'¶
Autor modulu
- type = 'Zápis metadat'¶
Typ tohoto modulu. Používá se ke kategorizaci modulů v grafickém rozhraní
- set_metadata(stream, mi, type)[zdroj]¶
Nastaví metadata souboru reprezentovaného proudem stream (objektem podobným souboru, který podporuje čtení). Pokud dojde k chybě ve vstupních datech, vyvolá výjimku.
- Parametry:
type – Typ souboru. Je zaručeno, že jde o jednu z položek v
file_types.mi – Objekt
calibre.ebooks.metadata.book.Metadata
Moduly katalogu¶
- class calibre.customize.CatalogPlugin(plugin_path)[zdroj]¶
Bases:
PluginModul, který implementuje generátor katalogu.
- file_types = {}¶
Výstupní typ souboru, pro který se má tento modul spustit. Například: ‚epub‘ nebo ‚xml‘
- type = 'Generátor katalogu'¶
Typ tohoto modulu. Používá se ke kategorizaci modulů v grafickém rozhraní
- cli_options = []¶
Volby parseru CLI specifické pro tento modul, deklarované jako namedtuple Option:
from collections import namedtuple Option = namedtuple(‚Option‘, ‚option, default, dest, help‘) cli_options = [Option(‘–catalog-title‘, default = ‚My Catalog‘, dest = ‚catalog_title‘, help = (_(‚Title of generated catalog. nDefault:‘) + „ ‚“ + ‚%default‘ + „‘“))] cli_options parsed in calibre.db.cli.cmd_catalog:option_parser()
- initialize()[zdroj]¶
Pokud modul není vestavěný, zkopírují se soubory .ui a .py modulu ze souboru ZIP do $TMPDIR. Karta bude dynamicky vygenerována a přidána do dialogového okna Volby katalogu v calibre.gui2.dialogs.catalog.py:Catalog
- run(path_to_output, opts, db, ids, notification=None)[zdroj]¶
Spustí modul. Musí být implementována v podtřídách. Měla by vygenerovat katalog ve formátu určeném v file_types a vrátit absolutní cestu k vygenerovanému souboru katalogu. Pokud dojde k chybě, měla by vyvolat Exception.
Vygenerovaný soubor katalogu by měl být vytvořen metodou
temporary_file().- Parametry:
path_to_output – Absolutní cesta k vygenerovanému souboru katalogu.
opts – Slovník klíčových argumentů
db – Objekt LibraryDatabase2
Moduly stahování metadat¶
- class calibre.ebooks.metadata.sources.base.Source(*args, **kwargs)[zdroj]¶
Bases:
Plugin- type = 'Zdroj metadat'¶
Typ tohoto modulu. Používá se ke kategorizaci modulů v grafickém rozhraní
- author = 'Kovid Goyal'¶
Autor modulu
- supported_platforms = ['windows', 'osx', 'linux']¶
Seznam platforem, na kterých tento modul funguje. Například:
['windows', 'osx', 'linux']
- capabilities = frozenset({})¶
Sada schopností podporovaných tímto modulem. Užitečné schopnosti jsou: ‚identify‘, ‚cover‘
- touched_fields = frozenset({})¶
Seznam polí metadat, která tento modul může potenciálně stáhnout během identifikační fáze
- has_html_comments = False¶
Nastavte na True, pokud váš modul vrací komentáře formátované jako HTML
- supports_gzip_transfer_encoding = False¶
Nastavení na True znamená, že objekt prohlížeče oznámí podporu přenosového kódování gzip. To může zrychlit stahování, ale nejdříve se ujistěte, že zdroj přenosové kódování gzip skutečně správně podporuje
- ignore_ssl_errors = False¶
Nastavte na True, chcete-li při připojování k tomuto zdroji ignorovat chyby certifikátu HTTPS.
- cached_cover_url_is_reliable = True¶
URL obálek v mezipaměti mohou být někdy nespolehlivé (tj. stahování může selhat nebo vrácený obrázek může být chybný). Pokud se to u tohoto zdroje stává často, nastavte na False
- options = ()¶
Seznam objektů
Option. Použijí se k automatickému sestavení konfiguračního widgetu pro tento modul
- config_help_message = None¶
Řetězec, který se zobrazí v horní části konfiguračního widgetu pro tento modul
- can_get_multiple_covers = False¶
Pokud je True, tento zdroj může pro daný dotaz vrátit více obálek
- auto_trim_covers = False¶
Pokud je nastaveno na True, obálky stažené tímto modulem se automaticky oříznou.
- prefer_results_with_isbn = True¶
Pokud je nastaveno na True a tento zdroj vrátí pro dotaz více výsledků, z nichž některé mají ISBN a některé ne, výsledky bez ISBN budou ignorovány
- is_configured()[zdroj]¶
Vrátí False, pokud je modul před použitím potřeba nakonfigurovat. Může například vyžadovat uživatelské jméno, heslo nebo klíč API.
- customization_help()[zdroj]¶
Vrátí řetězec s nápovědou, jak tento modul přizpůsobit. Ve výchozím nastavení vyvolá
NotImplementedError, což označuje, že modul nevyžaduje přizpůsobení.Pokud tuto metodu znovu implementujete ve své podtřídě, uživatel bude vyzván k zadání řetězce jako přizpůsobení tohoto modulu. Řetězec přizpůsobení bude dostupný jako
self.site_customization.Přizpůsobení instalace může být cokoli, například cesta k potřebnému binárnímu souboru v počítači uživatele.
- Parametry:
gui – Pokud je True, vrátí nápovědu ve formátu HTML, jinak vrátí nápovědu jako prostý text.
- config_widget()[zdroj]¶
Implementujte tuto metodu a
save_settings()ve svém modulu, pokud chcete použít vlastní konfigurační dialog místo spoléhání na jednoduché výchozí přizpůsobení založené na řetězci.Tato metoda, pokud je implementována, musí vrátit QWidget. Widget může mít volitelnou metodu validate(), která nepřijímá žádné argumenty a je volána okamžitě poté, co uživatel klikne na OK. Změny se použijí právě tehdy, když metoda vrátí True.
Pokud z nějakého důvodu nemůžete konfiguraci v tuto chvíli provést, vraťte dvojici dvou řetězců (zpráva, podrobnosti). Ty se uživateli zobrazí jako dialogové okno s varováním a proces bude přerušen.
- save_settings(config_widget)[zdroj]¶
Uloží nastavení určená uživatelem pomocí config_widget.
- Parametry:
config_widget – Widget vrácený metodou
config_widget().
- get_author_tokens(authors, only_first_author=True)[zdroj]¶
Přijme seznam autorů a vrátí seznam tokenů užitečných pro vyhledávací dotaz AND. Tato funkce se pokouší vrátit tokeny v pořadí jméno, prostřední jména, příjmení, přičemž předpokládá, že pokud je ve jméně autora čárka, je jméno ve tvaru příjmení, ostatní jména.
- get_title_tokens(title, strip_joiners=True, strip_subtitle=False)[zdroj]¶
Přijme název a vrátí seznam tokenů užitečných pro vyhledávací dotaz AND. Vyloučí spojovací slova (volitelně) a interpunkci.
- clean_downloaded_metadata(mi)[zdroj]¶
Volejte tuto metodu v metodě identify svého modulu, aby se metadata normalizovala před vložením objektu Metadata do result_queue. Samozřejmě můžete použít vlastní algoritmus vhodný pro váš zdroj metadat.
- get_book_url(identifiers)[zdroj]¶
Vrátí trojici nebo None. Trojice má tvar: (identifier_type, identifier_value, URL). URL je URL knihy identifikované pomocí identifiers v tomto zdroji. identifier_type a identifier_value určují identifikátor odpovídající dané URL. Tato URL musí být přístupná člověku v prohlížeči. Má uživateli poskytnout klikatelný odkaz, aby mohl snadno navštívit stránku knihy v tomto zdroji. Pokud se žádná URL nenajde, vrátí None. Tato metoda musí být rychlá a konzistentní, proto ji implementujte pouze tehdy, pokud je možné URL sestavit ze známého schématu pro dané identifikátory.
- get_book_url_name(idtype, idval, url)[zdroj]¶
Vrátí lidsky čitelný název z návratové hodnoty get_book_url().
- get_book_urls(identifiers)[zdroj]¶
Přepište tuto metodu, pokud chcete pro tuto knihu vrátit více URL. Vraťte seznam trojic. Ve výchozím nastavení tato metoda jednoduše volá
get_book_url().
- get_cached_cover_url(identifiers)[zdroj]¶
Vrátí URL obálky z mezipaměti pro knihu identifikovanou slovníkem identifiers, nebo None, pokud taková URL neexistuje.
Upozorňujeme, že tato metoda smí vracet pouze ověřené URL, tj. nikoli URL, které by mohly vést k obecnému obrázku obálky nebo k chybě typu nenalezeno.
- id_from_url(url)[zdroj]¶
Analyzuje URL a vrátí dvojici ve tvaru: (identifier_type, identifier_value). Pokud URL neodpovídá vzoru pro zdroj metadat, vraťte None.
- identify_results_keygen(title=None, authors=None, identifiers={})[zdroj]¶
Vrátí funkci, která se používá ke generování řadicího klíče umožňujícího seřadit objekty Metadata podle jejich relevance pro zadaný vyhledávací dotaz (title, authors, identifiers).
Tyto klíče se používají k seřazení výsledků volání
identify().Podrobnosti o výchozím algoritmu najdete v
InternalMetadataCompareKeyGen. Pokud výchozí algoritmus není vhodný, implementujte tuto funkci ve svém modulu znovu.
- identify(log, result_queue, abort, title=None, authors=None, identifiers={}, timeout=30)[zdroj]¶
Identifikuje knihu podle názvu/autora/ISBN/atd.
Pokud jsou zadány identifikátory, nenajde se žádná shoda a tento zdroj metadat neukládá všechny související identifikátory (například všechna ISBN knihy), měla by tato metoda zopakovat hledání pouze s názvem a autorem (za předpokladu, že byly zadány).
Pokud tento zdroj metadat poskytuje také obálky, měla by se URL obálky uložit do mezipaměti, aby následné volání API pro získání obálek se stejným ISBN nebo speciálním identifikátorem nemuselo URL obálky získávat znovu. Použijte k tomu API mezipaměti.
Každý objekt Metadata vložený touto metodou do result_queue musí mít atribut source_relevance, což je celé číslo určující pořadí, ve kterém zdroj metadat vrátil výsledky pro tento dotaz. Toto celé číslo použije
compare_identify_results(). Pokud pořadí není důležité, nastavte ho pro každý výsledek na nulu.Ujistěte se, že všechny informace o mapování obálka/ISBN jsou uloženy do mezipaměti před vložením objektu Metadata do result_queue.
- Parametry:
log – Objekt logu; použijte ho k výstupu ladicích informací nebo chyb
result_queue – Objekt Queue pro výsledky, do kterého se mají vkládat výsledky. Každý výsledek je objekt Metadata
abort – Pokud abort.is_set() vrátí True, přerušte další zpracování a vraťte se co nejdříve
title – Název knihy, může být None
authors – Seznam autorů knihy, může být None
identifiers – Slovník dalších identifikátorů, nejčastěji {‚isbn‘:‘1234…‘}
timeout – Časový limit v sekundách; žádný síťový požadavek by neměl čekat déle než timeout.
- Vrací:
None, pokud nedošlo k žádným chybám; jinak unicode reprezentace chyby vhodná k zobrazení uživateli
- download_cover(log, result_queue, abort, title=None, authors=None, identifiers={}, timeout=30, get_best_cover=False)[zdroj]¶
Stáhne obálku a vloží ji do result_queue. Všechny parametry mají stejný význam jako u
identify(). Do result_queue vložte (self, cover_data).Tato metoda by měla kvůli efektivitě používat URL obálek z mezipaměti, kdykoli je to možné. Pokud data v mezipaměti nejsou k dispozici, většina modulů jednoduše zavolá identify a použije jeho výsledky.
Pokud je parametr get_best_cover True a tento modul může získat více obálek, měl by získat pouze tu „nejlepší“.
- class calibre.ebooks.metadata.sources.base.InternalMetadataCompareKeyGen(mi, source_plugin, title, authors, identifiers)[zdroj]¶
Generuje řadicí klíč pro porovnání relevance objektů Metadata vzhledem k vyhledávacímu dotazu. Používá se pouze k porovnání výsledků ze stejného zdroje metadat, ne napříč různými zdroji.
Řadicí klíč zajišťuje, že vzestupné řazení odpovídá řazení podle klesající relevance.
Algoritmus je:
Upřednostnit výsledky, které mají alespoň jeden identifikátor stejný jako v dotazu
Upřednostnit výsledky s URL obálky v mezipaměti
Upřednostnit výsledky se všemi dostupnými poli vyplněnými
Upřednostnit výsledky se stejným jazykem, jako má aktuální jazyk uživatelského rozhraní
Upřednostnit výsledky, které přesně odpovídají názvu v dotazu
Upřednostnit výsledky s delšími komentáři (delšími o více než 10 %)
- Použít relevanci výsledku, jak ji nahlásil zdrojem metadat používaný vyhledávací
engine
Moduly převodu¶
- class calibre.customize.conversion.InputFormatPlugin(*args)[zdroj]¶
Bases:
PluginModuly vstupního formátu zodpovídají za převod dokumentu na HTML+OPF+CSS+atd. Výsledky převodu musí být kódované v UTF-8. Hlavní akce probíhá v
convert().- type = 'Vstup převodu'¶
Typ tohoto modulu. Používá se ke kategorizaci modulů v grafickém rozhraní
- supported_platforms = ['windows', 'osx', 'linux']¶
Seznam platforem, na kterých tento modul funguje. Například:
['windows', 'osx', 'linux']
- file_types = {}¶
Sada typů souborů, pro které se má tento modul spustit. Například:
set(['azw', 'mobi', 'prc'])
- is_image_collection = False¶
Pokud je True, tento vstupní modul generuje kolekci obrázků, jeden pro každý soubor HTML. Toto lze nastavit dynamicky v metodě convert, pokud vstupní soubory mohou někdy být kolekcemi obrázků a jindy ne. Pokud nastavíte tuto hodnotu na True, musíte implementovat metodu get_images(), která vrací seznam obrázků.
- core_usage = 1¶
Počet jader CPU používaných tímto modulem. Hodnota -1 znamená, že používá všechna dostupná jádra
- for_viewer = False¶
Pokud je nastaveno na True, vstupní modul provede speciální zpracování, aby byl jeho výstup vhodný k prohlížení
- output_encoding = 'utf-8'¶
Kódování, ve kterém tento vstupní modul vytváří soubory. Hodnota None znamená, že kódování není určeno a musí být zjištěno jednotlivě
- common_options = {<calibre.customize.conversion.OptionRecommendation object>}¶
Volby sdílené všemi moduly vstupního formátu. Nepřepisujte je v podtřídách. Místo toho použijte
options. Každá volba musí být instancíOptionRecommendation.
- options = {}¶
Volby pro přizpůsobení chování tohoto modulu. Každá volba musí být instancí
OptionRecommendation.
- recommendations = {}¶
Sada trojic ve tvaru (option_name, recommended_value, recommendation_level)
- get_images()[zdroj]¶
Vrátí seznam absolutních cest k obrázkům, pokud tento vstupní modul představuje kolekci obrázků. Seznam obrázků je ve stejném pořadí jako spine a TOC.
- convert(stream, options, file_ext, log, accelerators)[zdroj]¶
Tato metoda musí být implementována v podtřídách. Musí vrátit cestu k vytvořenému souboru OPF nebo instanci
OEBBook. Veškerý výstup by měl být obsažen v aktuální složce. Pokud tento modul vytvoří soubory mimo aktuální složku, musí být před návratem z této metody odstraněny nebo označeny k odstranění.- Parametry:
stream – Objekt podobný souboru, který obsahuje vstupní soubor.
options – Volby pro přizpůsobení procesu převodu. Zaručeně obsahují atributy odpovídající všem volbám deklarovaným tímto modulem. Navíc budou mít atribut verbose, který nabývá celočíselných hodnot od nuly výše. Vyšší čísla znamenají podrobnější výstup. Dalším užitečným atributem je
input_profile, což je instancecalibre.customize.profiles.InputProfile.file_ext – Přípona (bez tečky) vstupního souboru. Zaručeně jde o jeden z typů file_types podporovaných tímto modulem.
log – Objekt
calibre.utils.logging.Log. Veškerý výstup by měl používat tento objekt.accelerators – Slovník různých informací, které vstupní modul může snadno získat a které by urychlily následující fáze převodu.
- postprocess_book(oeb, opts, log)[zdroj]¶
Volá se, aby vstupní modul mohl provést následné zpracování po analyzování knihy.
- class calibre.customize.conversion.OutputFormatPlugin(*args)[zdroj]¶
Bases:
PluginModuly výstupního formátu zodpovídají za převod dokumentu OEB (OPF+HTML) na výstupní e-knihu.
U dokumentu OEB lze předpokládat, že je kódovaný v UTF-8. Hlavní akce probíhá v
convert().- type = 'Výstup převodu'¶
Typ tohoto modulu. Používá se ke kategorizaci modulů v grafickém rozhraní
- supported_platforms = ['windows', 'osx', 'linux']¶
Seznam platforem, na kterých tento modul funguje. Například:
['windows', 'osx', 'linux']
- file_type = None¶
Typ souboru (přípona bez úvodní tečky), který tento modul vytváří jako výstup
- common_options = {<calibre.customize.conversion.OptionRecommendation object>}¶
Volby sdílené všemi moduly vstupního formátu. Nepřepisujte je v podtřídách. Místo toho použijte
options. Každá volba musí být instancíOptionRecommendation.
- options = {}¶
Volby pro přizpůsobení chování tohoto modulu. Každá volba musí být instancí
OptionRecommendation.
- recommendations = {}¶
Sada trojic ve tvaru (option_name, recommended_value, recommendation_level)
- property description¶
str(object=‘‘) -> str str(bytes_or_buffer[, encoding[, errors]]) -> str
Vytvoří nový řetězcový objekt ze zadaného objektu. Pokud je zadáno encoding nebo errors, objekt musí poskytovat datový buffer, který bude dekódován pomocí zadaného kódování a obsluhy chyb. Jinak vrátí výsledek object.__str__() (pokud je definováno) nebo repr(object). Výchozí hodnota encoding je ‚utf-8‘. Výchozí hodnota errors je ‚strict‘.
- convert(oeb_book, output, input_plugin, opts, log)[zdroj]¶
Vykreslí obsah oeb_book (což je instance
calibre.ebooks.oeb.OEBBook) do souboru určeného parametrem output.- Parametry:
output – Buď objekt podobný souboru, nebo řetězec. Pokud jde o řetězec, je to cesta ke složce, která může, ale nemusí existovat. Výstupní modul by měl svůj výstup zapsat do této složky. Pokud jde o objekt podobný souboru, měl by výstupní modul zapsat svůj výstup do souboru.
input_plugin – Vstupní modul, který byl použit na začátku převodní pipeline.
opts – Volby převodu. Zaručeně mají atributy odpovídající OptionRecommendations tohoto modulu.
log – Logger. Pomocí něj vypisujte ladicí a informační zprávy atd.
- specialize_options(log, opts, input_fmt)[zdroj]¶
Lze použít ke změně hodnot voleb převodu tak, jak je používá převodní pipeline.
- specialize_css_for_output(log, opts, item, stylizer)[zdroj]¶
Lze použít k provádění změn v CSS během procesu zplošťování CSS.
- Parametry:
item – Zpracovávaná položka (soubor HTML)
stylizer – Objekt Stylizer obsahující zploštěné styly pro item. Styl pro libovolný prvek můžete získat pomocí stylizer.style(element).
Ovladače zařízení¶
Základní třídou pro všechny ovladače zařízení je DevicePlugin. Pokud se však vaše zařízení operačnímu systému zpřístupňuje jako jednotka USBMS, měli byste místo ní použít třídu USBMS, protože implementuje veškerou logiku potřebnou pro podporu těchto druhů zařízení.
- class calibre.devices.interface.DevicePlugin(plugin_path)[zdroj]¶
Bases:
PluginDefinuje rozhraní, které by měly implementovat backendy komunikující se čtečkou e-knih.
- type = 'Rozhraní zařízení'¶
Typ tohoto modulu. Používá se ke kategorizaci modulů v grafickém rozhraní
- FORMATS = ['lrf', 'rtf', 'pdf', 'txt']¶
Seřazený seznam podporovaných formátů
- VENDOR_ID = 0¶
VENDOR_ID může být celé číslo, seznam celých čísel nebo slovník. Pokud jde o slovník, musí to být slovník slovníků ve tvaru:
{ integer_vendor_id : { product_id : [list of BCDs], ... }, ... }
- PRODUCT_ID = 0¶
Celé číslo nebo seznam celých čísel
- BCD = None¶
BCD může být buď None, pokud se zařízení nemají rozlišovat podle BCD, nebo seznam čísel BCD všech zařízení podporovaných tímto ovladačem.
- THUMBNAIL_HEIGHT = 68¶
Výška miniatur v zařízení
- THUMBNAIL_COMPRESSION_QUALITY = 75¶
Kvalita komprese miniatur. Nastavte ji blíže k hodnotě 100, chcete-li získat kvalitnější miniatury s menším počtem kompresních artefaktů. Miniatury se tím samozřejmě také zvětší.
- WANTS_UPDATED_THUMBNAILS = False¶
Nastavte na True, pokud zařízení podporuje aktualizaci miniatur obálek během sync_booklists. Nastavení na true požádá device.py o obnovení miniatur obálek během párování knih
- CAN_SET_METADATA = ['title', 'authors', 'collections']¶
Zda lze metadata knih nastavovat přes GUI.
- CAN_DO_DEVICE_DB_PLUGBOARD = False¶
Zda zařízení dokáže zpracovat zásuvné panely metadat device_db
- path_sep = '/'¶
Oddělovač cest pro cesty ke knihám v zařízení
- icon = 'reader.png'¶
Ikona pro toto zařízení
- UserAnnotation¶
alias of
Annotation
- OPEN_FEEDBACK_MESSAGE = None¶
GUI tuto hodnotu zobrazí jako zprávu ve stavovém řádku, pokud není None. Užitečné, pokud otevírání může trvat dlouho
- VIRTUAL_BOOK_EXTENSIONS = frozenset({})¶
Sada přípon, které jsou v zařízení „virtuálními knihami“, a proto je nelze zobrazit, uložit ani přidat do knihovny. Například:
frozenset(['kobo'])
- VIRTUAL_BOOK_EXTENSION_MESSAGE = None¶
Zpráva, která se má zobrazit uživateli pro přípony virtuálních knih.
- NUKE_COMMENTS = None¶
Zda odstranit komentáře v kopii knihy odesílané do zařízení. Pokud není None, mělo by jít o krátký řetězec, kterým budou komentáře nahrazeny.
- MANAGES_DEVICE_PRESENCE = False¶
Pokud je True, znamená to, že tento ovladač plně spravuje detekci zařízení, vysouvání a podobně. Pokud nastavíte tuto hodnotu na True, musíte implementovat metody detect_managed_devices a debug_managed_device_detection. Ovladač s touto hodnotou nastavenou na true zodpovídá za detekci zařízení, správu černé listiny zařízení, seznam vysunutých zařízení a podobně. calibre bude pravidelně volat metodu detect_managed_devices() a pokud vrátí detekované zařízení, calibre zavolá open(). open() bude voláno pokaždé, když je zařízení vráceno, i když předchozí volání open() selhala; ovladač proto musí udržovat vlastní černou listinu selhávajících zařízení. Podobně při vysouvání calibre zavolá eject() a potom, za předpokladu, že další volání detect_managed_devices() vrátí None, zavolá post_yank_cleanup().
- SLOW_DRIVEINFO = False¶
Pokud je nastaveno na True, calibre zavolá metodu
get_driveinfo()po načtení seznamů knih, aby získalo driveinfo.
- ASK_TO_ALLOW_CONNECT = False¶
Pokud je nastaveno na True, calibre se při první detekci zařízení zeptá uživatele, zda chce zařízení spravovat pomocí calibre. Pokud tuto hodnotu nastavíte na True, musíte implementovat
get_device_uid(),ignore_connected_device(),get_user_blacklisted_devices()aset_user_blacklisted_devices()
- user_feedback_after_callback = None¶
Nastavte na slovník ve tvaru {‚title‘:title, ‚msg‘:msg, ‚det_msg‘:detailed_msg}, aby calibre zobrazilo uživateli zprávu po spuštění některých callbacků (aktuálně pouze upload_books). Dávejte pozor, abyste uživatele nezahltili příliš mnoha zprávami. Tato proměnná se kontroluje po každém callbacku, proto ji nastavujte pouze tehdy, když ji opravdu potřebujete.
- classmethod get_open_popup_message()[zdroj]¶
GUI tuto hodnotu zobrazí jako nemodální vyskakovací okno. Měla by být instancí OpenPopupMessage
- classmethod model_metadata() tuple[ModelMetadata, ...][zdroj]¶
Metadata o všech skutečných modelech zařízení, které tento ovladač podporuje
- is_usb_connected(devices_on_system, debug=False, only_presence=False)[zdroj]¶
Vrátí True, device_info, pokud je aktuálně připojeno zařízení obsluhované tímto modulem.
- Parametry:
devices_on_system – Seznam aktuálně připojených zařízení
- detect_managed_devices(devices_on_system, force_refresh=False)[zdroj]¶
Volá se pouze tehdy, pokud je MANAGES_DEVICE_PRESENCE True.
Vyhledá zařízení, která tento ovladač dokáže obsloužit. Pokud je zařízení nalezeno, vrátí objekt zařízení. Tento objekt bude předán metodě open() jako connected_device. Pokud není nalezeno žádné zařízení, vrátí None. Vrácený objekt může být libovolný, calibre ho nepoužívá, pouze ho předá metodě open().
Tato metoda je pravidelně volána GUI, proto se ujistěte, že není příliš náročná na prostředky. Použijte mezipaměť, abyste se vyhnuli opakovanému prohledávání systému.
- Parametry:
devices_on_system – Sada USB zařízení nalezených v systému.
force_refresh – Pokud je True a ovladač používá mezipaměť, aby zabránil opakovanému prohledávání, musí být mezipaměť vyprázdněna.
- debug_managed_device_detection(devices_on_system, output)[zdroj]¶
Volá se pouze tehdy, pokud je MANAGES_DEVICE_PRESENCE True.
Zapíše informace o zařízeních detekovaných v systému do output, což je objekt podobný souboru.
Vrátí True, pokud bylo zařízení detekováno a úspěšně otevřeno, jinak False.
- reset(key='-1', log_packets=False, report_progress=None, detected_device=None)[zdroj]¶
- Parametry:
key – Klíč k odemknutí zařízení
log_packets – Pokud je true, proud paketů do zařízení a ze zařízení se loguje
report_progress – Funkce, která je volána s procentem průběhu (číslo mezi 0 a 100) pro různé úlohy. Pokud je volána s hodnotou -1, znamená to, že úloha nemá žádné informace o průběhu
detected_device – Informace o zařízení ze skeneru zařízení
- can_handle_windows(usbdevice, debug=False)[zdroj]¶
Volitelná metoda pro provedení dalších kontrol zařízení, aby se zjistilo, zda ho tento ovladač dokáže obsloužit. Pokud ne, měla by vrátit False. Tato metoda se volá pouze poté, co se shodují ID výrobce, ID produktu a bcd, takže může provádět relativně časově náročné kontroly. Výchozí implementace vrací True. Tato metoda se volá pouze ve Windows. Viz také
can_handle().Všimněte si, že u zařízení založených na USBMS tato metoda ve výchozím nastavení deleguje na
can_handle(). Stačí tedy přepsatcan_handle()ve vaší podtřídě USBMS.- Parametry:
usbdevice – usbdevice tak, jak ho vrací
calibre.devices.winusb.scan_usb_devices()
- can_handle(device_info, debug=False)[zdroj]¶
Unixová verze
can_handle_windows().- Parametry:
device_info – Je to n-tice (vid, pid, bcd, manufacturer, product, serial number)
- open(connected_device, library_uuid)[zdroj]¶
Provede veškerou inicializaci specifickou pro zařízení. Volá se po detekci zařízení, ale před všemi ostatními funkcemi, které se zařízením komunikují. Například u zařízení, která se prezentují jako zařízení typu velkokapacitní úložiště USB, by tato metoda zodpovídala za připojení zařízení nebo, pokud bylo zařízení připojeno automaticky, za zjištění, kam bylo připojeno. Metoda
calibre.devices.usbms.device.Device.open()obsahuje implementaci této funkce, která by měla sloužit jako dobrý příklad pro zařízení typu velkokapacitní úložiště USB.Tato metoda může vyvolat výjimku OpenFeedback, aby se uživateli zobrazila zpráva.
- Parametry:
connected_device – Zařízení, které se pokoušíme otevřít. Je to n-tice (vendor id, product id, bcd, manufacturer name, product name, device serial number). Některá zařízení však nemají sériové číslo a ve Windows jsou přítomna pouze první tři pole, ostatní jsou None.
library_uuid – UUID aktuální knihovny calibre. Může být None, pokud není k dispozici žádná knihovna (například při použití z příkazového řádku).
- eject()[zdroj]¶
Odpojí nebo vysune zařízení z operačního systému. Nekontroluje, zda existují čekající úlohy GUI, které potřebují se zařízením komunikovat.
POZNÁMKA: Tato metoda nemusí být volána ve stejném vlákně jako ostatní metody zařízení.
- set_progress_reporter(report_progress)[zdroj]¶
Nastaví funkci pro hlášení informací o průběhu.
- Parametry:
report_progress – Funkce, která je volána s procentem průběhu (číslo mezi 0 a 100) pro různé úlohy. Pokud je volána s hodnotou -1, znamená to, že úloha nemá žádné informace o průběhu
- get_device_information(end_session=True)[zdroj]¶
Požádá zařízení o informace o zařízení. Viz L{DeviceInfoQuery}.
- Vrací:
(device name, device version, software version on device, MIME type) N-tice může mít volitelně pátý prvek, kterým je slovník informací o jednotce. Příklad najdete v usbms.driver.
- get_driveinfo()[zdroj]¶
Vrátí slovník driveinfo. Obvykle se volá z get_device_information(), ale pokud je načítání driveinfo pro tento ovladač pomalé, měl by nastavit SLOW_DRIVEINFO. V takovém případě calibre zavolá tuto metodu po načtení seznamů knih. Upozorňujeme, že se nevolá ve vlákně zařízení, takže ovladač by měl uložit drive info do mezipaměti v metodě books() a tato funkce by měla vrátit data z mezipaměti.
- card_prefix(end_session=True)[zdroj]¶
Vrátí dvouprvkový seznam prefixů cest na kartách. Pokud karta není přítomna, nastaví se pro prefix karty None. Např. (‚/place‘, ‚/place2‘) (None, ‚place2‘) (‚place‘, None) (None, None)
- total_space(end_session=True)[zdroj]¶
- Získá celkovou kapacitu dostupnou na přípojných bodech:
Hlavní paměť
Paměťová karta A
Paměťová karta B
- Vrací:
Tříprvkový seznam s celkovou kapacitou v bajtech pro (1, 2, 3). Pokud konkrétní zařízení některé z těchto umístění nemá, vrátí 0.
- free_space(end_session=True)[zdroj]¶
- Získá volné místo dostupné na přípojných bodech:
Hlavní paměť
Karta A
Karta B
- Vrací:
Tříprvkový seznam s volným místem v bajtech pro (1, 2, 3). Pokud konkrétní zařízení některé z těchto umístění nemá, vrátí -1.
- books(oncard=None, end_session=True)[zdroj]¶
Vrátí seznam e-knih v zařízení.
- Parametry:
oncard – Pokud je ‚carda‘ nebo ‚cardb‘, vrátí seznam e-knih na konkrétní paměťové kartě, jinak vrátí seznam e-knih v hlavní paměti zařízení. Pokud je karta určena a nejsou na ní žádné knihy, vrátí prázdný seznam.
- Vrací:
BookList.
- upload_books(files, names, on_card=None, end_session=True, metadata=None)[zdroj]¶
Nahraje seznam knih do zařízení. Pokud už soubor v zařízení existuje, bude nahrazen. Tato metoda vyvolá
FreeSpaceError, pokud v zařízení není dostatek volného místa. Text FreeSpaceError musí obsahovat slovo „card“, pokudon_cardnení None, jinak musí obsahovat slovo „memory“.- Parametry:
files – Seznam cest
names – Seznam názvů souborů, které knihy mají mít po nahrání do zařízení. len(names) == len(files)
metadata – Pokud není None, jde o seznam objektů
Metadata. Smyslem je použít metadata k určení, kam v zařízení knihu uložit. len(metadata) == len(files). Kromě běžné obálky (cesty k obálce) může existovat také atribut thumbnail, který by měl být použit přednostně. Atribut thumbnail má tvar (width, height, cover_data as jpeg).
- Vrací:
Seznam tříprvkových n-tic. Seznam je určen k předání metodě
add_books_to_metadata().
- classmethod add_books_to_metadata(locations, metadata, booklists)[zdroj]¶
Přidá umístění do seznamů knih. Tato funkce nesmí komunikovat se zařízením.
- Parametry:
locations – Výsledek volání L{upload_books}
metadata – Seznam objektů
Metadata, stejný jako uupload_books().booklists – N-tice obsahující výsledek volání (
books(oncard=None)(),books(oncard='carda')(), :meth`books(oncard=‘cardb‘)`).
- classmethod remove_books_from_metadata(paths, booklists)[zdroj]¶
Odebere knihy ze seznamu metadat. Tato funkce nesmí komunikovat se zařízením.
- Parametry:
paths – cesty ke knihám v zařízení.
booklists – N-tice obsahující výsledek volání (
books(oncard=None)(),books(oncard='carda')(), :meth`books(oncard=‘cardb‘)`).
- sync_booklists(booklists, end_session=True)[zdroj]¶
Aktualizuje metadata v zařízení.
- Parametry:
booklists – N-tice obsahující výsledek volání (
books(oncard=None)(),books(oncard='carda')(), :meth`books(oncard=‘cardb‘)`).
- get_file(path, outfile, end_session=True)[zdroj]¶
Přečte soubor na cestě
pathv zařízení a zapíše ho do outfile.- Parametry:
outfile – souborový objekt jako
sys.stdoutnebo výsledek voláníopen().
- classmethod save_settings(settings_widget)[zdroj]¶
Uloží nastavení na disk. Převezme widget vytvořený v
config_widget()a uloží všechna nastavení na disk.
- classmethod settings()[zdroj]¶
Vrátí objekt opts. Objekt opts má mít alespoň jeden atribut format_map, což je seřazený seznam formátů pro zařízení.
- set_plugboards(plugboards, pb_func)[zdroj]¶
poskytne ovladači aktuální sadu zásuvných panelů a funkci pro výběr konkrétního zásuvného panelu. Tato metoda se volá bezprostředně před add_books a sync_booklists.
- pb_func je volatelný objekt s následující signaturou:
def pb_func(device_name, format, plugboards)
Předáte jí aktuální název zařízení (buď název třídy, nebo DEVICE_PLUGBOARD_NAME), formát, který vás zajímá („skutečný“ formát nebo ‚device_db‘), a zásuvné panely (ty jste dostali od set_plugboards, tedy ze stejného místa, odkud jste získali tuto metodu).
- Vrací:
None nebo jedna instance zásuvného panelu.
- set_driveinfo_name(location_code, name)[zdroj]¶
Nastaví název zařízení v souboru driveinfo na ‚name‘. Toto nastavení přetrvá, dokud nebude soubor znovu vytvořen nebo dokud nebude název znovu změněn.
Nedisková zařízení by měla tuto metodu implementovat na základě kódů umístění vrácených metodou get_device_information().
- prepare_addable_books(paths)[zdroj]¶
Při zadání seznamu cest vrátí jiný seznam cest. Tyto cesty ukazují na přidatelné verze knih.
Pokud při přípravě knihy dojde k chybě, měla by být na pozici dané knihy ve vráceném seznamu místo cesty trojice: (original_path, instance výjimky, traceback)
- startup()[zdroj]¶
Volá se, když calibre spouští zařízení. Proveďte veškerou požadovanou inicializaci. Všimněte si, že může být vytvořeno více instancí třídy, a tedy __init__ může být zavoláno vícekrát, ale tato metoda bude zavolána pouze u jedné instance. Tato metoda se volá ve vlákně zařízení, ne ve vlákně GUI.
- shutdown()[zdroj]¶
Volá se, když se calibre ukončuje, buď definitivně, nebo v přípravě na restart. Proveďte veškerý požadovaný úklid. Tato metoda se volá ve vlákně zařízení, ne ve vlákně GUI.
- get_device_uid()[zdroj]¶
Musí vrátit jedinečné ID aktuálně připojeného zařízení (volá se bezprostředně po úspěšném volání open()). Tuto metodu musíte implementovat, pokud nastavíte ASK_TO_ALLOW_CONNECT = True
- ignore_connected_device(uid)[zdroj]¶
Měla by v budoucnu ignorovat zařízení identifikované pomocí uid (výsledek volání get_device_uid()). Tuto metodu musíte implementovat, pokud nastavíte ASK_TO_ALLOW_CONNECT = True. Upozorňujeme, že tato funkce se volá bezprostředně po open(), takže pokud open() ukládá nějaký stav do mezipaměti, měl by ovladač tento stav resetovat.
- get_user_blacklisted_devices()[zdroj]¶
Vrátí mapu uid zařízení na přívětivý název pro všechna zařízení, která uživatel požádal ignorovat.
- set_user_blacklisted_devices(devices)[zdroj]¶
Nastaví seznam uid zařízení, která má tento ovladač ignorovat.
- specialize_global_preferences(device_prefs)[zdroj]¶
Implementujte tuto metodu, pokud vaše zařízení chce přepsat konkrétní předvolbu. Musíte zajistit, aby všechna místa volání, která chtějí předvolbu umožňující přepsání, používala device_prefs[‚something‘] místo prefs[‚something‘]. Vaše metoda by měla zavolat device_prefs.set_overrides(pref=val, pref=val, …). Aktuálně se používá pro: správu metadat (prefs[‚manage_device_metadata‘])
- set_library_info(library_name, library_uuid, field_metadata)[zdroj]¶
Implementujte tuto metodu, pokud chcete informace o aktuální knihovně calibre. Tato metoda se volá při spuštění a při změně knihovny calibre během připojení.
- is_dynamically_controllable()[zdroj]¶
Volá správce zařízení při spouštění modulů. Pokud tato metoda vrátí řetězec, pak a) podporuje rozhraní dynamického řízení správce zařízení a b) tento název se má použít při komunikaci s modulem.
Tato metoda může být volána ve vlákně GUI. Ovladač, který tuto metodu implementuje, musí být bezpečný pro vlákna.
- start_plugin()[zdroj]¶
Tato metoda se volá ke spuštění modulu. Modul by měl začít přijímat připojení zařízení způsobem, kterým to dělá. Pokud už modul připojení přijímá, neprovádějte nic.
Tato metoda může být volána ve vlákně GUI. Ovladač, který tuto metodu implementuje, musí být bezpečný pro vlákna.
- stop_plugin()[zdroj]¶
Tato metoda se volá k zastavení modulu. Modul by už neměl přijímat připojení a měl by po sobě uklidit. Je pravděpodobné, že tato metoda by měla zavolat shutdown. Pokud už modul připojení nepřijímá, neprovádějte nic.
Tato metoda může být volána ve vlákně GUI. Ovladač, který tuto metodu implementuje, musí být bezpečný pro vlákna.
- get_option(opt_string, default=None)[zdroj]¶
Vrátí hodnotu volby určené pomocí opt_string. Tuto metodu lze volat, když modul není spuštěn. Pokud volba neexistuje, vrátí None.
Tato metoda může být volána ve vlákně GUI. Ovladač, který tuto metodu implementuje, musí být bezpečný pro vlákna.
- set_option(opt_string, opt_value)[zdroj]¶
Nastaví hodnotu volby určené pomocí opt_string. Tuto metodu lze volat, když modul není spuštěn.
Tato metoda může být volána ve vlákně GUI. Ovladač, který tuto metodu implementuje, musí být bezpečný pro vlákna.
- is_running()[zdroj]¶
Vrátí True, pokud je modul spuštěn, jinak false
Tato metoda může být volána ve vlákně GUI. Ovladač, který tuto metodu implementuje, musí být bezpečný pro vlákna.
- synchronize_with_db(db, book_id, book_metadata, first_call)[zdroj]¶
Volá se během párování knih, když je kniha v zařízení spárována s knihou v databázi calibre. Metoda odpovídá za synchronizaci dat ze zařízení do databáze calibre (pokud je to potřeba).
Metoda musí vrátit dvojici hodnot. První hodnota je množina ID knih calibre, která byla změněna, pokud byla změněna databáze calibre, nebo None, pokud databáze změněna nebyla. Pokud je první hodnotou prázdná množina, metadata knihy v zařízení se aktualizují metadaty z calibre a předají zpět zařízení, ale u této knihy se neprovede žádná aktualizace GUI. To je užitečné, když jsou data v calibre správná, ale je potřeba je odeslat do zařízení.
Druhá hodnota je sama dvojicí hodnot. První hodnota v této dvojici určuje, zda má být formát knihy odeslán do zařízení. Cílem je umožnit ověření, že kniha v zařízení je stejná jako kniha v calibre. Tato hodnota musí být None, pokud se nemá odeslat žádná kniha; jinak má obsahovat základní název souboru v zařízení (řetězec jako foobar.epub). Nezapomeňte do názvu zahrnout příponu. Subsystém zařízení vytvoří úlohu send_books pro všechny knihy, u kterých vrácené hodnoty nejsou None. Poznámka: kromě pozdějšího získání přípony se název ignoruje v případech, kdy zařízení používá k vygenerování názvu souboru šablonu, což dělá většina zařízení. Druhá hodnota ve vrácené dvojici určuje, zda je formát datován do budoucnosti. Pokud ano, má být True, jinak False. calibre zobrazí uživateli dialog se seznamem všech knih s budoucím datem.
Mimořádně důležité: tato metoda se volá ve vlákně GUI. Musí být bezpečná pro vlákna vzhledem k vláknu správce zařízení.
book_id: ID knihy calibre v databázi. book_metadata: objekt Metadata pro knihu pocházející ze zařízení. first_call: True, pokud jde o první volání během synchronizace, jinak False
- class calibre.devices.interface.BookList(oncard, prefix, settings)[zdroj]¶
Bases:
listSeznam knih. Každý objekt Book musí mít pole
title
authors
size (velikost souboru knihy)
datetime (časová n-tice v UTC)
path (cesta ke knize v zařízení)
thumbnail (může být None) thumbnail je buď objekt str/bytes s daty obrázku, nebo by měl mít atribut image_path, který ukládá absolutní cestu k obrázku (nativní pro platformu)
tags (seznam řetězců, může být prázdný).
- add_book(book, replace_metadata)[zdroj]¶
Přidá knihu do seznamu knih. Záměrem je zachovat veškerá interní metadata zařízení. Vrátí True, pokud musí být seznamy knih synchronizovány
- get_collections(collection_attributes)[zdroj]¶
Vrátí slovník kolekcí vytvořených z collection_attributes. Každá položka ve slovníku má tvar název kolekce:[seznam knih]
Seznam knih je seřazen podle názvu knihy, s výjimkou kolekcí vytvořených ze série, kdy se použije series_index.
- Parametry:
collection_attributes – Seznam atributů objektu Book
Zařízení založená na velkokapacitním úložišti USB¶
Základní třídou pro taková zařízení je calibre.devices.usbms.driver.USBMS. Tato třída zase dědí část své funkcionality ze svých základních tříd, které jsou zdokumentovány níže. Typický základní ovladač založený na velkokapacitním úložišti USB vypadá takto:
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)[zdroj]¶
Bases:
DeviceConfig,DevicePluginTato třída poskytuje logiku společnou pro všechny ovladače zařízení, která se prezentují jako zařízení typu velkokapacitní úložiště USB. Poskytuje implementace připojování a vysouvání zařízení USBMS na všech platformách.
- VENDOR_ID = 0¶
VENDOR_ID může být celé číslo, seznam celých čísel nebo slovník. Pokud jde o slovník, musí to být slovník slovníků ve tvaru:
{ integer_vendor_id : { product_id : [list of BCDs], ... }, ... }
- PRODUCT_ID = 0¶
Celé číslo nebo seznam celých čísel
- BCD = None¶
BCD může být buď None, pokud se zařízení nemají rozlišovat podle BCD, nebo seznam čísel BCD všech zařízení podporovaných tímto ovladačem.
- WINDOWS_MAIN_MEM = None¶
Řetězec identifikující hlavní paměť zařízení v řetězcích ID Windows PnP. Může to být None, řetězec, seznam řetězců nebo zkompilovaný regex
- WINDOWS_CARD_A_MEM = None¶
Řetězec identifikující první kartu zařízení v řetězcích ID Windows PnP. Může to být None, řetězec, seznam řetězců nebo zkompilovaný regex
- WINDOWS_CARD_B_MEM = None¶
Řetězec identifikující druhou kartu zařízení v řetězcích ID Windows PnP. Může to být None, řetězec, seznam řetězců nebo zkompilovaný regex
- OSX_MAIN_MEM_VOL_PAT = None¶
Používá se novou detekcí ovladačů k rozlišení hlavní paměti od paměťových karet. Měl by to být regulární výraz, který odpovídá přípojnému bodu hlavní paměti přiřazenému systémem macOS
- MAX_PATH_LEN = 250¶
Maximální délka cest vytvářených v zařízení
- NEWS_IN_FOLDER = True¶
Ukládat zprávy do vlastní složky
- classmethod model_metadata() tuple[ModelMetadata, ...][zdroj]¶
Metadata o všech skutečných modelech zařízení, které tento ovladač podporuje
- reset(key='-1', log_packets=False, report_progress=None, detected_device=None)[zdroj]¶
- Parametry:
key – Klíč k odemknutí zařízení
log_packets – Pokud je true, proud paketů do zařízení a ze zařízení se loguje
report_progress – Funkce, která je volána s procentem průběhu (číslo mezi 0 a 100) pro různé úlohy. Pokud je volána s hodnotou -1, znamená to, že úloha nemá žádné informace o průběhu
detected_device – Informace o zařízení ze skeneru zařízení
- set_progress_reporter(report_progress)[zdroj]¶
Nastaví funkci pro hlášení informací o průběhu.
- Parametry:
report_progress – Funkce, která je volána s procentem průběhu (číslo mezi 0 a 100) pro různé úlohy. Pokud je volána s hodnotou -1, znamená to, že úloha nemá žádné informace o průběhu
- card_prefix(end_session=True)[zdroj]¶
Vrátí dvouprvkový seznam prefixů cest na kartách. Pokud karta není přítomna, nastaví se pro prefix karty None. Např. (‚/place‘, ‚/place2‘) (None, ‚place2‘) (‚place‘, None) (None, None)
- total_space(end_session=True)[zdroj]¶
- Získá celkovou kapacitu dostupnou na přípojných bodech:
Hlavní paměť
Paměťová karta A
Paměťová karta B
- Vrací:
Tříprvkový seznam s celkovou kapacitou v bajtech pro (1, 2, 3). Pokud konkrétní zařízení některé z těchto umístění nemá, vrátí 0.
- free_space(end_session=True)[zdroj]¶
- Získá volné místo dostupné na přípojných bodech:
Hlavní paměť
Karta A
Karta B
- Vrací:
Tříprvkový seznam s volným místem v bajtech pro (1, 2, 3). Pokud konkrétní zařízení některé z těchto umístění nemá, vrátí -1.
- windows_sort_drives(drives)[zdroj]¶
Volá se k rozlišení hlavní paměti a paměťové karty u zařízení, která je nerozlišují na základě WINDOWS_CARD_NAME. Například: EB600
- can_handle_windows(usbdevice, debug=False)[zdroj]¶
Volitelná metoda pro provedení dalších kontrol zařízení, aby se zjistilo, zda ho tento ovladač dokáže obsloužit. Pokud ne, měla by vrátit False. Tato metoda se volá pouze poté, co se shodují ID výrobce, ID produktu a bcd, takže může provádět relativně časově náročné kontroly. Výchozí implementace vrací True. Tato metoda se volá pouze ve Windows. Viz také
can_handle().Všimněte si, že u zařízení založených na USBMS tato metoda ve výchozím nastavení deleguje na
can_handle(). Stačí tedy přepsatcan_handle()ve vaší podtřídě USBMS.- Parametry:
usbdevice – usbdevice tak, jak ho vrací
calibre.devices.winusb.scan_usb_devices()
- open(connected_device, library_uuid)[zdroj]¶
Provede veškerou inicializaci specifickou pro zařízení. Volá se po detekci zařízení, ale před všemi ostatními funkcemi, které se zařízením komunikují. Například u zařízení, která se prezentují jako zařízení typu velkokapacitní úložiště USB, by tato metoda zodpovídala za připojení zařízení nebo, pokud bylo zařízení připojeno automaticky, za zjištění, kam bylo připojeno. Metoda
calibre.devices.usbms.device.Device.open()obsahuje implementaci této funkce, která by měla sloužit jako dobrý příklad pro zařízení typu velkokapacitní úložiště USB.Tato metoda může vyvolat výjimku OpenFeedback, aby se uživateli zobrazila zpráva.
- Parametry:
connected_device – Zařízení, které se pokoušíme otevřít. Je to n-tice (vendor id, product id, bcd, manufacturer name, product name, device serial number). Některá zařízení však nemají sériové číslo a ve Windows jsou přítomna pouze první tři pole, ostatní jsou None.
library_uuid – UUID aktuální knihovny calibre. Může být None, pokud není k dispozici žádná knihovna (například při použití z příkazového řádku).
- eject()[zdroj]¶
Odpojí nebo vysune zařízení z operačního systému. Nekontroluje, zda existují čekající úlohy GUI, které potřebují se zařízením komunikovat.
POZNÁMKA: Tato metoda nemusí být volána ve stejném vlákně jako ostatní metody zařízení.
- sanitize_callback(path)[zdroj]¶
Callback umožňující jednotlivým ovladačům zařízení přepsat sanitizaci cest používanou metodou
create_upload_path().
- filename_callback(default, mi)[zdroj]¶
Callback umožňující ovladačům změnit výchozí název souboru nastavený metodou
create_upload_path().
- class calibre.devices.usbms.driver.USBMS(plugin_path)[zdroj]¶
-
Základní třída pro všechna zařízení USBMS. Implementuje logiku pro odesílání, získávání, aktualizaci a ukládání metadat do mezipaměti atd.
- description = 'Komunikace se čtečkou e-knih.'¶
Krátký řetězec popisující, co tento modul dělá
- author = 'John Schember'¶
Autor modulu
- supported_platforms = ['windows', 'osx', 'linux']¶
Seznam platforem, na kterých tento modul funguje. Například:
['windows', 'osx', 'linux']
- booklist_class¶
alias of
BookList
- book_class¶
alias of
Book
- FORMATS = []¶
Seřazený seznam podporovaných formátů
- CAN_SET_METADATA = []¶
Zda lze metadata knih nastavovat přes GUI.
- get_device_information(end_session=True)[zdroj]¶
Požádá zařízení o informace o zařízení. Viz L{DeviceInfoQuery}.
- Vrací:
(device name, device version, software version on device, MIME type) N-tice může mít volitelně pátý prvek, kterým je slovník informací o jednotce. Příklad najdete v usbms.driver.
- set_driveinfo_name(location_code, name)[zdroj]¶
Nastaví název zařízení v souboru driveinfo na ‚name‘. Toto nastavení přetrvá, dokud nebude soubor znovu vytvořen nebo dokud nebude název znovu změněn.
Nedisková zařízení by měla tuto metodu implementovat na základě kódů umístění vrácených metodou get_device_information().
- books(oncard=None, end_session=True)[zdroj]¶
Vrátí seznam e-knih v zařízení.
- Parametry:
oncard – Pokud je ‚carda‘ nebo ‚cardb‘, vrátí seznam e-knih na konkrétní paměťové kartě, jinak vrátí seznam e-knih v hlavní paměti zařízení. Pokud je karta určena a nejsou na ní žádné knihy, vrátí prázdný seznam.
- Vrací:
BookList.
- upload_books(files, names, on_card=None, end_session=True, metadata=None)[zdroj]¶
Nahraje seznam knih do zařízení. Pokud už soubor v zařízení existuje, bude nahrazen. Tato metoda vyvolá
FreeSpaceError, pokud v zařízení není dostatek volného místa. Text FreeSpaceError musí obsahovat slovo „card“, pokudon_cardnení None, jinak musí obsahovat slovo „memory“.- Parametry:
files – Seznam cest
names – Seznam názvů souborů, které knihy mají mít po nahrání do zařízení. len(names) == len(files)
metadata – Pokud není None, jde o seznam objektů
Metadata. Smyslem je použít metadata k určení, kam v zařízení knihu uložit. len(metadata) == len(files). Kromě běžné obálky (cesty k obálce) může existovat také atribut thumbnail, který by měl být použit přednostně. Atribut thumbnail má tvar (width, height, cover_data as jpeg).
- Vrací:
Seznam tříprvkových n-tic. Seznam je určen k předání metodě
add_books_to_metadata().
- upload_cover(path, filename, metadata, filepath)[zdroj]¶
Odešle obálku knihy do zařízení. Výchozí implementace nedělá nic.
- Parametry:
path – Úplná cesta ke složce, ve které je umístěna příslušná kniha.
filename – Název souboru knihy bez přípony.
metadata – metadata patřící ke knize. Pro obálku použijte metadata.thumbnail
filepath – Úplná cesta k souboru e-knihy
- add_books_to_metadata(locations, metadata, booklists)[zdroj]¶
Přidá umístění do seznamů knih. Tato funkce nesmí komunikovat se zařízením.
- Parametry:
locations – Výsledek volání L{upload_books}
metadata – Seznam objektů
Metadata, stejný jako uupload_books().booklists – N-tice obsahující výsledek volání (
books(oncard=None)(),books(oncard='carda')(), :meth`books(oncard=‘cardb‘)`).
- remove_books_from_metadata(paths, booklists)[zdroj]¶
Odebere knihy ze seznamu metadat. Tato funkce nesmí komunikovat se zařízením.
- Parametry:
paths – cesty ke knihám v zařízení.
booklists – N-tice obsahující výsledek volání (
books(oncard=None)(),books(oncard='carda')(), :meth`books(oncard=‘cardb‘)`).
Akce uživatelského rozhraní¶
Pokud přidáváte vlastní modul v souboru ZIP, měli byste vytvořit třídy dědící z InterfaceActionBase i InterfaceAction. Metoda load_actual_plugin() vaší podtřídy InterfaceActionBase musí vrátit vytvořenou instanci vaší podtřídy InterfaceAction.
- class calibre.gui2.actions.InterfaceAction(parent, site_customization)[zdroj]¶
Bases:
QObjectModul reprezentující „akci“, kterou lze provést v grafickém uživatelském rozhraní. Všechny položky v panelu nástrojů a místních nabídkách jsou implementovány těmito moduly.
Všimněte si, že tato třída je základní třídou pro tyto moduly. Aby však bylo možné modul integrovat se systémem modulů calibre, musíte vytvořit obalovou třídu, která odkazuje na skutečný modul. Příklady najdete v modulu
calibre.customize.builtins.Pokud mají dva objekty
InterfaceActionstejný název, přednost má ten s vyšší prioritou.Podtřídy by měly implementovat metody
genesis(),library_changed(),location_selected(),shutting_down(),initialization_complete()atag_browser_context_action().Po inicializaci má tento modul přístup k hlavnímu GUI calibre prostřednictvím členu
gui. K ostatním modulům můžete přistupovat podle názvu, například:self.gui.iactions['Save To Disk']
Pro přístup ke skutečnému modulu použijte atribut
interface_action_base_plugin; tento atribut je dostupný až po inicializaci modulu. Je to užitečné, pokud chcete použít metody ze třídy modulu, například do_user_config().QAction určený pomocí
action_specje automaticky vytvořen a zpřístupněn jakoself.qaction.- name = 'Implement me'¶
Název modulu. Pokud jsou přítomny dva moduly se stejným názvem, přednost má ten s vyšší prioritou.
- priority = 1¶
Priorita modulu. Pokud jsou přítomny dva moduly se stejným názvem, přednost má ten s vyšší prioritou.
- popup_type = 1¶
Typ vyskakovací nabídky pro případ, kdy je tento modul přidán na panel nástrojů
- auto_repeat = False¶
Zda se má tato akce automaticky opakovat, když je podržena její klávesová zkratka.
- action_spec = ('text', 'icon', None, None)¶
Ve tvaru: (text, icon_path, popis, klávesová zkratka). Ikona, popis a klávesová zkratka mohou být None. Klávesová zkratka musí být buď řetězec, None, nebo n-tice zkratek. Pokud je None, klávesová zkratka odpovídající akci se nezaregistruje. Pokud předáte prázdnou n-tici, zkratka se zaregistruje bez výchozí klávesové vazby.
- action_shortcut_name = None¶
Pokud není None, použije se místo action_spec[0] jako název zobrazený uživateli při přizpůsobování klávesových zkratek pro výše uvedenou specifikaci akce
Pokud je True, nabídka se automaticky vytvoří a přidá do self.qaction
Pokud je True, klon self.qaction se přidá do nabídky self.qaction. Pokud chcete, aby se text této akce lišil od textu self.qaction, nastavte tuto proměnnou na nový text
- dont_add_to = frozenset({})¶
Množina umístění, do kterých tato akce nesmí být přidána. Seznam možných umístění najdete v
all_locations
- dont_remove_from = frozenset({})¶
Množina umístění, ze kterých tato akce nesmí být odebrána. Seznam možných umístění najdete v
all_locations
- action_type = 'global'¶
Typ akce. ‚current‘ znamená, že působí na aktuální zobrazení. ‚global‘ znamená akci, která nepůsobí na aktuální zobrazení, ale na calibre jako celek
- accepts_drops = False¶
Pokud je True, bude mít tato InterfaceAction možnost pracovat s událostmi přetažení. Podrobnosti najdete u metod
accept_enter_event(),accept_drag_move_event()adrop_event().
- accept_enter_event(event, mime_data)[zdroj]¶
Tato metoda by měla vrátit True právě tehdy, když je tato akce uživatelského rozhraní schopna zpracovat událost tažení. Nevolejte na události accept/ignore, o to se postará UI calibre.
- accept_drag_move_event(event, mime_data)[zdroj]¶
Tato metoda by měla vrátit True právě tehdy, když je tato akce uživatelského rozhraní schopna zpracovat událost tažení. Nevolejte na události accept/ignore, o to se postará UI calibre.
- drop_event(event, mime_data)[zdroj]¶
Tato metoda by měla provést nějakou užitečnou akci a vrátit True právě tehdy, když je tato akce uživatelského rozhraní schopna zpracovat událost upuštění. Nevolejte na události accept/ignore, o to se postará UI calibre. V této funkci byste neměli provádět blokující nebo dlouhotrvající operace. Místo toho emitujte signál nebo použijte QTimer.singleShot a rychle se vraťte. Příklady najdete ve vestavěných akcích.
Pomocná metoda pro snadné přidávání akcí do QMenu. Vrátí vytvořený QAction. Tato akce má jeden dodatečný atribut calibre_shortcut_unique_name, který, pokud není None, odkazuje na jedinečný název, pod kterým je tato akce zaregistrována u správce klávesových zkratek.
- Parametry:
menu – Objekt QMenu, do kterého bude nově vytvořená akce přidána
unique_name – Jedinečný název pro tuto akci. Musí být globálně jedinečný, proto ho pojmenujte co nejpopisněji. Pokud si nejste jistí, přidejte k němu UUID.
text – Text akce.
icon – Buď QIcon, nebo název souboru. Název souboru se předá vestavěné funkci QIcon.ic(), takže nemusíte předávat úplnou cestu ke složce images.
shortcut – Řetězec, seznam řetězců, None nebo False. Pokud je False, pro tuto akci se nezaregistruje žádná klávesová zkratka. Pokud je None, zaregistruje se klávesová zkratka bez výchozí klávesové vazby. Řetězec a seznam řetězců zaregistrují zkratku s výchozí klávesovou vazbou podle zadání.
description – Popis této akce. Používá se k nastavení popisů.
triggered – Volatelný objekt, který je připojen k signálu triggered vytvořené akce.
shortcut_name – Text zobrazený uživateli při přizpůsobování klávesových zkratek pro tuto akci. Ve výchozím nastavení je nastaven na hodnotu
text.persist_shortcut – Zkratky pro akce, které se nezobrazují vždy nebo jsou závislé na knihovně, mohou zmizet při úpravách jiných klávesových zkratek, pokud není
`persist_shortcut`nastaveno na True.
- load_resources(names)[zdroj]¶
Pokud je tento modul dodán v souboru ZIP (modul přidaný uživatelem), tato metoda vám umožní načíst zdroje ze souboru ZIP.
Například pro načtení obrázku:
pixmap = QPixmap() pixmap.loadFromData(tuple(self.load_resources(['images/icon.png']).values())[0]) icon = QIcon(pixmap)
- Parametry:
names – Seznam cest ke zdrojům v souboru ZIP s použitím / jako oddělovače
- Vrací:
Slovník ve tvaru
{name : file_contents}. Názvy, které nebyly nalezeny v souboru ZIP, ve slovníku nebudou přítomny.
- genesis()[zdroj]¶
Nastaví tento modul. Volá se pouze jednou během inicializace. self.gui je k dispozici. Akce určená pomocí
action_specje dostupná jakoself.qaction.
- location_selected(loc)[zdroj]¶
Volá se pokaždé, když se změní seznam knih zobrazovaný v calibre. Aktuální hodnoty pro loc jsou:
library, main, card and cardb.Tato metoda by měla podle umístění povolit nebo zakázat tuto akci a její dílčí akce.
- library_about_to_change(olddb, db)[zdroj]¶
Volá se pokaždé, když se změní aktuální knihovna.
- Parametry:
olddb – LibraryDatabase odpovídající předchozí knihovně.
db – LibraryDatabase odpovídající nové knihovně.
- library_changed(db)[zdroj]¶
Volá se pokaždé, když se změní aktuální knihovna.
- Parametry:
db – LibraryDatabase odpovídající aktuální knihovně.
- gui_layout_complete()[zdroj]¶
Volá se jednou pro každou akci, když je dokončeno rozložení hlavního GUI. Pokud vaše akce potřebuje provést změny rozložení, měly by být provedeny zde, ne v
initialization_complete().
- initialization_complete()[zdroj]¶
Volá se jednou pro každou akci, když je dokončena inicializace hlavního GUI.
- tag_browser_context_action(index)[zdroj]¶
Volá se při zobrazení místní nabídky v Prohlížeči štítků.
indexje QModelIndex, který ukazuje na položku Prohlížeče štítků, na kterou bylo kliknuto pravým tlačítkem. Otestujte jeho platnost pomocí index.valid() a získejte podkladový objekt TagTreeItem pomocí index.data(Qt.ItemDataRole.UserRole). Všechny objekty akcí vygenerované touto metodou budou přidány do místní nabídky.
- class calibre.customize.InterfaceActionBase(*args, **kwargs)[zdroj]¶
Bases:
Plugin- supported_platforms = ['windows', 'osx', 'linux']¶
Seznam platforem, na kterých tento modul funguje. Například:
['windows', 'osx', 'linux']
- author = 'Kovid Goyal'¶
Autor modulu
- type = 'Akce uživatelského rozhraní'¶
Typ tohoto modulu. Používá se ke kategorizaci modulů v grafickém rozhraní
Moduly předvoleb¶
- class calibre.customize.PreferencesPlugin(plugin_path)[zdroj]¶
Bases:
PluginModul představující widget zobrazený v dialogu Předvolby.
Tento modul má pouze jednu důležitou metodu
create_widget(). Jednotlivá pole modulu určují, jak bude zařazen v UI.- supported_platforms = ['windows', 'osx', 'linux']¶
Seznam platforem, na kterých tento modul funguje. Například:
['windows', 'osx', 'linux']
- author = 'Kovid Goyal'¶
Autor modulu
- type = 'Předvolby'¶
Typ tohoto modulu. Používá se ke kategorizaci modulů v grafickém rozhraní
- config_widget = None¶
Importní cesta k modulu, který obsahuje třídu s názvem ConfigWidget implementující ConfigWidgetInterface. Používá ji
create_widget().
- category = None¶
Kategorie, do které má tento modul patřit
- gui_category = None¶
Název kategorie pro tento modul zobrazený uživateli
- gui_name = None¶
Název zobrazený uživateli pro tento modul
- icon = None¶
Ikona pro tento modul, měla by být zadána jako absolutní cesta
- description = None¶
Text používaný pro popisy a podobná místa
- create_widget(parent=None)[zdroj]¶
Vytvoří a vrátí skutečný widget Qt používaný k nastavení této skupiny předvoleb. Widget musí implementovat
calibre.gui2.preferences.ConfigWidgetInterface.Výchozí implementace používá
config_widgetk vytvoření instance widgetu.
- class calibre.gui2.preferences.ConfigWidgetInterface[zdroj]¶
Tato třída definuje rozhraní, které musí implementovat všechny widgety zobrazené v dialogu Předvolby. Základní třídu, která toto rozhraní implementuje a zároveň definuje různé pomocné metody, najdete v
ConfigWidgetBase.- changed_signal = None¶
Tento signál musí být emitován pokaždé, když uživatel změní hodnotu v tomto widgetu
- supports_restoring_to_defaults = True¶
Nastavte na True právě tehdy, když je implementována metoda
restore_to_defaults().
- restore_defaults_desc = 'Obnovit nastavení na výchozí hodnoty. Musíte kliknout na Použít pro skutečné uložení výchozího nastavení.'¶
Popis tlačítka „Obnovit výchozí nastavení“
- restart_critical = False¶
Pokud je True, dialog Předvolby uživateli nedovolí nastavovat další předvolby. Má účinek pouze tehdy, když
commit()vrátí True.
- genesis(gui)[zdroj]¶
Volá se jednou před zobrazením widgetu a měla by provést všechna potřebná nastavení.
- Parametry:
gui – Hlavní grafické uživatelské rozhraní calibre
- initialize()[zdroj]¶
Nastaví všechny konfigurační hodnoty na jejich počáteční hodnoty (hodnoty uložené v konfiguračních souborech). Příkaz „return“ je volitelný. Vrátí False, pokud se dialog nemá zobrazit.
- commit()[zdroj]¶
Uloží všechna změněná nastavení. Pokud změny vyžadují restart, vrátí True, jinak vrátí False. Vyvolá výjimku
AbortCommit, která označuje, že došlo k chybě. Implementace odpovídá za informování uživatele o tom, o jakou chybu jde a jak ji opravit.
- class calibre.gui2.preferences.ConfigWidgetBase(parent=None)[zdroj]¶
Základní třída obsahující kód pro snadné přidávání standardních konfiguračních widgetů, jako jsou zaškrtávací políčka, rozbalovací seznamy, textová pole a podobně. Viz metoda
register().Tato třída u registrovaných nastavení automaticky zpracovává oznamování změn, obnovování výchozích hodnot, převod mezi objekty gui a konfiguračními objekty atd.
Pokud váš konfigurační widget dědí z této třídy, ale obsahuje nastavení, která nejsou zaregistrována, měli byste přepsat metody
ConfigWidgetInterfacea uvnitř přepisujících metod volat metody základní třídy.- changed_signal¶
Tento signál musí být emitován pokaždé, když uživatel změní hodnotu v tomto widgetu
- supports_restoring_to_defaults = True¶
Nastavte na True právě tehdy, když je implementována metoda
restore_to_defaults().
- restart_critical = False¶
Pokud je True, dialog Předvolby uživateli nedovolí nastavovat další předvolby. Má účinek pouze tehdy, když
commit()vrátí True.
- register(name, config_obj, gui_name=None, choices=None, restart_required=False, empty_string_is_None=True, setting=<class 'calibre.gui2.preferences.Setting'>)[zdroj]¶
Zaregistruje nastavení.
- Parametry:
name – Název nastavení
config_obj – Konfigurační objekt, který čte a zapisuje nastavení
gui_name – Název objektu GUI, který poskytuje rozhraní pro změnu nastavení. Ve výchozím nastavení se předpokládá
'opt_' + name.choices – Pokud je toto nastavení založené na více možnostech (combobox), seznam možností. Seznam je seznamem dvouprvkových n-tic ve tvaru:
[(gui name, value), ...]setting – Třída odpovědná za správu tohoto nastavení. Výchozí třída zpracovává téměř všechny případy, takže tento parametr se používá jen zřídka.
- initialize()[zdroj]¶
Nastaví všechny konfigurační hodnoty na jejich počáteční hodnoty (hodnoty uložené v konfiguračních souborech). Příkaz „return“ je volitelný. Vrátí False, pokud se dialog nemá zobrazit.
