Dokumentácia API pre databázové rozhranie

Toto API je vláknovo bezpečné (používa schému uzamykania s viacerými čitateľmi a jediným zapisovateľom). K tomuto API môžete pristupovať takto:

from calibre.library import db
db = db('Path to calibre library folder').new_api

Ak sa nachádzate v zásuvnom module calibre, ktorý je súčasťou hlavného GUI calibre, získate k nemu prístup namiesto toho takto:

db = self.gui.current_db.new_api
class calibre.db.cache.Cache(backend, library_database_instance=None)[zdroj]

Pamäťová vyrovnávacia pamäť súboru metadata.db z knižnice calibre. Táto trieda tiež slúži ako vláknovo bezpečné API na prístup k databáze. Pamäťová vyrovnávacia pamäť sa udržiava v normálnej forme pre maximálny výkon.

SQLITE sa jednoducho používa ako spôsob robustného čítania a zápisu do súboru metadata.db. Všetka logika čítania, triedenia, vyhľadávania a ukladania do vyrovnávacej pamäte tabuliek je implementovaná nanovo. Bolo to potrebné pre maximálny výkon a flexibilitu.

class EventType(*values)
book_created = 4

Keď sa v databáze vytvorí nový záznam knihy, pričom jediným argumentom je id knihy

book_edited = 8

Keď sa upraví formát knihy, s argumentmi: (book_id, fmt)

books_removed = 5

Keď sa knihy odstránia z databázy, pričom jediným argumentom je zoznam id kníh

format_added = 2

Keď sa do knihy pridá formát, s argumentmi: (book_id, format)

formats_removed = 3

Keď sa z knihy odstránia formáty, s argumentmi: (priradenie id knihy k množine formátov odstránených z knihy)

indexing_progress_changed = 9

Keď sa zmení priebeh indexovania

items_removed = 7

Keď sa z niektorých kníh odstránia položky, ako sú značky alebo autori. Argumenty: (field_name, ovplyvnené id kníh, id odstránených položiek)

items_renamed = 6

Keď sa v niektorých alebo vo všetkých knihách premenujú položky, ako sú značky alebo autori. Argumenty: (field_name, ovplyvnené id kníh, priradenie starého id položky k novému id položky)

Keď sa zmenia odkazy priradené k položke (položkám), s argumentmi: (field_name, item_ids)

metadata_changed = 1

Keď sa pre niektoré knihy zmenia metadáta, s argumentmi: (názov zmeneného poľa, množina ovplyvnených id kníh)

notes_changed = 10

Keď sa zmenia poznámky priradené k položke (položkám), s argumentmi: (field_name, item_ids)

add_books(books, add_duplicates=True, apply_import_tags=True, preserve_uuid=False, run_hooks=True, dbapi=None)[zdroj]

Pridá zadané knihy do knižnice. Knihy by mali byť iterovateľný objekt 2-prvkových n-tíc, pričom každá 2-prvková n-tica má tvar (mi, format_map), kde mi je objekt Metadata a format_map je slovník v tvare {fmt: path_or_stream}, napríklad: {'EPUB': '/path/to/file.epub'}.

Vráti dvojicu zoznamov: ids, duplicates. ids obsahuje id kníh pre všetky novo vytvorené knihy v databáze. duplicates obsahuje (mi, format_map) pre všetky knihy, ktoré už v databáze existujú podľa jednoduchej heuristiky na zisťovanie duplikátov používanej metódou has_book().

add_custom_book_data(name, val_map, delete_first=False)[zdroj]

Pridá dáta pre name, kde val_map je priradenie id kníh k hodnotám. Ak je delete_first True, všetky predtým uložené dáta pre name sa odstránia.

add_extra_files(book_id, map_of_relpath_to_stream_or_path, replace=True, auto_rename=False)[zdroj]

Pridať ďalšie dátové súbory

add_format(book_id, fmt, stream_or_path, replace=True, run_hooks=True, dbapi=None)[zdroj]

Pridá formát do zadanej knihy. Vráti True, ak bol formát úspešne pridaný.

Parametre:
  • replace – Ak je True, nahradí existujúci formát, inak ak formát už existuje, vráti False.

  • run_hooks – Ak je True, zásuvné moduly typu súborov sa spustia na formát pred pridaním a po pridaní.

  • dbapi – Iba na interné použitie.

add_listener(event_callback_function, check_already_added=False)[zdroj]

Zaregistruje funkciu spätného volania, ktorá sa zavolá po vykonaní určitých akcií v tejto databáze. Funkcia musí prijímať tri argumenty: (EventType, library_id, event_type_specific_data)

add_notes_resource(path_or_stream_or_data, name: str, mtime: float | None = None) → int[zdroj]

