API dokumentácia pre zásuvné moduly

Definuje rôzne abstraktné základné triedy, z ktorých je možné dediť a vytvárať tak výkonné zásuvné moduly. Užitočné triedy sú:

Zásuvný modul

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

Zásuvný modul calibre. Užitoční členovia zahŕňajú:

  • self.installation_type: Uchováva informáciu o tom, ako bol zásuvný modul nainštalovaný.

  • self.plugin_path: Uchováva cestu k súboru ZIP, ktorý obsahuje

    tento zásuvný modul alebo None, ak ide o vstavaný zásuvný modul

  • self.site_customization: Uchováva reťazec prispôsobenia zadaný

    používateľom.

Metódy, ktoré by sa mali prepísať v podtriedach:

Užitočné metódy:

supported_platforms = []

Zoznam platforiem, na ktorých tento zásuvný modul funguje. Napríklad: ['windows', 'osx', 'linux']

name = 'Trivial Plugin'

Názov tohto zásuvného modulu. Aby fungoval, musíte ho nastaviť na niečo iné ako Trivial Plugin.

version = (1, 0, 0)

Verzia tohto zásuvného modulu ako 3-prvkový tuple (hlavná, vedľajšia, revízia)

description = 'Nerobí vôbec nič'

Krátky reťazec popisujúci, čo tento zásuvný modul robí

author = 'Neznáme'

Autor tohto zásuvného modulu

priority = 1

Ak pre daný typ súboru existuje viac ako jeden zásuvný modul, spúšťajú sa v poradí klesajúcej priority. Zásuvné moduly s vyššou prioritou sa spustia ako prvé. Najvyššia možná priorita je sys.maxsize. Predvolená priorita je 1.

minimum_calibre_version = (0, 4, 118)

Najstaršia verzia calibre, ktorú tento zásuvný modul vyžaduje

installation_type = None

Spôsob, akým je tento zásuvný modul nainštalovaný

can_be_disabled = True

Ak je False, používateľ nebude môcť tento zásuvný modul zakázať. Používajte opatrne.

type = 'Základ'

Typ tohto zásuvného modulu. Používa sa na kategorizáciu zásuvných modulov v GUI

initialize()[zdroj]

Volá sa raz pri inicializácii zásuvných modulov calibre. Zásuvné moduly sa opätovne inicializujú pri každom pridaní nového zásuvného modulu. Upozorňujeme tiež, že ak sa zásuvný modul spúšťa v pracovnom procese, napríklad pri pridávaní kníh, zásuvný modul sa inicializuje pre každý nový pracovný proces.

Vykonajte tu akúkoľvek inicializáciu špecifickú pre zásuvný modul, napríklad extrahovanie prostriedkov zo súboru ZIP zásuvného modulu. Cesta k súboru ZIP je dostupná ako self.plugin_path.

Upozorňujeme, že self.site_customization v tomto bode nie je dostupné.

config_widget()[zdroj]

Implementujte túto metódu a save_settings() vo svojom zásuvnom module, ak chcete používať vlastné dialógové okno konfigurácie namiesto jednoduchého predvoleného prispôsobenia založeného na reťazcoch.

Táto metóda, ak je implementovaná, musí vrátiť QWidget. Widget môže mať voliteľnú metódu validate(), ktorá neprijíma žiadne argumenty a volá sa okamžite po kliknutí používateľa na OK. Zmeny sa použijú vtedy a len vtedy, ak metóda vráti True.

Ak z nejakého dôvodu nemôžete konfiguráciu vykonať v tomto čase, vráťte tuple dvoch reťazcov (správa, podrobnosti); tieto sa zobrazia ako dialógové okno s upozornením pre používateľa a proces sa preruší.

save_settings(config_widget)[zdroj]

Uloží nastavenia zadané používateľom pomocou config_widget.

Parametre:

config_widget – Widget vrátený metódou config_widget().

do_user_config(parent=None)[zdroj]

Táto metóda zobrazuje dialógové okno konfigurácie pre tento zásuvný modul. Vráti True, ak používateľ klikne na OK, v opačnom prípade False. Zmeny sa použijú automaticky.

load_resources(names)[zdroj]

Ak tento zásuvný modul prichádza v súbore ZIP (zásuvný modul pridaný používateľom), táto metóda vám umožní načítať prostriedky zo súboru ZIP.

Napríklad na načítanie obrázka:

pixmap = QPixmap()
pixmap.loadFromData(self.load_resources(['images/icon.png'])['images/icon.png'])
icon = QIcon(pixmap)
Parametre:

names – Zoznam ciest k prostriedkom v súbore ZIP s použitím / ako oddeľovača

Vracia:

Slovník v tvare {name: file_contents}. Všetky názvy, ktoré sa nenašli v súbore ZIP, nebudú v slovníku prítomné.

customization_help(gui=False)[zdroj]

Vráti reťazec s pomocou o tom, ako prispôsobiť tento zásuvný modul. Predvolene vyvolá NotImplementedError, čo znamená, že zásuvný modul nevyžaduje prispôsobenie.

Ak túto metódu znovu implementujete vo svojej podtriede, používateľ bude požiadaný, aby zadal reťazec ako prispôsobenie pre tento zásuvný modul. Reťazec prispôsobenia bude dostupný ako self.site_customization.

Prispôsobenie lokality môže byť čokoľvek, napríklad cesta k potrebnému binárnemu súboru v počítači používateľa.

Parametre:

gui – Ak je True, vráti pomoc vo formáte HTML, inak vráti pomoc ako čistý text.

temporary_file(suffix)[zdroj]

Vráti objekt podobný súboru, ktorý je dočasným súborom v systéme súborov. Tento súbor zostane dostupný aj po zatvorení a odstráni sa až pri ukončení interpreta. Na prístup k úplnej ceste k vytvorenému dočasnému súboru použite člen name vráteného objektu.

Parametre:

suffix – Prípona, ktorú bude mať dočasný súbor.

cli_main(args)[zdroj]

Táto metóda je hlavným vstupným bodom pre rozhranie príkazového riadka vášho zásuvného modulu. Volá sa, keď používateľ vykoná: calibre-debug -r „Plugin Name“. Všetky odovzdané argumenty sú prítomné v premennej args.

FileTypePlugin

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

Základ: Plugin

Zásuvný modul, ktorý je spojený s konkrétnou množinou typov súborov.

file_types = {}

Množina typov súborov, pre ktoré sa má tento zásuvný modul spustiť. Použite ‚*‘ pre všetky typy súborov. Napríklad: {'lit', 'mobi', 'prc'}

on_import = False

Ak je True, tento zásuvný modul sa spustí pri pridávaní kníh do databázy

on_postimport = False

Ak je True, tento zásuvný modul sa spustí po pridaní kníh do databázy. V tomto prípade sa volajú metódy postimport a postadd zásuvného modulu.

on_postconvert = False

Ak je True, tento zásuvný modul sa spustí po konverzii knihy. V tomto prípade sa volá metóda postconvert zásuvného modulu.

on_postdelete = False

Ak je True, tento zásuvný modul sa spustí po vymazaní súboru knihy z databázy. V tomto prípade sa volá metóda postdelete zásuvného modulu.

on_preprocess = False

Ak je True, tento zásuvný modul sa spustí tesne pred konverziou

on_postprocess = False

Ak je True, tento zásuvný modul sa spustí po konverzii na výslednom súbore vytvorenom zásuvným modulom výstupu konverzie.

type = 'Typ súboru'

Typ tohto zásuvného modulu. Používa sa na kategorizáciu zásuvných modulov v GUI

run(path_to_ebook)[zdroj]

Spustí zásuvný modul. Musí byť implementovaný v podtriedach. Mal by vykonať všetky požadované úpravy e-knihy a vrátiť absolútnu cestu k upravenej e-knihe. Ak nie sú potrebné žiadne úpravy, mal by vrátiť cestu k pôvodnej e-knihe. Ak sa vyskytne chyba, mal by vyvolať výnimku. Predvolená implementácia jednoducho vráti cestu k pôvodnej e-knihe. Upozorňujeme, že cesta k pôvodnému súboru (pred spustením akýchkoľvek zásuvných modulov typu súboru je dostupná ako self.original_path_to_file).

Upravený súbor e-knihy by sa mal vytvoriť pomocou metódy temporary_file().

Parametre:

path_to_ebook – Absolútna cesta k e-knihe.

Vracia:

Absolútna cesta k upravenej e-knihe.

postimport(book_id, book_format, db)[zdroj]

Volá sa po importe, t. j. po pridaní súboru knihy do databázy. Upozorňujeme, že toto sa líši od postadd(), ktorá sa volá pri prvom vytvorení záznamu knihy. Táto metóda sa volá vždy, keď sa do záznamu knihy pridá nový súbor. Je užitočná na úpravu záznamu knihy na základe obsahu novo pridaného súboru.

Parametre:
  • book_id – ID databázy pridanej knihy.

  • book_format – Typ súboru pridanej knihy.

  • db – Databáza knižnice.

postconvert(book_id, book_format, db)[zdroj]

Volá sa po konverzii, t. j. po pridaní výstupného súboru knihy z konverzie do databázy. Upozorňujeme, že sa spúšťa iba po konverzii, nie po pridaní knihy. Je užitočná na úpravu záznamu knihy na základe obsahu novo pridaného súboru.

Parametre:
  • book_id – ID databázy pridanej knihy.

  • book_format – Typ súboru pridanej knihy.

  • db – Databáza knižnice.

postdelete(book_id, book_format, db)[zdroj]

Volá sa po vymazaní, t. j. po vymazaní súboru knihy z databázy. Upozorňujeme, že sa nespúšťa pri vymazaní záznamu knihy, iba keď sa vymaže jeden alebo viac formátov knihy. Je užitočná na úpravu záznamu knihy na základe formátu vymazaného súboru.

Parametre:
  • book_id – ID databázy pridanej knihy.

  • book_format – Typ súboru pridanej knihy.

  • db – Databáza knižnice.

postadd(book_id, fmt_map, db)[zdroj]

Volá sa po pridaní, t. j. po pridaní knihy do databázy. Upozorňujeme, že toto sa líši od postimport(), ktorá sa volá po pridaní jedného súboru knihy do knihy. postadd() sa volá iba vtedy, keď bol celý záznam knihy prípadne s viac ako jedným súborom knihy vytvorený po prvýkrát. Je to užitočné, ak chcete upraviť záznam knihy v databáze pri prvom pridaní knihy do calibre.

Parametre:
  • book_id – ID databázy pridanej knihy.

  • fmt_map – Mapovanie formátu súboru na cestu, z ktorej bol formát súboru pridaný. Upozorňujeme, že toto môže alebo nemusí odkazovať na skutočne existujúci súbor, pretože niekedy sa súbory pridávajú ako streamy. V takom prípade môže ísť o fiktívnu hodnotu alebo neexistujúcu cestu.

  • db – Databáza knižnice

Zásuvné moduly metadát

class calibre.customize.MetadataReaderPlugin(*args, **kwargs)[zdroj]

Základ: Plugin

Zásuvný modul, ktorý implementuje čítanie metadát z množiny typov súborov.

file_types = {}

Množina typov súborov, pre ktoré sa má tento zásuvný modul spustiť. Napríklad: set(['lit', 'mobi', 'prc'])

supported_platforms = ['windows', 'osx', 'linux']

Zoznam platforiem, na ktorých tento zásuvný modul funguje. Napríklad: ['windows', 'osx', 'linux']

