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ý obsahujetento 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:
__enter__()
- 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_customizationv 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
namevráteného objektu.- Parametre:
suffix – Prípona, ktorú bude mať dočasný súbor.
FileTypePlugin¶
- class calibre.customize.FileTypePlugin(plugin_path)[zdroj]¶
Základ:
PluginZá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:
PluginZá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:
PluginZá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:
PluginZá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.
- 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:
PluginInputFormatPlugins 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štanciouOptionRecommendation.
- 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štanciacalibre.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:
PluginOutputFormatPlugins 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štanciouOptionRecommendation.
- 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:
PluginDefinuje 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()aignore_connected_device()aget_user_blacklisted_devices()aset_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ť ibacan_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:
Hlavná pamäť
Pamäťová karta A
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:
Hlavná pamäť
Karta A
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“, akon_cardnie 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 preupload_books().booklists – Tuple obsahujúci výsledok volaní (
books(oncard=None)(),books(oncard='carda')(), :meth`books(oncard=‘cardb‘)`).
- 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
pathv zariadení a zapíše ho do outfile.- Parametre:
outfile – objekt súboru ako
sys.stdoutalebo výsledok volaniaopen().
- 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:
listZoznam kníh. Každý objekt Book musí mať polia
title
authors
size (veľkosť súboru knihy)
datetime (UTC časový tuple)
path (cesta ku knihe v zariadení)
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
tags (zoznam reťazcov, môže byť prázdny).
- 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ť
- 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,DevicePluginTá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:
Hlavná pamäť
Pamäťová karta A
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:
Hlavná pamäť
Karta A
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ť ibacan_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().
- class calibre.devices.usbms.driver.USBMS(plugin_path)[zdroj]¶
-
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“, akon_cardnie 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 preupload_books().booklists – Tuple obsahujúci výsledok volaní (
books(oncard=None)(),books(oncard='carda')(), :meth`books(oncard=‘cardb‘)`).
- 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‘)`).
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:
QObjectZá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
InterfaceActionmajú 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()atag_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_specsa automaticky vytvorí a je dostupná akoself.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]
Ak je True, ponuka sa automaticky vytvorí a pridá do self.qaction
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.
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_specje dostupná akoself.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.
indexje 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.
- 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
Zásuvné moduly predvolieb¶
- class calibre.customize.PreferencesPlugin(plugin_path)[zdroj]¶
Základ:
PluginZá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().
- name_order = 100¶
Kde v zozname názvov v kategórii by sa mal nachádzať
gui_nametohto 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_widgetna 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ť.
- commit()[zdroj]¶
Uloží všetky zmenené nastavenia. Vráti True, ak zmeny vyžadujú reštart, inak False. Vyvolá výnimku
AbortCommitna 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ť.
- 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
ConfigWidgetInterfacea 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ť.