Pridá zadaný prostriedok, aby naň mohli odkazovať poznámky, a vráti jeho hash obsahu

all_annotation_styles()[zdroj]

Vráti n-ticu všetkých vstavaných štýlov anotácií.

all_annotation_types()[zdroj]

Vráti n-ticu všetkých typov anotácií v databáze.

all_annotation_users()[zdroj]

Vráti n-ticu všetkých (typ používateľa, meno používateľa), ktorí majú anotácie.

all_annotations(restrict_to_user=None, limit=None, annotation_type=None, annotation_style=None, ignore_removed=False, restrict_to_book_ids=None)[zdroj]

Vráti n-ticu všetkých anotácií zodpovedajúcich zadaným kritériám. ignore_removed ovláda, či sa majú vrátiť aj odstránené (vymazané) anotácie. Odstránené anotácie sú len kostra používaná na zlučovanie anotácií.

all_annotations_for_book(book_id)[zdroj]

Vráti n-ticu obsahujúcu všetky anotácie pre zadané book_id ako slovník s kľúčmi: format, user_type, user, annotation. Tu je annotation údaj anotácie.

all_book_ids(type=<class 'frozenset'>)[zdroj]

Nemenná množina všetkých známych id kníh.

all_field_for(field, book_ids, default_value=None)[zdroj]

Rovnaké ako field_for, ale pracuje s viacerými knihami naraz

all_field_ids(name)[zdroj]

Nemenná množina id pre všetky hodnoty v poli name.

all_field_names(field)[zdroj]

Nemenná množina všetkých názvov polí (mala by sa používať iba pre polia typu many-one a many-many)

annotation_count_for_book(book_id)[zdroj]

Vráti počet anotácií dostupných v databáze pre zadanú knihu.

annotations_map_for_book(book_id, fmt, user_type='local', user='viewer')[zdroj]

Vráti priradenie typu anotácie -> údajov anotácie pre zadané book_id, format, user a user_type.

author_data(author_ids=None) → dict[int, dict[str, str]][zdroj]

Vráti údaje o autorovi ako slovník s kľúčmi: name, sort, link

Ak sa nenájdu žiadni autori so zadanými id, vráti sa prázdny slovník. Ak je author_ids None, vrátia sa údaje pre všetkých autorov.

author_sort_from_authors(authors, key_func=<function make_change_case_func.<locals>.change_case>)[zdroj]

Na základe zoznamu autorov vráti reťazec author_sort pre autorov, pričom uprednostní triedenie autora priradené autorovi pred vypočítaným reťazcom.

author_sorts(author_ids=None) → dict[int, str][zdroj]

Vráti spôsoby triedenia pre zadaných autorov.

Ak sa nenájdu žiadni autori so zadanými id, vráti sa prázdny slovník. Ak je author_ids None, vrátia sa údaje pre všetkých autorov.

book_storage_for_book(book_id: int, fmt: str, user_type: str = 'local', user: str = 'viewer') → BookStorageEntry | None[zdroj]

Vráťte úložisko na knihu (používané pre localStorage v prehliadačoch) pre špecifikovaný book_id, formát, user_type a používateľa alebo Žiadne, ak úložisko neexistuje. Pamäť je dikt v tvare: {‚timestamp‘: seconds since epoch, ‚data‘: {key: value}}.

books_for_field(name, item_id)[zdroj]

Vráti všetky knihy priradené k položke identifikovanej pomocou item_id, kde položka patrí do poľa name.

Vrátená hodnota je množina id kníh alebo prázdna množina, ak položka alebo pole neexistuje.

books_in_virtual_library(vl, search_restriction=None, virtual_fields=None)[zdroj]

Vráti množinu kníh v zadanej virtuálnej knižnici

compress_covers(book_ids, jpeg_quality=100, progress_callback=None)[zdroj]

Komprimuje obrázky obálok pre zadané knihy. Kvalita kompresie 100 vykoná bezstratovú kompresiu, inak stratovú kompresiu.

Funkcia spätného volania priebehu sa zavolá s book_id a starou a novou veľkosťou pre každú spracovanú knihu. Ak nastane chyba, nová veľkosť bude reťazec s podrobnosťami o chybe.

copy_cover_to(book_id, dest, use_hardlink=False, report_file_size=None)[zdroj]

Skopíruje obálku do objektu podobného súboru dest. Vráti False, ak obálka neexistuje alebo ak je dest rovnaký súbor ako aktuálna obálka. dest môže byť aj cesta, v ktorom prípade sa obálka skopíruje do nej vtedy a len vtedy, ak sa cesta líši od aktuálnej cesty (s prihliadnutím na rozlišovanie veľkých a malých písmen).