version = (9, 16, 0)

Verzia tohto zásuvného modulu ako 3-prvkový tuple (hlavná, vedľajšia, revízia)

author = 'Kovid Goyal'

Autor tohto zásuvného modulu

type = 'Čítanie metadát'

Typ tohto zásuvného modulu. Používa sa na kategorizáciu zásuvných modulov v GUI

get_metadata(stream, type)[zdroj]

Vráti metadáta pre súbor reprezentovaný streamom (objekt podobný súboru, ktorý podporuje čítanie). Vyvolá výnimku, ak sa vyskytne chyba so vstupnými údajmi.

Parametre:

type – Typ súboru. Zaručene ide o jednu z položiek v file_types.

Vracia:

Objekt calibre.ebooks.metadata.book.Metadata

class calibre.customize.MetadataWriterPlugin(*args, **kwargs)[zdroj]

Základ: Plugin

Zásuvný modul, ktorý implementuje čítanie metadát z množiny typov súborov.

file_types = {}

Množina typov súborov, pre ktoré sa má tento zásuvný modul spustiť. Napríklad: set(['lit', 'mobi', 'prc'])

supported_platforms = ['windows', 'osx', 'linux']

Zoznam platforiem, na ktorých tento zásuvný modul funguje. Napríklad: ['windows', 'osx', 'linux']

version = (9, 16, 0)

Verzia tohto zásuvného modulu ako 3-prvkový tuple (hlavná, vedľajšia, revízia)

author = 'Kovid Goyal'

Autor tohto zásuvného modulu

type = 'Zápis metadát'

Typ tohto zásuvného modulu. Používa sa na kategorizáciu zásuvných modulov v GUI

set_metadata(stream, mi, type)[zdroj]

Nastaví metadáta pre súbor reprezentovaný streamom (objekt podobný súboru, ktorý podporuje čítanie). Vyvolá výnimku, ak sa vyskytne chyba so vstupnými údajmi.

Parametre:
  • type – Typ súboru. Zaručene ide o jednu z položiek v file_types.

  • mi – Objekt calibre.ebooks.metadata.book.Metadata

Zásuvné moduly katalógu

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

Základ: Plugin

Zásuvný modul, ktorý implementuje generátor katalógu.

file_types = {}

Výstupný typ súboru, pre ktorý sa má tento zásuvný modul spustiť. Napríklad: ‚epub‘ alebo ‚xml‘

type = 'Generátor katalógu'

Typ tohto zásuvného modulu. Používa sa na kategorizáciu zásuvných modulov v GUI

cli_options = []

Možnosti analyzátora CLI špecifické pre tento zásuvný modul, deklarované ako 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]

Ak zásuvný modul nie je vstavaný, skopírujte súbory .ui a .py zásuvného modulu zo súboru ZIP do $TMPDIR. Karta sa dynamicky vygeneruje a pridá do dialógového okna Catalog Options v calibre.gui2.dialogs.catalog.py:Catalog

run(path_to_output, opts, db, ids, notification=None)[zdroj]

Spustí zásuvný modul. Musí byť implementovaný v podtriedach. Mal by vygenerovať katalóg vo formáte uvedenom v file_types a vrátiť absolútnu cestu k vygenerovanému súboru katalógu. Ak sa vyskytne chyba, mal by vyvolať výnimku.

Vygenerovaný súbor katalógu by sa mal vytvoriť pomocou metódy temporary_file().

Parametre:
  • path_to_output – Absolútna cesta k vygenerovanému súboru katalógu.

  • opts – Slovník kľúčových argumentov

  • db – Objekt LibraryDatabase2

Zásuvné moduly sťahovania metadát

class calibre.ebooks.metadata.sources.base.Source(*args, **kwargs)[zdroj]

Základ: Plugin

type = 'Zdroj metadat'

Typ tohto zásuvného modulu. Používa sa na kategorizáciu zásuvných modulov v GUI

author = 'Kovid Goyal'

Autor tohto zásuvného modulu

supported_platforms = ['windows', 'osx', 'linux']

Zoznam platforiem, na ktorých tento zásuvný modul funguje. Napríklad: ['windows', 'osx', 'linux']

capabilities = frozenset({})

Množina schopností podporovaných týmto zásuvným modulom. Užitočné schopnosti sú: ‚identify‘, ‚cover‘

touched_fields = frozenset({})

Zoznam polí metadát, ktoré môže tento zásuvný modul potenciálne stiahnuť počas fázy identifikácie

has_html_comments = False

Nastavte na True, ak váš zásuvný modul vracia komentáre vo formáte HTML

supports_gzip_transfer_encoding = False

Nastavenie na True znamená, že objekt prehliadača bude indikovať, že podporuje prenosové kódovanie gzip. To môže zrýchliť sťahovanie, ale najprv sa uistite, že zdroj skutočne správne podporuje prenosové kódovanie gzip

ignore_ssl_errors = False

Nastavte na True, ak chcete ignorovať chyby certifikátu HTTPS pri pripájaní k tomuto zdroju.

cached_cover_url_is_reliable = True

URL adresy obálok v vyrovnávacej pamäti môžu byť niekedy nespoľahlivé (t. j. sťahovanie môže zlyhať alebo vrátený obrázok môže byť falošný). Ak je to pri tomto zdroji často, nastavte na False

options = ()

Zoznam objektov Option. Použijú sa na automatickú konštrukciu widgetu konfigurácie pre tento zásuvný modul

config_help_message = None

Reťazec, ktorý sa zobrazuje v hornej časti widgetu konfigurácie pre tento zásuvný modul

can_get_multiple_covers = False

Ak je True, tento zdroj môže vrátiť viacero obálok pre daný dopyt

auto_trim_covers = False

Ak je nastavené na True, obálky stiahnuté týmto zásuvným modulom sa automaticky orežú.

prefer_results_with_isbn = True

Ak je nastavené na True a tento zdroj vráti viacero výsledkov pre dopyt, pričom niektoré majú ISBN a niektoré nie, výsledky bez ISBN sa ignorujú

is_configured()[zdroj]

Vráti False, ak váš zásuvný modul vyžaduje konfiguráciu pred použitím. Napríklad môže vyžadovať používateľské meno/heslo/API kľúč.

customization_help(gui=False)[zdroj]

Vráti reťazec s pomocou o tom, ako prispôsobiť tento zásuvný modul. Predvolene vyvolá NotImplementedError, čo znamená, že zásuvný modul nevyžaduje prispôsobenie.

Ak túto metódu znovu implementujete vo svojej podtriede, používateľ bude požiadaný, aby zadal reťazec ako prispôsobenie pre tento zásuvný modul. Reťazec prispôsobenia bude dostupný ako self.site_customization.

Prispôsobenie lokality môže byť čokoľvek, napríklad cesta k potrebnému binárnemu súboru v počítači používateľa.

Parametre:

gui – Ak je True, vráti pomoc vo formáte HTML, inak vráti pomoc ako čistý text.

config_widget()[zdroj]

Implementujte túto metódu a save_settings() vo svojom zásuvnom module, ak chcete používať vlastné dialógové okno konfigurácie namiesto jednoduchého predvoleného prispôsobenia založeného na reťazcoch.

Táto metóda, ak je implementovaná, musí vrátiť QWidget. Widget môže mať voliteľnú metódu validate(), ktorá neprijíma žiadne argumenty a volá sa okamžite po kliknutí používateľa na OK. Zmeny sa použijú vtedy a len vtedy, ak metóda vráti True.

Ak z nejakého dôvodu nemôžete konfiguráciu vykonať v tomto čase, vráťte tuple dvoch reťazcov (správa, podrobnosti); tieto sa zobrazia ako dialógové okno s upozornením pre používateľa a proces sa preruší.

save_settings(config_widget)[zdroj]

Uloží nastavenia zadané používateľom pomocou config_widget.

Parametre:

config_widget – Widget vrátený metódou config_widget().

get_author_tokens(authors, only_first_author=True)[zdroj]

Prijme zoznam autorov a vráti zoznam tokenov užitočných pre vyhľadávací dopyt AND. Táto funkcia sa pokúša vrátiť tokeny v poradí krstné meno, stredné mená, priezvisko, pričom predpokladá, že ak je v mene autora čiarka, meno je v tvare priezvisko, ostatné mená.

get_title_tokens(title, strip_joiners=True, strip_subtitle=False)[zdroj]

Prijme názov a vráti zoznam tokenov užitočných pre vyhľadávací dopyt AND. Vylučuje spojky (voliteľne) a interpunkciu.

split_jobs(jobs, num)[zdroj]

Rozdelí zoznam úloh na najviac num skupín, čo najrovnomernejšie

test_fields(mi)[zdroj]

Vráti prvé pole z self.touched_fields, ktoré je null v objekte mi

clean_downloaded_metadata(mi)[zdroj]

Zavolajte túto metódu v metóde identify vášho zásuvného modulu na normalizáciu metadát pred vložením objektu Metadata do result_queue. Môžete samozrejme použiť vlastný algoritmus vhodný pre váš zdroj metadát.

get_book_url(identifiers)[zdroj]

Vráti 3-prvkový tuple alebo None. 3-prvkový tuple má tvar: (identifier_type, identifier_value, URL). URL je adresa knihy identifikovanej identifikátormi v tomto zdroji. identifier_type, identifier_value určujú identifikátor zodpovedajúci URL. Táto URL musí byť prehliadnuteľná človekom pomocou prehliadača. Je určená na poskytnutie klikateľného odkazu pre používateľa, aby mohol ľahko navštíviť stránku knihy v tomto zdroji. Ak sa nenájde žiadna URL, vráťte None. Táto metóda musí byť rýchla a konzistentná, takže ju implementujte iba vtedy, ak je možné zostaviť URL zo známej schémy na základe identifikátorov.

get_book_url_name(idtype, idval, url)[zdroj]

Vráti ľudsky čitateľný názov z návratovej hodnoty get_book_url().

get_book_urls(identifiers)[zdroj]

Prepíšte túto metódu, ak chcete vrátiť viacero URL pre túto knihu. Vráti zoznam 3-prvkových tuple. Predvolene táto metóda jednoducho volá get_book_url().

get_cached_cover_url(identifiers)[zdroj]

Vráti URL obálky z vyrovnávacej pamäte pre knihu identifikovanú slovníkom identifikátorov alebo None, ak taká URL neexistuje.

Upozorňujeme, že táto metóda musí vracať iba overené URL, t. j. nie URL, ktoré by mohli viesť k všeobecnému obrázku obálky alebo k chybe nenájdené.

id_from_url(url)[zdroj]

Analyzuje URL a vráti tuple v tvare: (identifier_type, identifier_value). Ak URL nezodpovedá vzoru pre zdroj metadát, vráti None.

identify_results_keygen(title=None, authors=None, identifiers={})[zdroj]

Vráti funkciu, ktorá sa používa na generovanie kľúča, ktorý môže triediť objekty Metadata podľa ich relevantnosti vzhľadom na vyhľadávací dopyt (názov, autori, identifikátory).

Tieto kľúče sa používajú na triedenie výsledkov volania identify().

Podrobnosti o predvolenom algoritme nájdete v InternalMetadataCompareKeyGen. Znovu implementujte túto funkciu vo svojom zásuvnom module, ak predvolený algoritmus nie je vhodný.

identify(log, result_queue, abort, title=None, authors=None, identifiers={}, timeout=30)[zdroj]

Identifikuje knihu podľa jej názvu/autora/ISBN/atď.

