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ý obsahuje

    tento 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:

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_customization v 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 name vráceného objektu.

Parametry:

suffix – Přípona, kterou bude dočasný soubor mít.

cli_main(args)[zdroj]

Tato metoda je hlavním vstupním bodem rozhraní příkazové řádky vašeho modulu. Volá se, když uživatel spustí: calibre-debug -r „Plugin Name“. Všechny předané argumenty jsou přítomné v proměnné args.

FileTypePlugin

class calibre.customize.FileTypePlugin(plugin_path)[zdroj]

Bases: Plugin

Modul, 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: Plugin

Modul, 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: Plugin

Modul, 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: Plugin

Modul, 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.

split_jobs(jobs, num)[zdroj]

Rozdělí seznam úloh nejvýše do num skupin co nejrovnoměrněji

test_fields(mi)[zdroj]

Vrátí první pole z self.touched_fields, které je u objektu mi null

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: Plugin

Moduly 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 instance calibre.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.

specialize(oeb, opts, log, output_fmt)[zdroj]

Volá se, aby vstupní modul mohl specializovat analyzovanou knihu pro konkrétní výstupní formát. Volá se po postprocess_book a před provedením jakýchkoli transformací analyzované knihy.

gui_configuration_widget(parent, get_option_by_name, get_option_help, db, book_id=None)[zdroj]

Volá se k vytvoření widgetu používaného pro konfiguraci tohoto modulu v GUI calibre. Widget musí být instancí třídy PluginWidget. Příklady najdete ve vestavěných vstupních modulech.

class calibre.customize.conversion.OutputFormatPlugin(*args)[zdroj]

Bases: Plugin

Moduly 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).

gui_configuration_widget(parent, get_option_by_name, get_option_help, db, book_id=None)[zdroj]

Volá se k vytvoření widgetu používaného pro konfiguraci tohoto modulu v GUI calibre. Widget musí být instancí třídy PluginWidget. Příklady najdete ve vestavěných výstupních modulech.

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: Plugin

Definuje 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() a set_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řepsat can_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í.

post_yank_cleanup()[zdroj]

Volá se, pokud uživatel zařízení odpojí, aniž by ho nejdříve vysunul.

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:
  1. Hlavní paměť

  2. Paměťová karta A

  3. 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:
  1. Hlavní paměť

  2. Karta A

  3. 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“, pokud on_card není 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 u upload_books().

  • booklists – N-tice obsahující výsledek volání (books(oncard=None)(), books(oncard='carda')(), :meth`books(oncard=‘cardb‘)`).

delete_books(paths, end_session=True)[zdroj]

Smaže knihy na cestách v zařízení.

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ě path v zařízení a zapíše ho do outfile.

Parametry:

outfile – souborový objekt jako sys.stdout nebo výsledek volání open().

classmethod config_widget()[zdroj]

Vrátí QWidget. QWidget obsahuje nastavení rozhraní zařízení

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: list

Seznam knih. Každý objekt Book musí mít pole

  1. title

  2. authors

  3. size (velikost souboru knihy)

  4. datetime (časová n-tice v UTC)

  5. path (cesta ke knize v zařízení)

  6. 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)

  7. tags (seznam řetězců, může být prázdný).

supports_collections()[zdroj]

Vrátí True, pokud zařízení podporuje kolekce pro tento seznam knih.

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

remove_book(book)[zdroj]

Odebere knihu ze seznamu knih. Zároveň opraví případná metadata zařízení

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, DevicePlugin

Tato 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:
  1. Hlavní paměť

  2. Paměťová karta A

  3. 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:
  1. Hlavní paměť

  2. Karta A

  3. 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řepsat can_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í.

post_yank_cleanup()[zdroj]

Volá se, pokud uživatel zařízení odpojí, aniž by ho nejdříve vysunul.

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().

sanitize_path_components(components)[zdroj]

Provede veškerou sanitizaci součástí cesty specifickou pro zařízení u souborů, které mají být odeslány do zařízení

get_annotations(path_map)[zdroj]

Převede path_map na annotation_map souborů nalezených v zařízení

add_annotation_to_library(db, db_id, annotation)[zdroj]

Přidá anotaci do knihovny calibre

class calibre.devices.usbms.cli.CLI[zdroj]
class calibre.devices.usbms.driver.USBMS(plugin_path)[zdroj]

Bases: CLI, Device

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“, pokud on_card není 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 u upload_books().

  • booklists – N-tice obsahující výsledek volání (books(oncard=None)(), books(oncard='carda')(), :meth`books(oncard=‘cardb‘)`).

delete_books(paths, end_session=True)[zdroj]

Smaže knihy na cestách v zařízení.

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‘)`).

classmethod normalize_path(path)[zdroj]

Vrátí cestu s nativními oddělovači cest pro danou platformu

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: QObject

Modul 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 InterfaceAction stejný 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() a tag_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_spec je automaticky vytvořen a zpřístupněn jako self.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

action_add_menu = False

Pokud je True, nabídka se automaticky vytvoří a přidá do self.qaction

action_menu_clone_qaction = False

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() a drop_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.

create_menu_action(menu, unique_name, text, icon=None, shortcut=None, description=None, triggered=None, shortcut_name=None, persist_shortcut=False)[zdroj]

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_spec je dostupná jako self.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ů. index je 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.

shutting_down()[zdroj]

Volá se jednou pro každý modul, když se hlavní GUI právě ukončuje. Uvolněte všechny použité zdroje, ale snažte se neblokovat ukončování po dlouhou dobu.

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í

load_actual_plugin(gui)[zdroj]

Tato metoda musí vrátit skutečný objekt modulu akce uživatelského rozhraní.

Moduly předvoleb

class calibre.customize.PreferencesPlugin(plugin_path)[zdroj]

Bases: Plugin

Modul 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_order = 100

Kde má být v seznamu kategorií umístěna category tohoto modulu.

name_order = 100

Kde má být v seznamu názvů v kategorii umístěn gui_name tohoto modulu

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_widget k 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.

restore_defaults()[zdroj]

Nastaví všechny konfigurační hodnoty na jejich výchozí hodnoty.

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.

refresh_gui(gui)[zdroj]

Volá se jednou po potvrzení změn tohoto widgetu. Odpovídá za to, že gui znovu načte všechna změněná nastavení. Všimněte si, že GUI ve výchozím nastavení stejně znovu inicializuje různé prvky, takže většina widgetů tuto metodu nebude muset použít.

initial_tab_changed()[zdroj]

Volá se, pokud je původně zobrazená karta změněna před zobrazením widgetu, ale po jeho inicializaci.

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 ConfigWidgetInterface a 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.

commit(*args)[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.

restore_defaults(*args)[zdroj]

Nastaví všechny konfigurační hodnoty na jejich výchozí hodnoty.