copy_format_to(book_id, fmt, dest, use_hardlink=False, report_file_size=None)[zdroj]

Skopíruje formát fmt do objektu podobného súboru dest. Ak zadaný formát neexistuje, vyvolá chybu NoSuchFormat. dest môže byť aj cesta (k súboru), v ktorom prípade sa formát skopíruje do nej vtedy a len vtedy, ak sa cesta líši od aktuálnej cesty (s prihliadnutím na rozlišovanie veľkých a malých písmen).

cover(book_id, as_file=False, as_image=False, as_path=False, as_pixmap=False)[zdroj]

Vráti obrázok obálky alebo None. V predvolenom nastavení vráti obálku ako bajtový reťazec.

UPOZORNENIE: Použitie as_path skopíruje obálku do dočasného súboru a vráti cestu k dočasnému súboru. Po dokončení práce by ste mali dočasný súbor odstrániť.

Parametre:
  • as_file – Ak je True, vráti obrázok ako otvorený objekt súboru (SpooledTemporaryFile)

  • as_image – Ak je True, vráti obrázok ako objekt QImage

  • as_pixmap – Ak je True, vráti obrázok ako objekt QPixmap

  • as_path – Ak je True, vráti obrázok ako cestu ukazujúcu na dočasný súbor

data_for_find_identical_books()[zdroj]

Vráti údaje, ktoré možno použiť na implementáciu find_identical_books() v pracovnom procese bez prístupu k databáze. Implementáciu nájdete v db.utils.

data_for_has_book()[zdroj]

Vráti údaje vhodné na použitie v has_book(). Možno ich použiť na implementáciu has_book() v pracovnom procese bez prístupu k databáze.

delete_annotations(annot_ids)[zdroj]

Odstráni anotácie so zadanými id.

delete_custom_book_data(name, book_ids=())[zdroj]

Odstráni dáta pre name. V predvolenom nastavení odstráni všetky dáta; ak chcete odstrániť dáta len pre niektoré id kníh, zadajte zoznam id kníh.

delete_trash_entry(book_id, category)[zdroj]

Odstráni záznam z koša. Kategória je ‚b‘ pre knihy a ‚f‘ pre formáty.

embed_metadata(book_ids, only_fmts=None, report_error=None, report_progress=None)[zdroj]

Aktualizuje metadáta vo všetkých formátoch zadaných book_ids na aktuálne metadáta v databáze.

expire_old_trash()[zdroj]

Odstráni z koša záznamy, ktoré sú príliš staré

export_note(field, item_id) → str[zdroj]

Exportuje poznámku ako jediný dokument HTML s vloženými obrázkami ako URL typu data:

fast_field_for(field_obj, book_id, default_value=None)[zdroj]

Rovnaké ako field_for, ale vyhýba sa dodatočnému vyhľadávaniu na získanie objektu poľa

field_for(name, book_id, default_value=None)[zdroj]

Vráti hodnotu poľa name pre knihu identifikovanú pomocou book_id. Ak taká kniha neexistuje, nemá definovanú hodnotu pre pole name alebo také pole neexistuje, vráti sa default_value.

default_value sa nepoužíva pre title, title_sort, authors, author_sort a series_index. Je to preto, že tieto majú v databáze vždy hodnoty. default_value sa používa pre všetky vlastné stĺpce.

Vrátená hodnota pre polia is_multiple je vždy n-tica, a to aj vtedy, keď sa nenájdu žiadne hodnoty (inými slovami, default_value sa ignoruje). Výnimkou sú identifikátory, pre ktoré je vrátená hodnota vždy slovník. Vrátené n-tice sú vždy v poradí odkazov, teda v poradí, v akom boli vytvorené.

field_ids_for(name, book_id)[zdroj]

Vráti id (ako n-ticu) pre hodnoty, ktoré má pole name v knihe identifikovanej pomocou book_id. Ak neexistujú žiadne hodnoty, žiadna taká kniha ani žiadne také pole, vráti sa prázdna n-tica.

field_supports_notes(field=None) → bool | frozenset[zdroj]

Vráti True vtedy a len vtedy, ak zadané pole podporuje poznámky. Ak je pole None, vráti nemennú množinu všetkých polí, ktoré podporujú poznámky.

find_identical_books(mi, search_restriction='', book_ids=None)[zdroj]

Nájde knihy, ktoré majú nadmnožinu autorov v mi a rovnaký názov (názov sa porovnáva fuzzy). Pozri tiež data_for_find_identical_books().

format(book_id, fmt, as_file=False, as_path=False, preserve_filename=False)[zdroj]

Vráti formát e-knihy ako bajtový reťazec alebo None, ak formát neexistuje, alebo ak nemáme oprávnenie zapisovať do súboru e-knihy.