Ak sú zadané identifikátory a nenájde sa zhoda a tento zdroj metadát neukladá všetky súvisiace identifikátory (napríklad všetky ISBN knihy), táto metóda by mala skúsiť znova iba s názvom a autorom (za predpokladu, že boli zadané).

Ak tento zdroj metadát poskytuje aj obálky, URL obálky by mala byť uložená do vyrovnávacej pamäte, aby následné volanie API get covers s rovnakým ISBN/špeciálnym identifikátorom nemuselo znova získavať URL obálky. Použite na to API vyrovnávacej pamäte.

Každý objekt Metadata vložený touto metódou do result_queue musí mať atribút source_relevance, ktorý je celé číslo označujúce poradie, v ktorom boli výsledky vrátené zdrojom metadát pre tento dopyt. Toto celé číslo použije compare_identify_results(). Ak je poradie nedôležité, nastavte ho na nulu pre každý výsledok.

Uistite sa, že všetky informácie o mapovaní obálky/ISBN sú uložené vo vyrovnávacej pamäti predtým, ako sa objekt Metadata vloží do result_queue.

Parametre:
  • log – Objekt logu, použite ho na výstup ladiacich informácií/chyb

  • result_queue – Front výsledkov, výsledky by sa do neho mali vkladať. Každý výsledok je objekt Metadata

  • abort – Ak abort.is_set() vráti True, prerušte ďalšie spracovanie a vráťte sa čo najskôr

  • title – Názov knihy, môže byť None

  • authors – Zoznam autorov knihy, môže byť None

  • identifiers – Slovník ostatných identifikátorov, najčastejšie {‚isbn‘:‘1234…‘}

  • timeout – Časový limit v sekundách, žiadna sieťová požiadavka by nemala visieť dlhšie ako časový limit.

Vracia:

None, ak nenastali žiadne chyby, inak unicode reprezentácia chyby vhodná na zobrazenie používateľovi

download_cover(log, result_queue, abort, title=None, authors=None, identifiers={}, timeout=30, get_best_cover=False)[zdroj]

Stiahne obálku a vloží ju do result_queue. Všetky parametre majú rovnaký význam ako pri identify(). Vložte (self, cover_data) do result_queue.

Táto metóda by mala kvôli efektivite podľa možnosti používať URL obálok z vyrovnávacej pamäte. Keď údaje vo vyrovnávacej pamäti nie sú k dispozícii, väčšina zásuvných modulov jednoducho zavolá identify a použije jeho výsledky.

Ak je parameter get_best_cover True a tento zásuvný modul môže získať viacero obálok, mal by získať iba tú „najlepšiu“.

class calibre.ebooks.metadata.sources.base.InternalMetadataCompareKeyGen(mi, source_plugin, title, authors, identifiers)[zdroj]

Vygeneruje kľúč triedenia na porovnanie relevantnosti objektov Metadata vzhľadom na vyhľadávací dopyt. Používa sa iba na porovnanie výsledkov z rovnakého zdroja metadát, nie medzi rôznymi zdrojmi.

Kľúč triedenia zaisťuje, že vzostupné triedenie je triedením podľa klesajúcej relevantnosti.

Algoritmus je:

  • Uprednostniť výsledky, ktoré majú aspoň jeden identifikátor rovnaký ako dopyt

  • Uprednostniť výsledky s URL obálky vo vyrovnávacej pamäti

  • Uprednostniť výsledky so všetkými dostupnými vyplnenými poľami

  • Uprednostniť výsledky v rovnakom jazyku, ako je aktuálny jazyk používateľského rozhrania

  • Uprednostniť výsledky, ktoré presne zodpovedajú názvu dopytu

  • Uprednostniť výsledky s dlhšími komentármi (o viac ako 10 % dlhšie)

  • Použiť relevantnosť výsledku, ako ju uvádza vyhľadávací

    nástroj zdroja metadát

Zásuvné moduly konverzie

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

Základ: Plugin

InputFormatPlugins sú zodpovedné za konverziu dokumentu na HTML+OPF+CSS+atď. Výsledky konverzie musia byť kódované v UTF-8. Hlavná činnosť sa vykonáva v convert().

type = 'Vstup prevodu'

Typ tohto zásuvného modulu. Používa sa na kategorizáciu zásuvných modulov v GUI

supported_platforms = ['windows', 'osx', 'linux']

Zoznam platforiem, na ktorých tento zásuvný modul funguje. Napríklad: ['windows', 'osx', 'linux']

file_types = {}

Množina typov súborov, pre ktoré sa má tento zásuvný modul spustiť. Napríklad: set(['azw', 'mobi', 'prc'])

is_image_collection = False

Ak je True, tento vstupný zásuvný modul generuje kolekciu obrázkov, jeden na každý HTML súbor. Toto je možné nastaviť dynamicky v metóde convert, ak vstupné súbory môžu byť tak kolekcie obrázkov, ako aj iné ako kolekcie obrázkov. Ak to nastavíte na True, musíte implementovať metódu get_images(), ktorá vracia zoznam obrázkov.

core_usage = 1

Počet jadier CPU používaných týmto zásuvným modulom. Hodnota -1 znamená, že používa všetky dostupné jadrá

for_viewer = False

Ak je nastavené na True, vstupný zásuvný modul vykoná špeciálne spracovanie, aby bol jeho výstup vhodný na prezeranie

output_encoding = 'utf-8'

Kódovanie, v ktorom tento vstupný zásuvný modul vytvára súbory. Hodnota None znamená, že kódovanie nie je definované a musí sa zistiť individuálne

common_options = {<calibre.customize.conversion.OptionRecommendation object>}

Možnosti zdieľané všetkými zásuvnými modulmi vstupného formátu. Neprepisujte v podtriedach. Namiesto toho použite options. Každá možnosť musí byť inštanciou OptionRecommendation.

options = {}

Možnosti na prispôsobenie správania tohto zásuvného modulu. Každá možnosť musí byť inštanciou OptionRecommendation.

recommendations = {}

Množina 3-prvkových tuple v tvare (option_name, recommended_value, recommendation_level)

get_images()[zdroj]

Vráti zoznam absolútnych ciest k obrázkom, ak tento vstupný zásuvný modul predstavuje kolekciu obrázkov. Zoznam obrázkov je v rovnakom poradí ako chrbtová časť a obsah.

convert(stream, options, file_ext, log, accelerators)[zdroj]

Táto metóda musí byť implementovaná v podtriedach. Musí vrátiť cestu k vytvorenému súboru OPF alebo inštanciu OEBBook. Všetok výstup by mal byť umiestnený v aktuálnom priečinku. Ak tento zásuvný modul vytvára súbory mimo aktuálneho priečinka, musia byť vymazané/označené na vymazanie predtým, ako táto metóda vráti hodnotu.

Parametre:
  • stream – Objekt podobný súboru, ktorý obsahuje vstupný súbor.

  • options – Možnosti na prispôsobenie procesu konverzie. Zaručene má atribúty zodpovedajúce všetkým možnostiam deklarovaným týmto zásuvným modulom. Okrem toho bude mať atribút verbose, ktorý nadobúda celočíselné hodnoty od nuly vyššie. Vyššie čísla znamenajú väčšiu podrobnosť. Ďalší užitočný atribút je input_profile, čo je inštancia calibre.customize.profiles.InputProfile.

  • file_ext – Prípona (bez bodky) vstupného súboru. Zaručene ide o jeden z file_types podporovaných týmto zásuvným modulom.

  • log – Objekt calibre.utils.logging.Log. Všetok výstup by mal používať tento objekt.

  • accelerators – Slovník rôznych informácií, ktoré môže vstupný zásuvný modul ľahko získať a ktoré by urýchlili nasledujúce fázy konverzie.

postprocess_book(oeb, opts, log)[zdroj]

Volá sa, aby umožnil vstupnému zásuvnému modulu vykonať následné spracovanie po analýze knihy.

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

Volá sa, aby umožnil vstupnému zásuvnému modulu prispôsobiť analyzovanú knihu konkrétnemu výstupnému formátu. Volá sa po postprocess_book a pred vykonaním akýchkoľvek transformácií na analyzovanej knihe.

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

Volá sa na vytvorenie widgetu používaného na konfiguráciu tohto zásuvného modulu v GUI calibre. Widget musí byť inštanciou triedy PluginWidget. Príklady nájdete vo vstavaných vstupných zásuvných moduloch.

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

Základ: Plugin

OutputFormatPlugins sú zodpovedné za konverziu dokumentu OEB (OPF+HTML) na výstupnú e-knihu.

Dá sa predpokladať, že dokument OEB je kódovaný v UTF-8. Hlavná činnosť sa vykonáva v convert().

type = 'Výstup prevodu'

Typ tohto zásuvného modulu. Používa sa na kategorizáciu zásuvných modulov v GUI

supported_platforms = ['windows', 'osx', 'linux']

Zoznam platforiem, na ktorých tento zásuvný modul funguje. Napríklad: ['windows', 'osx', 'linux']

file_type = None

Typ súboru (prípona bez úvodnej bodky), ktorý tento zásuvný modul vytvára

common_options = {<calibre.customize.conversion.OptionRecommendation object>}

Možnosti zdieľané všetkými zásuvnými modulmi vstupného formátu. Neprepisujte v podtriedach. Namiesto toho použite options. Každá možnosť musí byť inštanciou OptionRecommendation.

options = {}

Možnosti na prispôsobenie správania tohto zásuvného modulu. Každá možnosť musí byť inštanciou OptionRecommendation.

recommendations = {}

Množina 3-prvkových tuple v tvare (option_name, recommended_value, recommendation_level)

property description

str(object=‘‘) -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

Vytvorí nový objekt reťazca z daného objektu. Ak je zadané kódovanie alebo chyby, objekt musí sprístupniť dátovú vyrovnávaciu pamäť, ktorá sa dekóduje pomocou daného kódovania a obsluhy chýb. V opačnom prípade vráti výsledok object.__str__() (ak je definovaný) alebo repr(object). Kódovanie je predvolene ‚utf-8‘. Chyby sú predvolene ‚strict‘.

convert(oeb_book, output, input_plugin, opts, log)[zdroj]

Vykreslí obsah oeb_book (čo je inštancia calibre.ebooks.oeb.OEBBook) do súboru určeného výstupom.

Parametre:
  • output – Buď objekt podobný súboru, alebo reťazec. Ak ide o reťazec, je to cesta k priečinku, ktorý môže alebo nemusí existovať. Výstupný zásuvný modul by mal zapísať svoj výstup do tohto priečinka. Ak ide o objekt podobný súboru, výstupný zásuvný modul by mal zapísať svoj výstup do súboru.

  • input_plugin – Vstupný zásuvný modul, ktorý bol použitý na začiatku konverzného kanála.

  • opts – Možnosti konverzie. Zaručene má atribúty zodpovedajúce OptionRecommendations tohto zásuvného modulu.

  • log – Logger. Použite ho na tlač ladiacich/informačných správ atď.

specialize_options(log, opts, input_fmt)[zdroj]

Dá sa použiť na zmenu hodnôt možností konverzie, ako ich používa konverzný kanál.

specialize_css_for_output(log, opts, item, stylizer)[zdroj]

Dá sa použiť na vykonanie zmien v CSS počas procesu splošťovania CSS.

Parametre:
  • item – Spracovávaná položka (súbor HTML)

  • stylizer – Objekt Stylizer obsahujúci sploštené štýly pre položku. Štýl pre akýkoľvek prvok získate pomocou stylizer.style(element).

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

Volá sa na vytvorenie widgetu používaného na konfiguráciu tohto zásuvného modulu v GUI calibre. Widget musí byť inštanciou triedy PluginWidget. Príklady nájdete vo vstavaných výstupných zásuvných moduloch.

Ovládače zariadení

Základná trieda pre všetky ovládače zariadení je DevicePlugin. Ak sa však vaše zariadenie javí operačnému systému ako jednotka USBMS, mali by ste namiesto toho použiť triedu USBMS, pretože implementuje všetku logiku potrebnú na podporu týchto typov zariadení.

class calibre.devices.interface.DevicePlugin(plugin_path)[zdroj]

Základ: Plugin

Definuje rozhranie, ktoré by mali implementovať backendy komunikujúce s čítačkou e-kníh.

type = 'Rozhranie zariadenia'

Typ tohto zásuvného modulu. Používa sa na kategorizáciu zásuvných modulov v GUI

FORMATS: ClassVar[list[str]] = ['lrf', 'rtf', 'pdf', 'txt']

Usporiadaný zoznam podporovaných formátov

VENDOR_ID: ClassVar[int | list[int] | dict[int, dict[int, list[int] | None]]] = 0

VENDOR_ID môže byť buď celé číslo, zoznam celých čísel alebo slovník. Ak ide o slovník, musí to byť slovník slovníkov v tvare:

{
 integer_vendor_id : { product_id : [list of BCDs], ... },
 ...
}
PRODUCT_ID: ClassVar[int | list[int]] = 0

Celé číslo alebo zoznam celých čísel

BCD = None

BCD môže byť buď None, ak sa nemá rozlišovať medzi zariadeniami na základe BCD, alebo to môže byť zoznam čísel BCD všetkých zariadení podporovaných týmto ovládačom.

THUMBNAIL_HEIGHT = 68

Výška miniatúr v zariadení

THUMBNAIL_COMPRESSION_QUALITY = 75

Kvalita kompresie miniatúr. Nastavte ju bližšie k 100, aby ste mali lepšiu kvalitu miniatúr s menším počtom kompresných artefaktov. Samozrejme, miniatúry budú aj väčšie.

WANTS_UPDATED_THUMBNAILS = False

Nastavte na True, ak zariadenie podporuje aktualizáciu miniatúr obálok počas sync_booklists. Nastavenie na true požiada device.py, aby obnovil miniatúry obálok počas párovania kníh

CAN_SET_METADATA = ['title', 'authors', 'collections']

Či je možné nastaviť metadáta kníh prostredníctvom GUI.

CAN_DO_DEVICE_DB_PLUGBOARD = False

Či zariadenie dokáže spracovať plugboardy metadát device_db

path_sep = '/'

Oddeľovač ciest pre cesty ku knihám v zariadení

icon = 'reader.png'

Ikona pre toto zariadenie

class UserAnnotation(type, value)

Základ: tuple

type

Alias pre pole číslo 0

value

Alias pre pole číslo 1

OPEN_FEEDBACK_MESSAGE = None

GUI to zobrazí ako správu v stavovom riadku, ak nie je None. Užitočné, ak otvorenie môže trvať dlho

VIRTUAL_BOOK_EXTENSIONS = frozenset({})

Súbor prípon, ktoré predstavujú „virtuálne knihy“ v zariadení, a preto ich nie je možné zobraziť, uložiť ani pridať do knižnice. Napríklad: frozenset(['kobo'])

VIRTUAL_BOOK_EXTENSION_MESSAGE = None

Správa, ktorá sa má zobraziť používateľovi pre prípony virtuálnych kníh.

NUKE_COMMENTS = None

Či odstrániť komentáre v kópii knihy odoslanej do zariadenia. Ak nie je None, mal by to byť krátky reťazec, ktorým sa komentáre nahradia.

MANAGES_DEVICE_PRESENCE = False

Ak je True, znamená to, že tento ovládač úplne riadi detekciu zariadení, vysúvanie a podobne. Ak to nastavíte na True, musíte implementovať metódy detect_managed_devices a debug_managed_device_detection. Ovládač s touto hodnotou nastavenou na true je zodpovedný za detekciu zariadení, správu čiernej listiny zariadení, zoznamu vysunutých zariadení a podobne. calibre bude periodicky volať metódu detect_managed_devices() a ak vráti detegované zariadenie, calibre zavolá open(). open() sa zavolá vždy, keď sa vráti zariadenie, aj keď predchádzajúce volania open() zlyhali, preto ovládač musí udržiavať svoju vlastnú čiernu listinu zlyhaných zariadení. Podobne pri vysúvaní calibre zavolá eject() a potom za predpokladu, že ďalšie volanie detect_managed_devices() vráti None, zavolá post_yank_cleanup().

SLOW_DRIVEINFO = False

Ak je nastavené na True, calibre zavolá metódu get_driveinfo() po načítaní zoznamov kníh, aby získal driveinfo.

ASK_TO_ALLOW_CONNECT = False

Ak je nastavené na True, calibre sa pri prvom zistení zariadenia opýta používateľa, či chce spravovať zariadenie pomocou calibre. Ak to nastavíte na True, musíte implementovať get_device_uid() a ignore_connected_device() a get_user_blacklisted_devices() a set_user_blacklisted_devices()

user_feedback_after_callback = None

Nastavte to na slovník v tvare {‚title‘:title, ‚msg‘:msg, ‚det_msg‘:detailed_msg}, aby calibre po spustení niektorých spätných volaní (v súčasnosti iba upload_books) zobrazil používateľovi kontextovú správu. Dávajte pozor, aby ste používateľa nezahlcovali príliš mnohými správami. Táto premenná sa kontroluje po každom spätnom volaní, takže ju nastavte iba vtedy, keď to naozaj potrebujete.

classmethod get_open_popup_message()[zdroj]

GUI to zobrazí ako nemodálne kontextové okno. Mala by to byť inštancia OpenPopupMessage

classmethod model_metadata() → tuple[ModelMetadata, ...][zdroj]

Metadáta o všetkých skutočných modeloch zariadení, ktoré tento ovládač podporuje

is_usb_connected(devices_on_system, debug=False, only_presence=False)[zdroj]

Vráti True, device_info, ak je zariadenie spracúvané týmto zásuvným modulom práve pripojené.

Parametre:

devices_on_system – Zoznam aktuálne pripojených zariadení

detect_managed_devices(devices_on_system, force_refresh=False)[zdroj]

Volá sa iba vtedy, ak je MANAGES_DEVICE_PRESENCE True.

Vyhľadá zariadenia, ktoré tento ovládač dokáže spracovať. Ak sa nájde zariadenie, mal by vrátiť objekt zariadenia. Tento objekt sa odovzdá metóde open() ako connected_device. Ak sa nenájde žiadne zariadenie, vráti None. Vrátený objekt môže byť čokoľvek, calibre ho nepoužíva, odovzdáva sa iba metóde open().

Túto metódu periodicky volá GUI, preto sa uistite, že nie je príliš náročná na zdroje. Použite vyrovnávaciu pamäť, aby ste sa vyhli opakovanému skenovaniu systému.

Parametre:
  • devices_on_system – Množina USB zariadení nájdených v systéme.

  • force_refresh – Ak je True a ovládač používa vyrovnávaciu pamäť na zabránenie opakovanému skenovaniu, vyrovnávacia pamäť sa musí vyprázdniť.

debug_managed_device_detection(devices_on_system, output)[zdroj]

Volá sa iba vtedy, ak je MANAGES_DEVICE_PRESENCE True.

Mal by zapísať informácie o zariadeniach zistených v systéme do výstupu, ktorým je objekt podobný súboru.

Mal by vrátiť True, ak bolo zariadenie zistené a úspešne otvorené, inak False.

reset(key='-1', log_packets=False, report_progress=None, detected_device=None)[zdroj]
Parametre:
  • key – Kľúč na odomknutie zariadenia

  • log_packets – Ak je true, tok paketov do/z zariadenia sa zaznamenáva

  • report_progress – Funkcia, ktorá sa volá s % priebehu (číslo medzi 0 a 100) pre rôzne úlohy. Ak sa zavolá s -1, znamená to, že úloha nemá žiadne informácie o priebehu

  • detected_device – Informácie o zariadení od skenera zariadení

can_handle_windows(usbdevice, debug=False)[zdroj]

Voliteľná metóda na vykonanie ďalších kontrol zariadenia s cieľom zistiť, či je tento ovládač schopný ho spracovať. Ak nie je, mala by vrátiť False. Táto metóda sa volá iba po zhode výrobcu, ID produktu a bcd, takže môže vykonávať niektoré relatívne časovo náročné kontroly. Predvolená implementácia vracia True. Táto metóda sa volá iba v systéme Windows. Pozri tiež can_handle().

Upozorňujeme, že pre zariadenia založené na USBMS táto metóda predvolene deleguje na can_handle(). Takže vo svojej podtriede USBMS potrebujete prepísať iba can_handle().

Parametre:

usbdevice – Usbdevice vrátené funkciou calibre.devices.winusb.scan_usb_devices()

can_handle(device_info, debug=False)[zdroj]

Unixová verzia can_handle_windows().

Parametre:

device_info – Je tuple (vid, pid, bcd, výrobca, produkt, sériové číslo)

open(connected_device, library_uuid)[zdroj]

Vykoná akúkoľvek inicializáciu špecifickú pre zariadenie. Volá sa po zistení zariadenia, ale pred akýmikoľvek inými funkciami, ktoré komunikujú so zariadením. Napríklad: Pre zariadenia, ktoré sa javia ako zariadenia USB Mass storage, by táto metóda bola zodpovedná za pripojenie zariadenia alebo, ak bolo zariadenie automaticky pripojené, za zistenie, kam bolo pripojené. Metóda calibre.devices.usbms.device.Device.open() má implementáciu tejto funkcie, ktorá by mala slúžiť ako dobrý príklad pre zariadenia USB Mass storage.

Táto metóda môže vyvolať výnimku OpenFeedback na zobrazenie správy používateľovi.

Parametre:
  • connected_device – Zariadenie, ktoré sa pokúšame otvoriť. Je to tuple (ID výrobcu, ID produktu, bcd, názov výrobcu, názov produktu, sériové číslo zariadenia). Niektoré zariadenia však nemajú sériové číslo a v systéme Windows sú prítomné iba prvé tri polia, ostatné sú None.

  • library_uuid – UUID aktuálnej knižnice calibre. Môže byť None, ak neexistuje knižnica (napríklad pri použití z príkazového riadka).

eject()[zdroj]

Odpojí / vysunie zariadenie z operačného systému. Nekontroluje, či existujú čakajúce úlohy GUI, ktoré potrebujú komunikovať so zariadením.

POZNÁMKA: Táto metóda sa nemusí volať v rovnakom vlákne ako ostatné metódy zariadenia.

post_yank_cleanup()[zdroj]

Volá sa, ak používateľ vytiahne zariadenie bez toho, aby ho najprv vysunul.

set_progress_reporter(report_progress)[zdroj]

Nastaví funkciu na hlásenie informácií o priebehu.

Parametre:

report_progress – Funkcia, ktorá sa volá s % priebehu (číslo medzi 0 a 100) pre rôzne úlohy. Ak sa zavolá s -1, znamená to, že úloha nemá žiadne informácie o priebehu

get_device_information(end_session=True)[zdroj]