Parametre:
  • as_file – Ak je True, formát e-knihy sa vráti ako objekt súboru. Upozorňujeme, že objekt súboru je SpooledTemporaryFile, takže ak chcete formát skopírovať do iného súboru, použite namiesto toho z dôvodu výkonu copy_format_to().

  • as_path – Skopíruje súbor formátu do dočasného súboru a vráti cestu k dočasnému súboru

  • preserve_filename – Ak je True a vracia sa cesta, názov súboru je rovnaký ako ten, ktorý sa používa v knižnici. Upozorňujeme, že použitie tohto znamená, že opakované volania vrátia rovnaký dočasný súbor (ktorý sa zakaždým znova vytvorí)

format_abspath(book_id, fmt)[zdroj]

Vráti absolútnu cestu k súboru e-knihy formátu format. Takmer nikdy by ste to nemali používať, pretože to porušuje sľub vláknovo bezpečného API. Namiesto toho použite copy_format_to().

V súčasnosti sa používa iba v calibredb list, prehliadači, editore kníh, porovnaní formátu s pôvodným formátom, otvorení v programe, hromadnej úprave metadát a katalógoch (cez get_data_as_dict()).

Okrem prehliadača, otvorenia v programe a editora kníh neverím, že niektorý z ostatných vykonáva akékoľvek I/O zápisu súborov s výsledkami tohto volania.

format_hash(book_id, fmt)[zdroj]

Vráti hash zadaného formátu pre zadanú knihu. Druh hashu závisí od backendu, zvyčajne však ide o SHA-256.

format_metadata(book_id, fmt, allow_cache=True, update_db=False)[zdroj]

Vráti cestu, veľkosť a čas úpravy pre zadaný formát zadanej knihy. Cestu by ste nemali používať, pokiaľ to absolútne nie je nevyhnutné, pretože priamy prístup k nej porušuje záruky vláknovo bezpečného API. Namiesto toho použite metódu copy_format_to().

Parametre:
  • allow_cache – Ak True, použijú sa hodnoty z vyrovnávacej pamäte, inak sa vykoná pomalý prístup k súborovému systému. Hodnoty vo vyrovnávacej pamäti môžu byť zastarané, ak sa pristupovalo k súborovému systému mimo tohto API.

  • update_db – Ak True, pole max_size v databáze sa pre túto knihu aktualizuje.

formats(book_id, verify_formats=True)[zdroj]

Vráti n-ticu všetkých formátov pre zadanú knihu. Ak je verify_formats True, overí, či súbory existujú na disku.

get_all_items_that_have_notes(field_name=None) → set[int] | dict[str, set[int]][zdroj]

Vráti všetky item_ids pre položky, ktoré majú poznámky v zadanom poli, alebo vo všetkých poliach, ak je field_name None

Vráti všetky odkazy pre všetky polia odkazované knihou identifikovanou pomocou book_id. Ak book_id neexistuje, metóda vráti {}.

Príklad: Predpokladajme, že autor A má odkaz X, autor B má odkaz Y, značka S má odkaz F a značka T má odkaz G. Ak kniha 1 má autora A a značku T, táto metóda vráti {‚authors‘:{‚A‘:‘X‘}, ‚tags‘:{‚T‘, ‚G‘}}. Ak autorom knihy 2 nie je ani A, ani B a nemá žiadne značky, táto metóda vráti {}.

Parametre:

book_id – príslušné id knihy.

Vracia:

{field: {field_value, link_value}, … pre všetky polia s field_value, ktoré majú pre túto knihu neprázdnu hodnotu odkazu

get_book_path(book_id, sep='/', unsafe=False)[zdroj]

Vráti relatívnu cestu knihy pre zadané id. Uprednostnite toto, pretože môžete zvoliť oddeľovač priečinkov; predvolene sa použije oddeľovač OS. Ak je unsafe True, povolí vrátiť None, ak book_id nie je v knižnici.

get_categories(sort='name', book_ids=None, already_fixed=None, first_letter_sort=False, uncollapsed_categories=None)[zdroj]

Používa sa interne na implementáciu prehliadača značiek

get_custom_book_data(name, book_ids=(), default=None)[zdroj]

Získa dáta pre name. V predvolenom nastavení vráti dáta pre všetky book_ids; ak chcete len niektoré dáta, zadajte zoznam id kníh. Vráti priradenie book_id k hodnotám. Ak konkrétnu hodnotu nebolo možné dekódovať, použije sa pre ňu predvolená hodnota.

get_id_map(field)[zdroj]

Vráti priradenie čísel id k hodnotám pre zadané pole. Pole musí byť typu many-one alebo many-many, inak sa vyvolá ValueError.

get_ids_for_custom_book_data(name)[zdroj]

Vráti množinu id kníh, pre ktoré má name dáta.

get_item_id(field, item_name, case_sensitive=False)[zdroj]

Vráti id položky pre item_name alebo None, ak sa nenájde. Táto funkcia je veľmi pomalá, ak sa vyhľadáva viacero názvov; použite buď get_item_ids(), alebo get_item_name_map(). Podobne, vyhľadávania s rozlišovaním veľkých a malých písmen sú rýchlejšie než tie, ktoré nerozlišujú.

get_item_ids(field, item_names, case_sensitive=False)[zdroj]

Vráti slovník priraďujúci item_name k id položky alebo None

get_item_name(field, item_id)[zdroj]

Vráti názov položky pre položku určenú pomocou item_id v zadanom poli. Pozri tiež get_id_map().

get_item_name_map(field, normalize_func=None)[zdroj]

Vráti priradenie hodnôt položiek k id

Vráti slovník odkazov pre zadané pole.

Parametre:

for_field – vyhľadávací názov poľa, pre ktoré sa požaduje mapa odkazov

Vracia:

{field_value:link_value, …} pre neprázdne odkazy

get_metadata(book_id, get_cover=False, get_user_categories=True, cover_as_data=False)[zdroj]

Vráti metadáta pre knihu identifikovanú pomocou book_id ako objekt calibre.ebooks.metadata.book.base.Metadata. Upozorňujeme, že zoznam formátov nie je overený. Ak je get_cover True, vráti sa obálka, buď ako cesta k dočasnému súboru v mi.cover, alebo ak je cover_as_data True, ako mi.cover_data.

get_next_series_num_for(series, field='series', current_indices=False)[zdroj]

Vráti ďalší index série pre zadanú sériu s prihliadnutím na rôzne preferencie, ktoré ovládajú generovanie ďalšieho čísla série.

Parametre:
  • field – Pole podobné sérii (predvolene vstavaný stĺpec série)

  • current_indices – Ak je True, namiesto toho vráti priradenie book_id k aktuálnej hodnote series_index.

get_notes_resource(resource_hash) → dict | None[zdroj]

Vráti slovník obsahujúci údaje prostriedku a názov alebo None, ak sa nenájde žiadny prostriedok so zadaným hashom

get_pages(book_id: int) → Pages | None[zdroj]

Vráti informácie o počte strán pre zadanú knihu

get_proxy_metadata(book_id)[zdroj]

Podobné ako get_metadata(), ale vracia objekt ProxyMetadata, ktorý číta hodnoty z databázy iba na požiadanie. To je oveľa rýchlejšie než get_metadata, keď je potrebné z vráteného objektu metadát pristupovať len k malému počtu polí.

get_usage_count_by_id(field)[zdroj]

Vráti priradenie id k počtu použití pre všetky hodnoty zadaného poľa, ktoré musí byť typu many-one alebo many-many.

has_book(mi)[zdroj]

Vráti True vtedy a len vtedy, ak databáza obsahuje záznam s rovnakým názvom, ako má odovzdaný objekt Metadata. Porovnanie nerozlišuje veľkosť písmen. Pozri tiež data_for_has_book().

has_format(book_id, fmt)[zdroj]

Vráti True vtedy a len vtedy, ak formát existuje na disku

has_id(book_id)[zdroj]

Vráti True vtedy a len vtedy, ak zadané book_id existuje v databáze

import_note(field, item_id, path_to_html_file, path_is_data=False)[zdroj]

Importuje predtým exportovanú poznámku alebo ľubovoľný súbor HTML ako poznámku pre zadanú položku

init()[zdroj]

Inicializuje túto vyrovnávaciu pamäť údajmi z backendu.

items_with_notes_in_book(book_id: int) → dict[str, dict[int, str]][zdroj]

Vráti slovník priraďujúci pole k položkám, ktoré majú priradené poznámky pre dané pole pre zadanú knihu

Vráti odkaz, ak existuje, pre zadanú položku, alebo None, ak sa nenájde žiadny odkaz

list_extra_files(book_id, use_cache=False, pattern='') → tuple[ExtraFile, ...][zdroj]

Získa informácie o ďalších súboroch v priečinku knihy.

Parametre:
  • book_id – databázové id knihy pre knihu

  • pattern – vzor názvov súborov na vyhľadávanie. Prázdny vzor zodpovedá všetkým ďalším súborom. Vzory musia používať / ako oddeľovač. Ak chcete porovnávať súbory vnútri priečinka data, použite konštantu DATA_FILE_PATTERN.

Vracia:

N-tica všetkých ďalších súborov zodpovedajúcich zadanému vzoru. Každý prvok n-tice je ExtraFile(relpath, file_path, stat_result). Kde relpath je relatívna cesta súboru k priečinku knihy s použitím / ako oddeľovača. stat_result je výsledok volania os.stat() na súbore.

mark_for_pages_recount(book_id: int = 0) → None[zdroj]

Označí všetky knihy na prepočítanie strán

merge_annotations_for_book(book_id, fmt, annots_list, user_type='local', user='viewer')[zdroj]

Zlúči zadané anotácie do existujúcich anotácií pre book_id, fm, user_type a user.

merge_extra_files(dest_id, src_ids, replace=False)[zdroj]

Zlúči ďalšie súbory zo src_ids do dest_id. Konfliktné súbory sa automaticky premenujú, pokiaľ nie je replace=True, v ktorom prípade sa nahradia.

move_book_from_trash(book_id)[zdroj]

Obnoví knihu z priečinka koša

move_format_from_trash(book_id, fmt)[zdroj]

Obnoví formát z priečinka koša

multisort(fields, ids_to_sort=None, virtual_fields=None)[zdroj]

Vráti zoznam zoradených id kníh. Ak je ids_to_sort None, vrátia sa všetky id kníh.

fields musí byť zoznam 2-prvkových n-tíc v tvare (field_name, ascending=True alebo False). Najvýznamnejšie pole je prvá 2-prvková n-tica.

notes_data_for(field, item_id) → dict[str, Any] | None[zdroj]

Vráti všetky údaje poznámok ako slovník alebo None, ak poznámka neexistuje

notes_for(field, item_id) → str[zdroj]

Vráti dokument poznámok alebo prázdny reťazec, ak sa nenájde

notes_resources_used_by(field, item_id)[zdroj]

Vráti množinu hashov prostriedkov všetkých prostriedkov používaných poznámkou pre zadanú položku

pages_needs_scan(books: Iterable[int] = ()) → set[int][zdroj]

Vráti podmnožinu kníh (alebo všetky knihy, ak je prázdna), ktoré sú označené ako vyžadujúce skenovanie na aktualizáciu počtu strán

pref(name, default=None, namespace=None, get_default_from_defaults=False)[zdroj]

Vráti hodnotu pre zadanú preferenciu alebo hodnotu zadanú ako default, ak preferencia nie je nastavená.

queue_pages_scan(book_id: int = 0, force: bool = False, by_user: bool = True) → None[zdroj]

Spustí skenovanie aktualizujúce počty strán pre všetky knihy, ktoré potrebujú skenovanie. Ak je zadané book_id, skenuje sa iba táto kniha a vždy sa skenuje. Keď je force True, existujúca hodnota strán, ak existuje, sa zahodí, takže kniha sa vynútene znova preskenuje, aj keby bola existujúca hodnota aktuálna.

read_backup(book_id)[zdroj]

Vráti záložnú kópiu metadát OPF pre knihu ako bajtový reťazec alebo None, ak takáto záloha neexistuje.

refresh_format_sizes(size_map: dict[tuple[int, str], int]) → set[int][zdroj]

Aktualizuje databázu veľkosťami zadaných formátových súborov na disku. size_map priraďuje (book_id, fmt) k veľkosti formátového súboru. Používa sa na opravu uložených veľkostí, ktoré zostarli, pretože formátové súbory sa zmenili mimo calibre. Vráti id kníh, ktorých uložené veľkosti sa zmenili.

remove_books(book_ids, permanent=False)[zdroj]

Odstráni knihy určené pomocou book_ids z databázy a vymaže ich formátové súbory. Ak je permanent False, formátové súbory sa umiestnia do koša konkrétnej knižnice.

remove_extra_files(book_id: int, relpaths: Iterable[str], permanent=False) → dict[str, Exception | None][zdroj]

Vymaže zadané ďalšie súbory, buď do koša, alebo natrvalo.

remove_formats(formats_map, db_only=False)[zdroj]

Odstráni zadané formáty zo zadaných kníh.

Parametre:
  • formats_map – Priradenie book_id k zoznamu formátov na odstránenie z knihy.

  • db_only – Ak je True, odstráni iba záznam o formáte z databázy, nevymaže skutočný formátový súbor zo súborového systému.

Vracia:

Priradenie id knihy k množine formátov skutočne vymazaných zo súborového systému pre túto knihu

remove_items(field, item_ids, restrict_to_book_ids=None)[zdroj]

Vymaže všetky položky v zadanom poli so zadanými id. Vráti množinu ovplyvnených id kníh. restrict_to_book_ids je voliteľná množina id kníh. Ak je zadaná, položky sa odstránia iba z týchto kníh.

rename_extra_files(book_id, map_of_relpath_to_new_relpath, replace=False)[zdroj]

Premenovať ďalšie dátové súbory

rename_items(field, item_id_to_new_name_map, change_index=True, restrict_to_book_ids=None)[zdroj]

Premenuje položky z poľa typu many-one alebo many-many, ako sú značky alebo série.

Parametre:
  • change_index – Pri premenovaní v poli podobnom sérii zmeňte aj hodnoty series_index.

  • restrict_to_book_ids – Voliteľná množina id kníh, pre ktoré sa má premenovanie vykonať; predvolene všetky knihy.

restore_book(book_id, mi, last_modified, path, formats, annotations=())[zdroj]

Obnoví záznam knihy v databáze pre knihu, ktorá už existuje v súborovom systéme

restore_original_format(book_id, original_fmt)[zdroj]

Obnoví zadaný formát z predtým uloženého ORIGINAL_FORMAT, ak existuje. Pri úspechu vráti True. Po úspešnom obnovení sa ORIGINAL_FORMAT vymaže.

property safe_read_lock

Bezpečný zámok na čítanie je zámok, ktorý nič nerobí, ak vlákno už má zámok na zápis, inak získa zámok na čítanie. Je to potrebné na zabránenie chybám DowngradeLockErrors, ktoré môžu nastať pri aktualizácii vyrovnávacej pamäte vyhľadávania v prítomnosti zložených stĺpcov. Aktualizácia vyrovnávacej pamäte vyhľadávania drží výhradný zámok, ale vyhľadávanie v zloženom stĺpci zahŕňa čítanie hodnôt polí cez ProxyMetadata, ktorý sa snaží získať zdieľaný zámok. Môžu existovať aj ďalšie scenáre, ktoré to spúšťajú.

Táto vlastnosť vráti pri každom prístupe nový objekt zámku. Tento objekt zámku nie je rekurzívny (z dôvodu výkonu) a musí sa používať iba v príkaze with ako with cache.safe_read_lock:, inak sa stanú zlé veci.

save_original_format(book_id, fmt)[zdroj]

Uloží kópiu zadaného formátu ako ORIGINAL_FORMAT a prepíše akýkoľvek existujúci ORIGINAL_FORMAT.

search(query, restriction='', virtual_fields=None, book_ids=None, allow_templates=True)[zdroj]

Prehľadá databázu pre zadaný dopyt a vráti množinu zodpovedajúcich id kníh.

Parametre:
  • restriction – Obmedzenie, ktoré sa spojí operátorom AND so zadaným dopytom. Upozorňujeme, že obmedzenia sa ukladajú do vyrovnávacej pamäte, preto vyhľadávanie a AND b bude pomalšie než a s obmedzením b.

  • virtual_fields – Používa sa interne (na vyhľadávanie cez virtuálne polia, ako napríklad on_device).

  • book_ids – Ak nie je None, množina id kníh, pre ktoré sa budú knihy vyhľadávať, namiesto vyhľadávania vo všetkých knihách.

search_annotations(fts_engine_query, use_stemming=True, highlight_start=None, highlight_end=None, snippet_size=None, annotation_type=None, restrict_to_book_ids=None, restrict_to_user=None, ignore_removed=False, annotation_style=None)[zdroj]

Vráti n-ticu anotácií zodpovedajúcich zadanému fulltextovému dopytu.

search_notes(fts_engine_query='', use_stemming=True, highlight_start=None, highlight_end=None, snippet_size=None, restrict_to_fields=(), return_text=True, result_type=<class 'tuple'>, process_each_result=None, limit=None)[zdroj]

Hľadať v texte poznámok pomocou indexu FTS. Ak je dopyt prázdny, vráti všetky poznámky.

set_annotations_for_book(book_id, fmt, annots_list, user_type='local', user='viewer')[zdroj]

Nastaví všetky anotácie pre zadané book_id, fmt, user_type a user.

set_conversion_options(options, fmt='PIPE')[zdroj]

options musí byť priradenie v tvare {book_id:conversion_options}

set_cover(book_id_data_map)[zdroj]

Nastaví obálku pre túto knihu. Údaje môžu byť buď QImage, QPixmap, objekt súboru alebo bajtový reťazec. Môžu byť aj None, v ktorom prípade sa akákoľvek existujúca obálka odstráni.

set_field(name, book_id_to_val_map, allow_case_change=True, do_path_update=True)[zdroj]

Nastaví hodnoty poľa zadaného pomocou name. Vráti množinu všetkých id kníh, ktoré boli zmenou ovplyvnené.

Parametre:
  • book_id_to_val_map – Priradenie book_ids k hodnotám, ktoré sa majú použiť.

  • allow_case_change – Ak je True, zmení sa veľkosť písmen pri poliach typu many-one alebo many-many. Napríklad, ak má kniha značku tag1 a vy nastavíte značku pre inú knihu na Tag1, potom obe knihy budú mať značku Tag1, ak je allow_case_change True, inak obe budú mať značku tag1.

  • do_path_update – Používa sa interne, nikdy by ste to nemali meniť.

Nastaví odkazy pre hodnoty položiek v poli. Poznámka: táto metóda nemení hodnoty, ktoré nie sú vo value_to_link_map

Parametre:
  • field – vyhľadávací názov

  • value_to_link_map – dict(field_value:link, …). Upozorňujeme, že ide o hodnoty, nie id polí.

Vracia:

knihy zmenené nastavením odkazu

set_metadata(book_id, mi, ignore_errors=False, force_changes=False, set_title=True, set_authors=True, allow_case_change=False)[zdroj]

Nastaví metadáta pre knihu id z objektu Metadata mi

Nastavenie force_changes=True prinúti set_metadata aktualizovať polia, aj keď mi obsahuje prázdne hodnoty. V tomto prípade sa ‚None‘ odlišuje od ‚prázdne‘. Ak je mi.XXX None, XXX sa nenahradí, inak áno. Atribúty tags, identifiers a cover sú špeciálne prípady. Tags a identifiers nemožno nastaviť na None, takže sa vždy nahradia, ak je force_changes true. Musíte zabezpečiť, aby mi obsahoval hodnoty, ktoré chcete, aby kniha mala. Obálky sa vždy zmenia, ak sa poskytne nová obálka, ale nikdy sa neodstránia. Tiež si všimnite, že force_changes nemá vplyv na nastavenie title alebo authors.

set_notes_for(field, item_id, doc: str, searchable_text: str = '', resource_hashes=(), remove_unused_resources=False) → int[zdroj]

Nastaví dokument poznámok. Ak sa prehľadávateľný text líši od dokumentu, zadajte ho ako searchable_text. Ak dokument odkazuje na prostriedky, ich hashy musia byť prítomné v resource_hashes. Ak chcete vyčistiť nepoužité prostriedky, nastavte remove_unused_resources na True; upozorňujeme, že aktualizácia poznámky automaticky vyčistí prostriedky patriace k tejto poznámke tak či tak.

set_pages(book_id: int, pages: int = 0, algorithm: int = 0, format: str = '', format_size: int = 0) → None[zdroj]

Nastaví informácie o počte strán pre zadanú knihu

set_pref(name, val, namespace=None)[zdroj]

Nastaví zadanú preferenciu na zadanú hodnotu. Pozri tiež pref().

split_if_is_multiple_composite(f, val)[zdroj]

Ak f je vyhľadávací kľúč zloženého stĺpca a stĺpec je is_multiple, potom rozdelí v na jedinečné neprázdne hodnoty. Porovnanie rozlišuje veľkosť písmen. Poradie sa nezachová. Vráti list() pre kompatibilitu s gettermi polí proxy metadát, napríklad tags.

tags_older_than(tag, delta=None, must_have_tag=None, must_have_authors=None)[zdroj]

Vráti id všetkých kníh so značkou tag, ktoré sú staršie ako zadaný čas. Porovnanie značiek nerozlišuje veľkosť písmen.

Parametre:
  • delta – Objekt timedelta alebo None. Ak je None, vrátia sa všetky id so značkou.

  • must_have_tag – Ak nie je None, zoznam zhôd sa obmedzí na knihy, ktoré majú túto značku

  • must_have_authors – Zoznam autorov. Ak nie je None, zoznam zhôd sa obmedzí na knihy, ktoré majú týchto autorov (nerozlišuje veľkosť písmen).

unretire_note_for(field, item_id) → int[zdroj]

Zruší vyradenie predtým vyradenej poznámky pre zadanú položku. Poznámky sa vyradia, keď sa položka odstráni z databázy

update_annotations(annot_id_map)[zdroj]

Aktualizuje anotácie.

update_book_storage_for_book(book_id: int, fmt: str, entry: BookStorageEntry, user_type: str = 'local', user: str = 'viewer') → BookStorageEntry[zdroj]

Nastavte úložisko na knihu pre špecifikovaný book_id, formát, user_type a používateľa, pokiaľ existujúce úložisko nie je novšie ako Entry. Po aktualizácii vráti úložisko v platnosti. Vyčistite úložisko tak, že prejdete záznam s prázdnymi dátami.

user_categories_for_books(book_ids, proxy_metadata_map=None)[zdroj]

Vráti používateľské kategórie pre zadané knihy. proxy_metadata_map je voliteľný a je užitočný na zvýšenie výkonu v kontextoch, kde už existuje objekt ProxyMetadata pre knihy. Malo by ísť o priradenie book_ids k zodpovedajúcim objektom ProxyMetadata.