Požiada zariadenie o informácie o zariadení. Pozri L{DeviceInfoQuery}.

Vracia:

(názov zariadenia, verzia zariadenia, verzia softvéru v zariadení, typ MIME) Tuple môže voliteľne mať piaty prvok, ktorým je slovník informácií o jednotke. Príklad nájdete v usbms.driver.

get_driveinfo()[zdroj]

Vráti slovník driveinfo. Zvyčajne sa volá z get_device_information(), ale ak je načítanie driveinfo pre tento ovládač pomalé, mal by nastaviť SLOW_DRIVEINFO. V tomto prípade túto metódu zavolá calibre po načítaní zoznamov kníh. Upozorňujeme, že sa nevolá v vlákne zariadenia, takže ovládač by mal uložiť informácie o jednotke do vyrovnávacej pamäte v metóde books() a táto funkcia by mala vrátiť údaje z vyrovnávacej pamäte.

card_prefix(end_session=True)[zdroj]

Vráti 2-prvkový zoznam prefixu ciest na kartách. Ak nie je prítomná žiadna karta, pre prefix karty sa nastaví None. NAPR. (‚/place‘, ‚/place2‘) (None, ‚place2‘) (‚place‘, None) (None, None)

total_space(end_session=True)[zdroj]
Získa celkový dostupný priestor na prípojných bodoch:
  1. Hlavná pamäť

  2. Pamäťová karta A

  3. Pamäťová karta B

Vracia:

3-prvkový zoznam s celkovým priestorom v bajtoch (1, 2, 3). Ak konkrétne zariadenie nemá žiadnu z týchto lokalít, malo by vrátiť 0.

free_space(end_session=True)[zdroj]
Získa voľný dostupný priestor na prípojných bodoch:
  1. Hlavná pamäť

  2. Karta A

  3. Karta B

Vracia:

3-prvkový zoznam s voľným priestorom v bajtoch (1, 2, 3). Ak konkrétne zariadenie nemá žiadnu z týchto lokalít, malo by vrátiť -1.

books(oncard=None, end_session=True)[zdroj]

Vráti zoznam e-kníh v zariadení.

Parametre:

oncard – Ak ‚carda‘ alebo ‚cardb‘, vráti zoznam e-kníh na konkrétnej pamäťovej karte, inak vráti zoznam e-kníh v hlavnej pamäti zariadenia. Ak je zadaná karta a na karte nie sú žiadne knihy, vráti prázdny zoznam.

Vracia:

BookList.

upload_books(files, names, on_card=None, end_session=True, metadata=None)[zdroj]

Nahrá zoznam kníh do zariadenia. Ak súbor v zariadení už existuje, mal by sa nahradiť. Táto metóda by mala vyvolať FreeSpaceError, ak v zariadení nie je dostatok voľného miesta. Text FreeSpaceError musí obsahovať slovo „card“, ak on_card nie je None, inak musí obsahovať slovo „memory“.

Parametre:
  • files – Zoznam ciest

  • names – Zoznam názvov súborov, ktoré by knihy mali mať po nahratí do zariadenia. len(names) == len(files)

  • metadata – Ak nie je None, ide o zoznam objektov Metadata. Cieľom je použiť metadáta na určenie toho, kam v zariadení umiestniť knihu. len(metadata) == len(files). Okrem bežnej obálky (cesta k obálke) môže existovať aj atribút thumbnail, ktorý by sa mal uprednostniť. Atribút thumbnail má tvar (šírka, výška, cover_data ako jpeg).

Vracia:

Zoznam 3-prvkových tuple. Zoznam je určený na odovzdanie metóde add_books_to_metadata().

classmethod add_books_to_metadata(locations, metadata, booklists)[zdroj]

Pridá lokácie do zoznamov kníh. Táto funkcia nesmie komunikovať so zariadením.

Parametre:
  • locations – Výsledok volania L{upload_books}

  • metadata – Zoznam objektov Metadata, rovnaký ako pre upload_books().

  • booklists – Tuple obsahujúci výsledok volaní (books(oncard=None)(), books(oncard='carda')(), :meth`books(oncard=‘cardb‘)`).

delete_books(paths, end_session=True)[zdroj]

Vymaže knihy na cestách v zariadení.

classmethod remove_books_from_metadata(paths, booklists)[zdroj]

Odstráni knihy zo zoznamu metadát. Táto funkcia nesmie komunikovať so zariadením.

Parametre:
  • paths – cesty ku knihám v zariadení.

  • booklists – Tuple obsahujúci výsledok volaní (books(oncard=None)(), books(oncard='carda')(), :meth`books(oncard=‘cardb‘)`).

sync_booklists(booklists, end_session=True)[zdroj]

Aktualizuje metadáta v zariadení.

Parametre:

booklists – Tuple obsahujúci výsledok volaní (books(oncard=None)(), books(oncard='carda')(), :meth`books(oncard=‘cardb‘)`).

get_file(path, outfile, end_session=True)[zdroj]

Prečíta súbor na ceste path v zariadení a zapíše ho do outfile.

Parametre:

outfile – objekt súboru ako sys.stdout alebo výsledok volania open().

config_widget()[zdroj]

Mal by vrátiť QWidget. QWidget obsahuje nastavenia pre rozhranie zariadenia

save_settings(config_widget)[zdroj]

Mal by uložiť nastavenia na disk. Prijme widget vytvorený v config_widget() a uloží všetky nastavenia na disk.

classmethod settings()[zdroj]

Mal by vrátiť objekt opts. Objekt opts by mal mať aspoň jeden atribút format_map, čo je usporiadaný zoznam formátov pre zariadenie.

set_plugboards(plugboards, pb_func)[zdroj]

poskytne ovládaču aktuálnu množinu plugboardov a funkciu na výber konkrétneho plugboardu. Táto metóda sa volá tesne pred add_books a sync_booklists.

pb_func je volateľný objekt s nasledujúcou signatúrou:

def pb_func(device_name, format, plugboards)

Zadáte mu aktuálny názov zariadenia (buď názov triedy alebo DEVICE_PLUGBOARD_NAME), formát, ktorý vás zaujíma (‚skutočný‘ formát alebo ‚device_db‘), a plugboardy (tie ste dostali od set_plugboards, na tom istom mieste, kde ste dostali túto metódu).

Vracia:

None alebo jedna inštancia plugboardu.

set_driveinfo_name(location_code, name)[zdroj]

Nastaví názov zariadenia v súbore driveinfo na ‚name‘. Toto nastavenie pretrváva, kým sa súbor znova nevytvorí alebo kým sa názov znova nezmení.

Zariadenia, ktoré nie sú disky, by mali túto metódu implementovať na základe kódov umiestnenia vrátených metódou get_device_information().

prepare_addable_books(paths)[zdroj]

Na základe zoznamu ciest vráti ďalší zoznam ciest. Tieto cesty ukazujú na pridateľné verzie kníh.

Ak sa vyskytne chyba pri príprave knihy, potom namiesto cesty bude na pozícii vráteného zoznamu pre túto knihu trojica: (original_path, inštancia výnimky, traceback)

startup()[zdroj]

Volá sa, keď calibre spúšťa zariadenie. Vykonajte akúkoľvek požadovanú inicializáciu. Upozorňujeme, že môže byť vytvorených viacero inštancií triedy, a preto __init__ sa môže volať viackrát, ale iba u jednej inštancie sa zavolá táto metóda. Táto metóda sa volá vo vlákne zariadenia, nie vo vlákne GUI.

shutdown()[zdroj]

Volá sa, keď sa calibre vypína, či už natrvalo alebo v rámci prípravy na reštart. Vykonajte akékoľvek požadované upratovanie. Táto metóda sa volá vo vlákne zariadenia, nie vo vlákne GUI.

get_device_uid()[zdroj]

Musí vrátiť jedinečný identifikátor aktuálne pripojeného zariadenia (volá sa okamžite po úspešnom volaní open()). Túto metódu musíte implementovať, ak nastavíte ASK_TO_ALLOW_CONNECT = True

ignore_connected_device(uid)[zdroj]

V budúcnosti by malo ignorovať zariadenie identifikované uid (výsledok volania get_device_uid()). Túto metódu musíte implementovať, ak nastavíte ASK_TO_ALLOW_CONNECT = True. Upozorňujeme, že táto funkcia sa volá okamžite po open(), takže ak open() ukladá nejaký stav do vyrovnávacej pamäte, ovládač by mal tento stav resetovať.

get_user_blacklisted_devices()[zdroj]

Vráti mapovanie uid zariadenia na priateľský názov pre všetky zariadenia, ktoré používateľ požiadal ignorovať.

set_user_blacklisted_devices(devices)[zdroj]

Nastaví zoznam uid zariadení, ktoré má tento ovládač ignorovať.

specialize_global_preferences(device_prefs)[zdroj]

Implementujte túto metódu, ak chce vaše zariadenie prepísať konkrétnu voľbu. Musíte zabezpečiť, aby všetky miesta volania, ktoré chcú voľbu, ktorá môže byť prepísaná, používali device_prefs[‚something‘] namiesto prefs[‚something‘]. Vaša metóda by mala zavolať device_prefs.set_overrides(pref=val, pref=val, …). V súčasnosti sa používa na: správu metadát (prefs[‚manage_device_metadata‘])

set_library_info(library_name, library_uuid, field_metadata)[zdroj]

Implementujte túto metódu, ak chcete informácie o aktuálnej knižnici calibre. Táto metóda sa volá pri spustení a pri zmene knižnice calibre počas pripojenia.

is_dynamically_controllable()[zdroj]

Volá ho správca zariadení pri spúšťaní zásuvných modulov. Ak táto metóda vráti reťazec, potom a) podporuje dynamické riadiace rozhranie správcu zariadení a b) tento názov sa má použiť pri komunikácii so zásuvným modulom.

Táto metóda sa môže volať vo vlákne GUI. Ovládač, ktorý implementuje túto metódu, musí byť bezpečný pre vlákna.

start_plugin()[zdroj]

Táto metóda sa volá na spustenie zásuvného modulu. Zásuvný modul by mal začať prijímať pripojenia zariadení, nech to robí akokoľvek. Ak zásuvný modul už prijíma pripojenia, nerobte nič.

Táto metóda sa môže volať vo vlákne GUI. Ovládač, ktorý implementuje túto metódu, musí byť bezpečný pre vlákna.

stop_plugin()[zdroj]

Táto metóda sa volá na zastavenie zásuvného modulu. Zásuvný modul by už nemal prijímať pripojenia a mal by po sebe upratať. Je pravdepodobné, že táto metóda by mala zavolať shutdown. Ak zásuvný modul už neprijíma pripojenia, nerobte nič.

Táto metóda sa môže volať vo vlákne GUI. Ovládač, ktorý implementuje túto metódu, musí byť bezpečný pre vlákna.

get_option(opt_string, default=None)[zdroj]

Vráti hodnotu možnosti označenej opt_string. Táto metóda sa môže volať, keď zásuvný modul nie je spustený. Vráti None, ak možnosť neexistuje.

Táto metóda sa môže volať vo vlákne GUI. Ovládač, ktorý implementuje túto metódu, musí byť bezpečný pre vlákna.

set_option(opt_string, opt_value)[zdroj]

Nastaví hodnotu možnosti označenej opt_string. Táto metóda sa môže volať, keď zásuvný modul nie je spustený.

Táto metóda sa môže volať vo vlákne GUI. Ovládač, ktorý implementuje túto metódu, musí byť bezpečný pre vlákna.

is_running()[zdroj]

Vráti True, ak je zásuvný modul spustený, inak false

Táto metóda sa môže volať vo vlákne GUI. Ovládač, ktorý implementuje túto metódu, musí byť bezpečný pre vlákna.

synchronize_with_db(db, book_id, book_metadata, first_call)[zdroj]

Volá sa počas párovania kníh, keď sa kniha v zariadení spáruje s knihou v databáze calibre. Metóda je zodpovedná za synchronizáciu údajov zo zariadenia do databázy calibre (ak je to potrebné).

Metóda musí vrátiť dvojprvkový tuple. Prvá hodnota je množina zmenených ID kníh calibre, ak bola databáza calibre zmenená, alebo None, ak databáza nebola zmenená. Ak je prvou hodnotou prázdna množina, metadáta knihy v zariadení sa aktualizujú metadátami calibre a vrátia sa späť do zariadenia, ale nevykoná sa žiadne obnovenie tejto knihy v GUI. To je užitočné, keď sú údaje calibre správne, ale musia sa odoslať do zariadenia.

Druhá hodnota je sama o sebe dvojprvkový tuple. Prvá hodnota v tuple určuje, či sa má do zariadenia odoslať formát knihy. Zámerom je umožniť overenie, že kniha v zariadení je rovnaká ako kniha v calibre. Táto hodnota musí byť None, ak sa nemá odoslať žiadna kniha, inak vráťte základný názov súboru v zariadení (reťazec ako foobar.epub). Nezabudnite uviesť príponu v názve. Podsystém zariadenia vytvorí úlohu send_books pre všetky knihy s nevrátenými hodnotami None. Poznámka: okrem neskoršieho získania prípony sa názov ignoruje v prípadoch, keď zariadenie používa šablónu na generovanie názvu súboru, čo väčšina robí. Druhá hodnota vo vrátenom tuple označuje, či je formát datovaný v budúcnosti. Vráťte True, ak áno, inak False. calibre zobrazí používateľovi dialógové okno so zoznamom všetkých kníh datovaných v budúcnosti.

Mimoriadne dôležité: táto metóda sa volá vo vlákne GUI. Musí byť bezpečná pre vlákna vzhľadom na vlákno správcu zariadení.

book_id: ID calibre pre knihu v databáze. book_metadata: objekt Metadata pre knihu pochádzajúcu zo zariadenia. first_call: True, ak ide o prvé volanie počas synchronizácie, inak False

class calibre.devices.interface.BookList(oncard=None, prefix=None, settings=None)[zdroj]

Základ: list

Zoznam kníh. Každý objekt Book musí mať polia

  1. title

  2. authors

  3. size (veľkosť súboru knihy)

  4. datetime (UTC časový tuple)

  5. path (cesta ku knihe v zariadení)

  6. thumbnail (môže byť None) thumbnail je buď objekt str/bytes s údajmi obrázka, alebo by mal mať atribút image_path, ktorý ukladá absolútnu (natívnu pre platformu) cestu k obrázku

  7. tags (zoznam reťazcov, môže byť prázdny).

supports_collections()[zdroj]

Vráti True, ak zariadenie podporuje kolekcie pre tento zoznam kníh.

add_book(book, replace_metadata)[zdroj]

Pridá knihu do zoznamu kníh. Zámerom je udržiavať všetky interné metadáta zariadenia. Vráti True, ak sa zoznamy kníh musia synchronizovať

remove_book(book)[zdroj]

Odstráni knihu zo zoznamu kníh. Zároveň opraví všetky metadáta zariadenia

get_collections(collection_attributes)[zdroj]

Vráti slovník kolekcií vytvorených z collection_attributes. Každá položka v slovníku má tvar názov kolekcie:[zoznam kníh]

Zoznam kníh je zoradený podľa názvu knihy, okrem kolekcií vytvorených zo série, v takom prípade sa použije series_index.

Parametre:

collection_attributes – Zoznam atribútov objektu Book

Zariadenia založené na USB Mass Storage

Základná trieda pre takéto zariadenia je calibre.devices.usbms.driver.USBMS. Táto trieda zase dedí niektoré svoje funkcie zo svojich základov, ktoré sú zdokumentované nižšie. Typický základný ovládač založený na USBMS vyzerá 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]

Základ: DeviceConfig, DevicePlugin

Táto trieda poskytuje logiku spoločnú pre všetky ovládače zariadení, ktoré sa prezentujú ako zariadenia USB Mass Storage. Poskytuje implementácie pre pripájanie/vysúvanie zariadení USBMS na všetkých platformách.

VENDOR_ID: ClassVar[int | list[int] | dict[int, dict[int, list[int] | None]]] = 0

VENDOR_ID môže byť buď celé číslo, zoznam celých čísel alebo slovník. Ak ide o slovník, musí to byť slovník slovníkov v tvare:

{
 integer_vendor_id : { product_id : [list of BCDs], ... },
 ...
}
PRODUCT_ID: ClassVar[int | list[int]] = 0

Celé číslo alebo zoznam celých čísel

BCD = None

BCD môže byť buď None, ak sa nemá rozlišovať medzi zariadeniami na základe BCD, alebo to môže byť zoznam čísel BCD všetkých zariadení podporovaných týmto ovládačom.

WINDOWS_MAIN_MEM = None

Reťazec identifikujúci hlavnú pamäť zariadenia v reťazcoch ID PnP Windows. Môže to byť None, reťazec, zoznam reťazcov alebo skompilovaný regex

WINDOWS_CARD_A_MEM = None

Reťazec identifikujúci prvú kartu zariadenia v reťazcoch ID PnP Windows. Môže to byť None, reťazec, zoznam reťazcov alebo skompilovaný regex

WINDOWS_CARD_B_MEM = None

Reťazec identifikujúci druhú kartu zariadenia v reťazcoch ID PnP Windows. Môže to byť None, reťazec, zoznam reťazcov alebo skompilovaný regex

OSX_MAIN_MEM_VOL_PAT = None

Používa ho nová detekcia ovládačov na rozlíšenie hlavnej pamäte od pamäťových kariet. Mal by to byť regulárny výraz, ktorý zodpovedá prípojnému bodu hlavnej pamäte priradenému systémom macOS

MAX_PATH_LEN = 250

Maximálna dĺžka ciest vytvorených v zariadení

NEWS_IN_FOLDER = True

Umiestniť novinky do vlastného priečinka

classmethod model_metadata() → tuple[ModelMetadata, ...][zdroj]

Metadáta o všetkých skutočných modeloch zariadení, ktoré tento ovládač podporuje

reset(key='-1', log_packets=False, report_progress=None, detected_device=None)[zdroj]
Parametre:
  • key – Kľúč na odomknutie zariadenia

  • log_packets – Ak je true, tok paketov do/z zariadenia sa zaznamenáva

  • report_progress – Funkcia, ktorá sa volá s % priebehu (číslo medzi 0 a 100) pre rôzne úlohy. Ak sa zavolá s -1, znamená to, že úloha nemá žiadne informácie o priebehu

  • detected_device – Informácie o zariadení od skenera zariadení

set_progress_reporter(report_progress)[zdroj]

Nastaví funkciu na hlásenie informácií o priebehu.

Parametre:

report_progress – Funkcia, ktorá sa volá s % priebehu (číslo medzi 0 a 100) pre rôzne úlohy. Ak sa zavolá s -1, znamená to, že úloha nemá žiadne informácie o priebehu

card_prefix(end_session=True)[zdroj]

Vráti 2-prvkový zoznam prefixu ciest na kartách. Ak nie je prítomná žiadna karta, pre prefix karty sa nastaví None. NAPR. (‚/place‘, ‚/place2‘) (None, ‚place2‘) (‚place‘, None) (None, None)

total_space(end_session=True)[zdroj]
Získa celkový dostupný priestor na prípojných bodoch:
  1. Hlavná pamäť

  2. Pamäťová karta A

  3. Pamäťová karta B

Vracia:

3-prvkový zoznam s celkovým priestorom v bajtoch (1, 2, 3). Ak konkrétne zariadenie nemá žiadnu z týchto lokalít, malo by vrátiť 0.

free_space(end_session=True)[zdroj]
Získa voľný dostupný priestor na prípojných bodoch:
  1. Hlavná pamäť

  2. Karta A

  3. Karta B

Vracia:

3-prvkový zoznam s voľným priestorom v bajtoch (1, 2, 3). Ak konkrétne zariadenie nemá žiadnu z týchto lokalít, malo by vrátiť -1.

windows_sort_drives(drives)[zdroj]

Volá sa na rozlíšenie hlavnej pamäte a pamäťovej karty pre zariadenia, ktoré ich nerozlišujú na základe WINDOWS_CARD_NAME. Napríklad: EB600

can_handle_windows(usbdevice, debug=False)[zdroj]

Voliteľná metóda na vykonanie ďalších kontrol zariadenia s cieľom zistiť, či je tento ovládač schopný ho spracovať. Ak nie je, mala by vrátiť False. Táto metóda sa volá iba po zhode výrobcu, ID produktu a bcd, takže môže vykonávať niektoré relatívne časovo náročné kontroly. Predvolená implementácia vracia True. Táto metóda sa volá iba v systéme Windows. Pozri tiež can_handle().

Upozorňujeme, že pre zariadenia založené na USBMS táto metóda predvolene deleguje na can_handle(). Takže vo svojej podtriede USBMS potrebujete prepísať iba can_handle().

Parametre:

usbdevice – Usbdevice vrátené funkciou calibre.devices.winusb.scan_usb_devices()

open(connected_device, library_uuid)[zdroj]

Vykoná akúkoľvek inicializáciu špecifickú pre zariadenie. Volá sa po zistení zariadenia, ale pred akýmikoľvek inými funkciami, ktoré komunikujú so zariadením. Napríklad: Pre zariadenia, ktoré sa javia ako zariadenia USB Mass storage, by táto metóda bola zodpovedná za pripojenie zariadenia alebo, ak bolo zariadenie automaticky pripojené, za zistenie, kam bolo pripojené. Metóda calibre.devices.usbms.device.Device.open() má implementáciu tejto funkcie, ktorá by mala slúžiť ako dobrý príklad pre zariadenia USB Mass storage.

Táto metóda môže vyvolať výnimku OpenFeedback na zobrazenie správy používateľovi.

Parametre:
  • connected_device – Zariadenie, ktoré sa pokúšame otvoriť. Je to tuple (ID výrobcu, ID produktu, bcd, názov výrobcu, názov produktu, sériové číslo zariadenia). Niektoré zariadenia však nemajú sériové číslo a v systéme Windows sú prítomné iba prvé tri polia, ostatné sú None.

  • library_uuid – UUID aktuálnej knižnice calibre. Môže byť None, ak neexistuje knižnica (napríklad pri použití z príkazového riadka).

eject()[zdroj]

Odpojí / vysunie zariadenie z operačného systému. Nekontroluje, či existujú čakajúce úlohy GUI, ktoré potrebujú komunikovať so zariadením.

POZNÁMKA: Táto metóda sa nemusí volať v rovnakom vlákne ako ostatné metódy zariadenia.

post_yank_cleanup()[zdroj]

Volá sa, ak používateľ vytiahne zariadenie bez toho, aby ho najprv vysunul.

sanitize_callback(path)[zdroj]

Spätné volanie, ktoré umožňuje jednotlivým ovládačom zariadení prepísať sanitizáciu ciest používanú metódou create_upload_path().

filename_callback(default, mi)[zdroj]

Spätné volanie, ktoré umožňuje ovládačom zmeniť predvolený názov súboru nastavený metódou create_upload_path().

sanitize_path_components(components)[zdroj]

Vykoná akúkoľvek sanitizáciu špecifickú pre zariadenie na komponentoch cesty pre súbory, ktoré sa majú nahrať do zariadenia

get_annotations(path_map)[zdroj]

Vyrieši path_map na annotation_map súborov nájdených v zariadení

add_annotation_to_library(db, db_id, annotation)[zdroj]

Pridá anotáciu do knižnice calibre

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

Základ: CLI, Device

Základná trieda pre všetky zariadenia USBMS. Implementuje logiku pre odosielanie/získavanie/aktualizáciu metadát/ukladanie metadát do vyrovnávacej pamäte atď.

description = 'Komunikácia s čítačkou e-kníh.'

Krátky reťazec popisujúci, čo tento zásuvný modul robí

author = 'John Schember'

Autor tohto zásuvného modulu

supported_platforms = ['windows', 'osx', 'linux']

Zoznam platforiem, na ktorých tento zásuvný modul funguje. Napríklad: ['windows', 'osx', 'linux']

booklist_class

alias pre BookList

book_class

alias pre Book

FORMATS: ClassVar[list[str]] = []

Usporiadaný zoznam podporovaných formátov

CAN_SET_METADATA = []

Či je možné nastaviť metadáta kníh prostredníctvom GUI.

get_device_information(end_session=True)[zdroj]

Požiada zariadenie o informácie o zariadení. Pozri L{DeviceInfoQuery}.

Vracia:

(názov zariadenia, verzia zariadenia, verzia softvéru v zariadení, typ MIME) Tuple môže voliteľne mať piaty prvok, ktorým je slovník informácií o jednotke. Príklad nájdete v usbms.driver.

set_driveinfo_name(location_code, name)[zdroj]

Nastaví názov zariadenia v súbore driveinfo na ‚name‘. Toto nastavenie pretrváva, kým sa súbor znova nevytvorí alebo kým sa názov znova nezmení.

Zariadenia, ktoré nie sú disky, by mali túto metódu implementovať na základe kódov umiestnenia vrátených metódou get_device_information().

books(oncard=None, end_session=True)[zdroj]

Vráti zoznam e-kníh v zariadení.

Parametre:

oncard – Ak ‚carda‘ alebo ‚cardb‘, vráti zoznam e-kníh na konkrétnej pamäťovej karte, inak vráti zoznam e-kníh v hlavnej pamäti zariadenia. Ak je zadaná karta a na karte nie sú žiadne knihy, vráti prázdny zoznam.

Vracia:

BookList.

upload_books(files, names, on_card=None, end_session=True, metadata=None)[zdroj]

Nahrá zoznam kníh do zariadenia. Ak súbor v zariadení už existuje, mal by sa nahradiť. Táto metóda by mala vyvolať FreeSpaceError, ak v zariadení nie je dostatok voľného miesta. Text FreeSpaceError musí obsahovať slovo „card“, ak on_card nie je None, inak musí obsahovať slovo „memory“.

Parametre:
  • files – Zoznam ciest

  • names – Zoznam názvov súborov, ktoré by knihy mali mať po nahratí do zariadenia. len(names) == len(files)

  • metadata – Ak nie je None, ide o zoznam objektov Metadata. Cieľom je použiť metadáta na určenie toho, kam v zariadení umiestniť knihu. len(metadata) == len(files). Okrem bežnej obálky (cesta k obálke) môže existovať aj atribút thumbnail, ktorý by sa mal uprednostniť. Atribút thumbnail má tvar (šírka, výška, cover_data ako jpeg).

Vracia:

Zoznam 3-prvkových tuple. Zoznam je určený na odovzdanie metóde add_books_to_metadata().

upload_cover(path, filename, metadata, filepath)[zdroj]

Nahrá obálku knihy do zariadenia. Predvolená implementácia nerobí nič.

Parametre:
  • path – Úplná cesta k priečinku, v ktorom sa nachádza príslušná kniha.

  • filename – Názov súboru knihy bez prípony.

  • metadata – metadáta patriace knihe. Pre obálku použite metadata.thumbnail

  • filepath – Úplná cesta k súboru e-knihy

add_books_to_metadata(locations, metadata, booklists)[zdroj]

Pridá lokácie do zoznamov kníh. Táto funkcia nesmie komunikovať so zariadením.

Parametre:
  • locations – Výsledok volania L{upload_books}

  • metadata – Zoznam objektov Metadata, rovnaký ako pre upload_books().

  • booklists – Tuple obsahujúci výsledok volaní (books(oncard=None)(), books(oncard='carda')(), :meth`books(oncard=‘cardb‘)`).

delete_books(paths, end_session=True)[zdroj]

Vymaže knihy na cestách v zariadení.

remove_books_from_metadata(paths, booklists)[zdroj]

Odstráni knihy zo zoznamu metadát. Táto funkcia nesmie komunikovať so zariadením.

Parametre:
  • paths – cesty ku knihám v zariadení.

  • booklists – Tuple obsahujúci výsledok volaní (books(oncard=None)(), books(oncard='carda')(), :meth`books(oncard=‘cardb‘)`).

sync_booklists(booklists, end_session=True)[zdroj]

Aktualizuje metadáta v zariadení.

Parametre:

booklists – Tuple obsahujúci výsledok volaní (books(oncard=None)(), books(oncard='carda')(), :meth`books(oncard=‘cardb‘)`).

classmethod normalize_path(path)[zdroj]

Vráti cestu s oddeľovačmi ciest natívnymi pre platformu

Akcie používateľského rozhrania

Ak pridávate svoj vlastný zásuvný modul v súbore ZIP, mali by ste dediť od InterfaceActionBase aj InterfaceAction. Metóda load_actual_plugin() vašej podtriedy InterfaceActionBase musí vrátiť vytvorenú inštanciu objektu vašej podtriedy InterfaceAction.

class calibre.gui2.actions.InterfaceAction(parent, site_customization)[zdroj]

Základ: QObject

Zásuvný modul predstavujúci „akciu“, ktorú je možné vykonať v grafickom používateľskom rozhraní. Všetky položky na paneli nástrojov a v kontextových ponukách sú implementované týmito zásuvnými modulmi.

Upozorňujeme, že táto trieda je základnou triedou pre tieto zásuvné moduly, avšak na integráciu zásuvného modulu so systémom zásuvných modulov calibre musíte vytvoriť obalovú triedu, ktorá odkazuje na skutočný zásuvný modul. Príklady nájdete v module calibre.customize.builtins.

Ak dva objekty InterfaceAction majú rovnaký názov, prednosť má ten s vyššou prioritou.

Podtriedy by mali implementovať metódy genesis(), library_changed(), location_selected(), shutting_down(), initialization_complete() a tag_browser_context_action().

Po inicializácii má tento zásuvný modul prístup k hlavnému GUI calibre prostredníctvom člena gui. K iným zásuvným modulom môžete pristupovať podľa názvu, napríklad:

self.gui.iactions['Save To Disk']

Na prístup k skutočnému zásuvnému modulu použite atribút interface_action_base_plugin; tento atribút sa stane dostupným až po inicializácii zásuvného modulu. Užitočné, ak chcete používať metódy z triedy zásuvného modulu, ako napríklad do_user_config().

QAction určená atribútom action_spec sa automaticky vytvorí a je dostupná ako self.qaction.

name = 'Implement me'

Názov zásuvného modulu. Ak sú prítomné dva zásuvné moduly s rovnakým názvom, prednosť má ten s vyššou prioritou.

priority = 1

Priorita zásuvného modulu. Ak sú prítomné dva zásuvné moduly s rovnakým názvom, prednosť má ten s vyššou prioritou.

popup_type = 1

Typ kontextovej ponuky pre prípad, keď sa tento zásuvný modul pridá na panel nástrojov

auto_repeat = False

Či sa má táto akcia automaticky opakovať pri podržaní klávesovej skratky.

action_spec = ('text', 'icon', None, None)

V tvare: (text, icon_path, tooltip, keyboard shortcut). icon, tooltip a keyboard shortcut môžu byť None. keyboard shortcut musí byť buď reťazec, None alebo tuple skratiek. Ak je None, klávesová skratka zodpovedajúca akcii sa nezaregistruje. Ak odovzdáte prázdny tuple, skratka sa zaregistruje bez predvoleného priradenia klávesov.

action_shortcut_name = None

Ak nie je None, použije sa pre názov zobrazený používateľovi pri prispôsobovaní klávesových skratiek pre vyššie uvedenú špecifikáciu akcie namiesto action_spec[0]

action_add_menu = False

Ak je True, ponuka sa automaticky vytvorí a pridá do self.qaction

action_menu_clone_qaction = False

Ak je True, klon self.qaction sa pridá do ponuky self.qaction. Ak chcete, aby sa text tejto akcie líšil od textu self.qaction, nastavte túto premennú na nový text

dont_add_to = frozenset({})

Množina umiestení, do ktorých sa táto akcia nesmie pridať. Zoznam možných umiestení nájdete v all_locations

dont_remove_from = frozenset({})

Množina umiestení, z ktorých sa táto akcia nesmie odstrániť. Zoznam možných umiestení nájdete v all_locations

action_type = 'global'

Typ akcie ‚current‘ znamená, že pôsobí na aktuálne zobrazenie, ‚global‘ znamená akciu, ktorá nepôsobí na aktuálne zobrazenie, ale skôr na calibre ako celok

accepts_drops = False

Ak je True, potom táto InterfaceAction bude mať možnosť interagovať s udalosťami drag and drop. Podrobnosti nájdete v metódach accept_enter_event(), :meth`:accept_drag_move_event`, drop_event().

accept_enter_event(event, mime_data)[zdroj]

Táto metóda by mala vrátiť True vtedy a len vtedy, ak je táto akcia rozhrania schopná spracovať udalosť drag. Nevolejte accept/ignore na udalosti, to zaobstará UI calibre.

accept_drag_move_event(event, mime_data)[zdroj]

Táto metóda by mala vrátiť True vtedy a len vtedy, ak je táto akcia rozhrania schopná spracovať udalosť drag. Nevolejte accept/ignore na udalosti, to zaobstará UI calibre.

drop_event(event, mime_data)[zdroj]

Táto metóda by mala vykonať nejakú užitočnú akciu a vrátiť True vtedy a len vtedy, ak je táto akcia rozhrania schopná spracovať udalosť drop. Nevolejte accept/ignore na udalosti, to zaobstará UI calibre. V tejto funkcii by ste nemali vykonávať blokujúce/dlhé operácie. Namiesto toho vyšlite signál alebo použite QTimer.singleShot a rýchlo sa vráťte. Príklady nájdete vo vstavaných akciách.

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

Pohodlná metóda na jednoduché pridávanie akcií do QMenu. Vráti vytvorenú QAction. Táto akcia má jeden extra atribút calibre_shortcut_unique_name, ktorý, ak nie je None, odkazuje na jedinečný názov, pod ktorým je táto akcia zaregistrovaná v správcovi klávesnice.

Parametre:
  • menu – QMenu, do ktorej sa novo vytvorená akcia pridá

  • unique_name – Jedinečný názov tejto akcie, musí byť globálne jedinečný, takže ho urobte čo najpopisnejším. Ak si nie ste istí, pridajte k nemu UUID.

  • text – Text akcie.

  • icon – Buď QIcon, alebo názov súboru. Názov súboru sa odovzdá vstavanému QIcon.ic(), takže nemusíte odovzdávať úplnú cestu k priečinku s obrázkami.

  • shortcut – Reťazec, zoznam reťazcov, None alebo False. Ak je False, pre túto akciu sa nezaregistruje žiadna klávesová skratka. Ak je None, zaregistruje sa klávesová skratka bez predvoleného priradenia klávesov. Reťazec a zoznam reťazcov zaregistrujú skratku s určeným predvoleným priradením klávesov.

  • description – Popis tejto akcie. Používa sa na nastavenie tooltipov.

  • triggered – Volateľný objekt, ktorý je pripojený k signálu triggered vytvorenej akcie.

  • shortcut_name – Text zobrazený používateľovi pri prispôsobovaní klávesových skratiek pre túto akciu. Predvolene je nastavený na hodnotu text.

  • persist_shortcut – Skratky pre akcie, ktoré sa nezobrazujú vždy alebo závisia od knižnice, môžu zmiznúť pri úprave iných klávesových skratiek, pokiaľ nie je `persist_shortcut` nastavené na True.

load_resources(names)[zdroj]

Ak tento zásuvný modul prichádza v súbore ZIP (zásuvný modul pridaný používateľom), táto metóda vám umožní načítať prostriedky zo súboru ZIP.

Napríklad na načítanie obrázka:

pixmap = QPixmap()
pixmap.loadFromData(tuple(self.load_resources(['images/icon.png']).values())[0])
icon = QIcon(pixmap)
Parametre:

names – Zoznam ciest k prostriedkom v súbore ZIP s použitím / ako oddeľovača

Vracia:

Slovník v tvare {name : file_contents}. Všetky názvy, ktoré sa nenašli v súbore ZIP, nebudú v slovníku prítomné.

genesis()[zdroj]

Nastaví tento zásuvný modul. Volá sa iba raz počas inicializácie. self.gui je dostupné. Akcia určená atribútom action_spec je dostupná ako self.qaction.

location_selected(loc)[zdroj]

Volá sa vždy, keď sa zmení zoznam kníh zobrazovaný v calibre. V súčasnosti sú hodnoty pre loc: library, main, card a cardb.

Táto metóda by mala povoliť/zakázať túto akciu a jej podriadené akcie podľa vhodnosti pre dané umiestnenie.

library_about_to_change(olddb, db)[zdroj]

Volá sa vždy, keď sa zmení aktuálna knižnica.

Parametre:
  • olddb – LibraryDatabase zodpovedajúca predchádzajúcej knižnici.

  • db – LibraryDatabase zodpovedajúca novej knižnici.

library_changed(db)[zdroj]

Volá sa vždy, keď sa zmení aktuálna knižnica.

Parametre:

db – LibraryDatabase zodpovedajúca aktuálnej knižnici.

gui_layout_complete()[zdroj]

Volá sa raz pre každú akciu po dokončení rozloženia hlavného GUI. Ak vaša akcia potrebuje vykonať zmeny v rozložení, mali by sa vykonať tu, a nie v initialization_complete().

initialization_complete()[zdroj]

Volá sa raz pre každú akciu po dokončení inicializácie hlavného GUI.

tag_browser_context_action(index)[zdroj]

Volá sa pri zobrazovaní kontextovej ponuky v prehliadači značiek. index je QModelIndex, ktorý ukazuje na položku prehliadača značiek, na ktorú sa kliklo pravým tlačidlom. Otestujte jeho platnosť pomocou index.valid() a získajte podkladový objekt TagTreeItem pomocou index.data(Qt.ItemDataRole.UserRole). Všetky objekty akcií vrátené touto metódou sa pridajú do kontextovej ponuky.

shutting_down()[zdroj]

Volá sa raz pre každý zásuvný modul, keď sa hlavné GUI vypína. Uvoľnite všetky použité prostriedky, ale snažte sa neblokovať vypnutie na dlhú dobu.

class calibre.customize.InterfaceActionBase(*args, **kwargs)[zdroj]

Základ: Plugin

supported_platforms = ['windows', 'osx', 'linux']

Zoznam platforiem, na ktorých tento zásuvný modul funguje. Napríklad: ['windows', 'osx', 'linux']

author = 'Kovid Goyal'

Autor tohto zásuvného modulu

type = 'Akcia užívateľského rozhrania'

Typ tohto zásuvného modulu. Používa sa na kategorizáciu zásuvných modulov v GUI

load_actual_plugin(gui)[zdroj]

Táto metóda musí vrátiť skutočný objekt zásuvného modulu akcie rozhrania.

Zásuvné moduly predvolieb

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

Základ: Plugin

Zásuvný modul predstavujúci widget zobrazený v dialógovom okne predvolieb.

Tento zásuvný modul má iba jednu dôležitú metódu create_widget(). Rôzne polia zásuvného modulu riadia, ako je kategorizovaný v UI.

supported_platforms = ['windows', 'osx', 'linux']

Zoznam platforiem, na ktorých tento zásuvný modul funguje. Napríklad: ['windows', 'osx', 'linux']

author = 'Kovid Goyal'

Autor tohto zásuvného modulu

type = 'Nastavenia'

Typ tohto zásuvného modulu. Používa sa na kategorizáciu zásuvných modulov v GUI

config_widget = None

Cesta importu k modulu, ktorý obsahuje triedu s názvom ConfigWidget, ktorá implementuje ConfigWidgetInterface. Používa ju create_widget().

category_order = 100

Kde v zozname kategórií by sa mala nachádzať category tohto zásuvného modulu.

name_order = 100

Kde v zozname názvov v kategórii by sa mal nachádzať gui_name tohto zásuvného modulu

category = None

Kategória, do ktorej by mal tento zásuvný modul patriť

gui_category = None

Názov kategórie zobrazený používateľovi pre tento zásuvný modul

gui_name = None

Názov zobrazený používateľovi pre tento zásuvný modul

icon = None

Ikona pre tento zásuvný modul, mala by byť absolútna cesta

description = None

Popis používaný pre tooltipy a podobne

create_widget(parent=None)[zdroj]

Vytvorí a vráti skutočný Qt widget používaný na nastavenie tejto skupiny predvolieb. Widget musí implementovať calibre.gui2.preferences.ConfigWidgetInterface.

Predvolená implementácia používa config_widget na vytvorenie widgetu.

class calibre.gui2.preferences.ConfigWidgetInterface[zdroj]

Táto trieda definuje rozhranie, ktoré musia implementovať všetky widgety zobrazené v dialógovom okne predvolieb. Základnú triedu, ktorá implementuje toto rozhranie a definuje rôzne pohodlné metódy, nájdete v ConfigWidgetBase.

changed_signal = None

Tento signál sa musí vyslať vždy, keď používateľ zmení hodnotu v tomto widgete

supports_restoring_to_defaults = True

Nastavte na True vtedy a len vtedy, ak je implementovaná metóda restore_to_defaults().

restore_defaults_desc = 'Obnovenie nastavení na štandardné. Na uloženie týchto nastavení budete ešte musieť kliknúť na Použiť.'

Tooltip pre tlačidlo „Obnoviť predvolené“

restart_critical = False

Ak je True, dialógové okno predvolieb nedovolí používateľovi nastaviť žiadne ďalšie predvoľby. Má účinok iba vtedy, ak commit() vráti True.

genesis(gui)[zdroj]

Volá sa raz pred zobrazením widgetu, mal by vykonať akékoľvek potrebné nastavenie.

Parametre:

gui – Hlavné grafické používateľské rozhranie calibre

initialize()[zdroj]

Mal by nastaviť všetky hodnoty konfigurácie na ich počiatočné hodnoty (hodnoty uložené v konfiguračných súboroch). Príkaz „return“ je voliteľný. Vráťte False, ak sa dialógové okno nemá zobraziť.

restore_defaults()[zdroj]

Mal by nastaviť všetky hodnoty konfigurácie na ich predvolené hodnoty.

commit()[zdroj]

Uloží všetky zmenené nastavenia. Vráti True, ak zmeny vyžadujú reštart, inak False. Vyvolá výnimku AbortCommit na označenie toho, že nastala chyba. Zodpovedáte za poskytnutie spätnej väzby používateľovi o tom, čo je chybou a ako ju opraviť.

refresh_gui(gui)[zdroj]

Volá sa raz po potvrdení tohto widgetu. Zodpovedá za to, že gui znovu načíta všetky zmenené nastavenia. Upozorňujeme, že predvolene GUI aj tak znovu inicializuje rôzne prvky, takže väčšina widgetov nebude musieť túto metódu používať.

initial_tab_changed()[zdroj]

Volá sa, ak sa počiatočne zobrazená karta zmení pred zobrazením widgetu, ale po jeho inicializácii.

class calibre.gui2.preferences.ConfigWidgetBase(parent=None)[zdroj]

Základná trieda, ktorá obsahuje kód na jednoduché pridávanie štandardných konfiguračných widgetov, ako sú zaškrtávacie políčka, rozbaľovacie zoznamy, textové polia a podobne. Pozri metódu register().

Táto trieda automaticky spracúva oznámenia o zmenách, obnovenie predvolených hodnôt, preklad medzi objektmi gui a konfiguračnými objektmi atď. pre registrované nastavenia.

Ak váš konfiguračný widget dedí od tejto triedy, ale obsahuje nastavenia, ktoré nie sú registrované, mali by ste prepísať metódy ConfigWidgetInterface a v rámci prepísaní zavolať metódy základnej triedy.

changed_signal

Tento signál sa musí vyslať vždy, keď používateľ zmení hodnotu v tomto widgete

supports_restoring_to_defaults = True

Nastavte na True vtedy a len vtedy, ak je implementovaná metóda restore_to_defaults().

restart_critical = False

Ak je True, dialógové okno predvolieb nedovolí používateľovi nastaviť žiadne ďalšie predvoľby. Má účinok iba vtedy, ak commit() vráti 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 nastavenie.

Parametre:
  • name – Názov nastavenia

  • config_obj – Konfiguračný objekt, ktorý číta/zapisuje nastavenie

  • gui_name – Názov objektu GUI, ktorý predstavuje rozhranie na zmenu nastavenia. Predvolene sa predpokladá 'opt_' + name.

  • choices – Ak je toto nastavenie založené na viacnásobnom výbere (combobox), zoznam možností. Zoznam je zoznam dvojprvkových tuple v tvare: [(gui name, value), ...]

  • setting – Trieda zodpovedná za správu tohto nastavenia. Predvolená trieda spracúva takmer všetky prípady, takže tento parameter sa používa zriedka.

initialize()[zdroj]

Mal by nastaviť všetky hodnoty konfigurácie na ich počiatočné hodnoty (hodnoty uložené v konfiguračných súboroch). Príkaz „return“ je voliteľný. Vráťte False, ak sa dialógové okno nemá zobraziť.

commit(*args)[zdroj]

Uloží všetky zmenené nastavenia. Vráti True, ak zmeny vyžadujú reštart, inak False. Vyvolá výnimku AbortCommit na označenie toho, že nastala chyba. Zodpovedáte za poskytnutie spätnej väzby používateľovi o tom, čo je chybou a ako ju opraviť.

restore_defaults(*args)[zdroj]

Mal by nastaviť všetky hodnoty konfigurácie na ich predvolené hodnoty.