API dokumentacija za interfejs baze podataka¶
Ovaj API je bezbedan za korišćenje iz više niti (koristi zaključavanje sa više čitalaca i jednim piscem). Pristupa mu se ovako:
from calibre.library import db
db = db('Path to calibre library folder').new_api
Ako ste u calibre dodatku koji je deo glavnog calibre GUI-ja, pristupate mu ovako umesto toga:
db = self.gui.current_db.new_api
- class calibre.db.cache.Cache(backend, library_database_instance=None)[изворни код]¶
Keš fajla metadata.db iz calibre biblioteke koji se čuva u memoriji. Ova klasa je ujedno API za pristup bazi podataka bezbedan za korišćenje iz više niti. Podaci u kešu održavaju se u normalizovanom obliku radi što boljih performansi.
SQLite se koristi samo za pouzdano čitanje iz fajla metadata.db i upisivanje u njega. Logika za čitanje, sortiranje, pretraživanje i keširanje tabela ponovo je implementirana radi što boljih performansi i fleksibilnosti.
- class EventType(*values)¶
- book_created = 4¶
Kada se u bazi podataka kreira novi zapis o knjizi, sa ID-jem knjige kao jedinim argumentom
- book_edited = 8¶
Kada se format knjige uređuje, sa argumentima: (book_id, fmt)
- books_removed = 5¶
Kada se knjige uklone iz baze podataka sa listom ID-jeva knjiga kao jedinim argumentom
- format_added = 2¶
Kada se format doda knjizi, sa argumentima: (book_id, format)
- formats_removed = 3¶
Kada se formati uklone iz knjige, sa argumentima: (mapiranje ID-ja knjige u skup formata uklonjenih iz knjige)
- indexing_progress_changed = 9¶
Kada se promeni napredak indeksiranja
- items_removed = 7¶
Kada se stavke kao što su oznake ili autori uklone iz nekih knjiga. Argumenti: (field_name, affected book ids, ids of removed items)
- items_renamed = 6¶
Kada se stavke kao što su oznake ili autori preimenuju u nekim ili svim knjigama. Argumenti: (field_name, affected book ids, map of old item id to new item id)
- links_changed = 11¶
Kada se promene veze povezane sa stavkom(ama), sa argumentima: (field_name, item_ids)
- metadata_changed = 1¶
Kada se promene neki metapodaci za neke knjige, sa argumentima: (name of changed field, set of affected book ids)
- notes_changed = 10¶
Kada se promene beleške povezane sa stavkom(ama), sa argumentima: (field_name, item_ids)
- add_books(books, add_duplicates=True, apply_import_tags=True, preserve_uuid=False, run_hooks=True, dbapi=None)[изворни код]¶
Dodajte navedene knjige u biblioteku. Knjige bi trebalo da budu iterabilne od 2-torki, svaka 2-torka u obliku
(mi, format_map)gde je mi objekat metapodataka, a format_map rečnik u obliku{fmt: path_or_stream}, na primer:{'EPUB': '/path/to/file.epub'}.Vraća par lista:
ids, duplicates.idssadrži ID-ove knjiga za sve novokreirane knjige u bazi podataka.duplicatessadrži(mi, format_map)za sve knjige koje već postoje u bazi podataka prema jednostavnoj heuristici za otkrivanje duplikata koju koristihas_book().
- add_custom_book_data(name, val_map, delete_first=False)[изворни код]¶
Dodaje podatke za name; val_map preslikava identifikatore knjiga u vrednosti. Ako je delete_first True, prethodno sačuvani podaci za name biće uklonjeni.
- add_extra_files(book_id, map_of_relpath_to_stream_or_path, replace=True, auto_rename=False)[изворни код]¶
Dodaj dodatne datoteke sa podacima
- add_format(book_id, fmt, stream_or_path, replace=True, run_hooks=True, dbapi=None)[изворни код]¶
Dodaj format navedenoj knjizi. Vraća True ako je format uspešno dodat.
- Параметри:
replace -- Ako je True, zamenjuje postojeći format, inače ako format već postoji, vraća False.
run_hooks -- Ako je True, dodaci za tipove datoteka se pokreću na formatu pre i posle dodavanja.
dbapi -- Samo za internu upotrebu.
- add_listener(event_callback_function, check_already_added=False)[изворни код]¶
Registruje povratnu funkciju koja će biti pozvana nakon određenih akcija nad ovom bazom podataka. Funkcija mora primiti tri argumenta: (
EventType, library_id, event_type_specific_data)
- add_notes_resource(path_or_stream_or_data, name: str, mtime: float | None = None) int[изворни код]¶
Dodaje navedeni resurs kako bi beleške mogle da ga koriste i vraća heš njegovog sadržaja.
- all_annotation_styles()[изворни код]¶
Vrati torku svih ugrađenih stilova anotacija.
- all_annotation_types()[изворни код]¶
Vrati torku svih tipova anotacija u bazi podataka.
- all_annotation_users()[изворни код]¶
Vrati torku svih (user_type, user name) koji imaju anotacije.
- all_annotations(restrict_to_user=None, limit=None, annotation_type=None, annotation_style=None, ignore_removed=False, restrict_to_book_ids=None)[изворни код]¶
Vraća torku svih anotacija koje odgovaraju navedenim kriterijumima. ignore_removed kontroliše da li se vraćaju i uklonjene (obrisane) anotacije. Uklonjene anotacije su samo kostur koji se koristi za spajanje anotacija.
- all_annotations_for_book(book_id)[изворни код]¶
Vraća torku koja sadrži sve anotacije za navedeni book_id kao rečnik sa ključevima: format, user_type, user, annotation. Ovde je annotation podatak o anotaciji.
- all_book_ids(type=<class 'frozenset'>)[изворни код]¶
Zamrznuti skup svih poznatih ID-ova knjiga.
- all_field_for(field, book_ids, default_value=None)[изворни код]¶
Isto kao field_for, osim što radi na više knjiga odjednom
- all_field_ids(name)[изворни код]¶
Zamrznuti skup ID-ova za sve vrednosti u polju
name.
- all_field_names(field)[изворни код]¶
Zamrznuti skup svih imena polja (treba koristiti samo za many-one i many-many polja)
- annotation_count_for_book(book_id)[изворни код]¶
Vraća broj anotacija za navedenu knjigu dostupnih u bazi podataka.
- annotations_map_for_book(book_id, fmt, user_type='local', user='viewer')[изворни код]¶
Vraća mapu tip anotacije -> podaci o anotaciji za navedeni book_id, format, user i user_type.
- author_data(author_ids=None) dict[int, dict[str, str]][изворни код]¶
Vraća podatke o autoru kao rečnik sa ključevima: name, sort, link
Ako se ne pronađu autori sa navedenim ID-ovima, vraća se prazan rečnik. Ako je author_ids None, vraćaju se podaci za sve autore.
- author_sort_from_authors(authors, key_func=<function make_change_case_func.<locals>.change_case>)[изворни код]¶
Za zadatu listu autora vraća niz author_sort, pri čemu prednost ima redosled sortiranja povezan s autorom, a ne izračunati niz.
- author_sorts(author_ids=None) dict[int, str][изворни код]¶
Vraća sortiranja autora za navedene autore.
Ako se ne pronađu autori sa navedenim ID-ovima, vraća se prazan rečnik. Ako je author_ids None, vraćaju se podaci za sve autore.
- book_storage_for_book(book_id: int, fmt: str, user_type: str = 'local', user: str = 'viewer') BookStorageEntry | None[изворни код]¶
Vraća skladište podataka za pojedinačnu knjigu (koje čitači koriste za localStorage) za navedene book_id, format, user_type i user, ili None ako skladište ne postoji. Skladište je rečnik oblika: {'timestamp': broj sekundi od epohe, 'data': {ključ: vrednost}}.
- books_for_field(name, item_id)[изворни код]¶
Vraća sve knjige povezane sa stavkom identifikovanom sa
item_id, gde stavka pripada poljuname.Vraćena vrednost je skup ID-ova knjiga, ili prazan skup ako stavka ili polje ne postoje.
- books_in_virtual_library(vl, search_restriction=None, virtual_fields=None)[изворни код]¶
Vraća skup knjiga u navedenoj virtuelnoj biblioteci
- compress_covers(book_ids, jpeg_quality=100, progress_callback=None)[изворни код]¶
Komprimuje slike korica navedenih knjiga. Kvalitet 100 označava kompresiju bez gubitaka, a niže vrednosti kompresiju s gubicima.
Povratni poziv napretka će biti pozvan sa book_id i starim i novim veličinama za svaku knjigu koja je obrađena. Ako dođe do greške, nova veličina će biti string sa detaljima greške.
- copy_cover_to(book_id, dest, use_hardlink=False, report_file_size=None)[изворни код]¶
Kopira koricu u objekat sličan fajlu
dest. Vraća False ako korica ne postoji ili je dest isti fajl kao trenutna korica. dest takođe može biti putanja, u kom slučaju se korica kopira na nju ako i samo ako je putanja različita od trenutne putanje (uzimajući u obzir osetljivost na velika i mala slova).
- copy_format_to(book_id, fmt, dest, use_hardlink=False, report_file_size=None)[изворни код]¶
Kopira format
fmtu objekat sličan fajludest. Ako navedeni format ne postoji, podižeNoSuchFormatgrešku. dest takođe može biti putanja (do fajla), u kom slučaju se format kopira na nju, ako i samo ako je putanja različita od trenutne putanje (uzimajući u obzir osetljivost na velika i mala slova).
- cover(book_id, as_file=False, as_image=False, as_path=False, as_pixmap=False)[изворни код]¶
Vraća sliku korice ili None. Podrazumevano, vraća koricu kao bytestring.
UPOZORENJE: as_path kopira koricu u privremeni fajl i vraća putanju do njega. Obrišite taj fajl kada završite s njim.
- Параметри:
as_file -- Ako je True, vraća sliku kao otvoreni objekat fajla (SpooledTemporaryFile)
as_image -- Ako je True, vraća sliku kao QImage objekat
as_pixmap -- Ako je True, vraća sliku kao QPixmap objekat
as_path -- Ako je True, vraća sliku kao putanju koja pokazuje na privremeni fajl
- data_for_find_identical_books()[изворни код]¶
Vraća podatke koji se mogu koristiti za implementaciju
find_identical_books()u radnom procesu bez pristupa bazi podataka. Pogledajte db.utils za implementaciju.
- data_for_has_book()[изворни код]¶
Vraća podatke pogodne za upotrebu u
has_book(). Ovo se može koristiti za implementacijuhas_book()u radnom procesu bez pristupa bazi podataka.
- delete_annotations(annot_ids)[изворни код]¶
Obriši anotacije sa navedenim id-jevima.
- delete_custom_book_data(name, book_ids=())[изворни код]¶
Obriši podatke za name. Podrazumevano briše sve podatke, ako želite da obrišete podatke samo za neke id-jeve knjiga, prosledite listu id-jeva knjiga.
- delete_trash_entry(book_id, category)[изворни код]¶
Obriši unos iz smeća. Ovde je category 'b' za knjige i 'f' za formate.
- embed_metadata(book_ids, only_fmts=None, report_error=None, report_progress=None)[изворни код]¶
Ažuriraj metapodatke u svim formatima navedenih book_ids na trenutne metapodatke u bazi podataka.
- expire_old_trash()[изворни код]¶
Uklanja prestare stavke iz korpe za otpatke.
- export_note(field, item_id) str[изворни код]¶
Izvozi belešku kao jedan HTML dokument sa slikama ugrađenim putem data: URL-ova.
- fast_field_for(field_obj, book_id, default_value=None)[изворни код]¶
Isto kao field_for, osim što izbegava dodatnu pretragu za dobijanje objekta polja
- field_for(name, book_id, default_value=None)[изворни код]¶
Vrati vrednost polja
nameza knjigu identifikovanu sabook_id. Ako takva knjiga ne postoji ili nema definisanu vrednost za poljenameili takvo polje ne postoji, onda se vraćadefault_value.default_valuese ne koristi za title, title_sort, authors, author_sort i series_index. To je zato što oni uvek imaju vrednosti u bazi.default_valuese koristi za sve prilagođene kolone.Vraćena vrednost za is_multiple polja su uvek torke, čak i kada se ne pronađu vrednosti (drugim rečima, default_value se ignoriše). Izuzetak su identifikatori za koje je vraćena vrednost uvek rečnik. Vraćene torke su uvek u redosledu veza, odnosno u redosledu u kojem su kreirane.
- field_ids_for(name, book_id)[изворни код]¶
Vrati id-ove (kao torku) za vrednosti koje polje
nameima na knjizi identifikovanoj sabook_id. Ako nema vrednosti, ili nema takve knjige, ili nema takvog polja, vraća se prazna torka.
- field_supports_notes(field=None) bool | frozenset[изворни код]¶
Vrati True ako i samo ako navedeno polje podržava beleške. Ako je polje None vrati frozenset svih polja koja podržavaju beleške.
- find_identical_books(mi, search_restriction='', book_ids=None)[изворни код]¶
Pronalazi knjige čiji skup autora sadrži sve autore iz mi i čiji se naslov približno podudara. Pogledajte i
data_for_find_identical_books().
- format(book_id, fmt, as_file=False, as_path=False, preserve_filename=False)[изворни код]¶
Vraća format e-knjige kao bytestring ili None ako format ne postoji, ili nemamo dozvolu za pisanje u datoteku e-knjige.
- Параметри:
as_file -- Ako je True, format e-knjige se vraća kao objekt datoteke. Imajte na umu da je objekt datoteke SpooledTemporaryFile, pa ako želite kopirati format u drugu datoteku, koristite
copy_format_to()umesto toga radi boljih performansi.as_path -- Kopira datoteku formata u privremenu datoteku i vraća putanju do privremene datoteke
preserve_filename -- Ako je True i vraća putanju, ime datoteke je isto kao ono koje se koristi u biblioteci. Imajte na umu da korišćenje ovoga znači da ponovljeni pozivi daju istu privremenu datoteku (koja se svaki put ponovo kreira)
- format_abspath(book_id, fmt)[изворни код]¶
Vraća apsolutnu putanju do fajla e-knjige formata format. Gotovo nikada ne treba da koristite ovu metodu jer zaobilazi zaštitu pri radu iz više niti koju ovaj API pruža. Umesto nje koristite
copy_format_to().Trenutno se koristi samo u calibredb list, pregledaču, uređivanju knjige, compare_format sa originalnim formatom, otvori sa, masovnom uređivanju metapodataka i katalozima (preko get_data_as_dict()).
Osim pregledača, otvori sa i uređivanja knjige, ne verujem da bilo koji od ostalih vrši bilo kakav I/O upis u datoteku sa rezultatima ovog poziva.
- format_hash(book_id, fmt)[изворни код]¶
Vraća heš navedenog formata za navedenu knjigu. Vrsta heša zavisi od pozadinskog sistema, ali je obično SHA-256.
- format_metadata(book_id, fmt, allow_cache=True, update_db=False)[изворни код]¶
Vraća putanju, veličinu i mtime za navedeni format za navedenu knjigu. Ne bi trebalo da koristite putanju osim ako apsolutno morate, jer direktan pristup krši garancije o bezbednosti niti ovog API-ja. Umesto toga koristite metodu
copy_format_to().- Параметри:
allow_cache -- Ako je
Truekoriste se keširane vrednosti, inače se vrši spor pristup sistemu datoteka. Keširane vrednosti mogu biti zastarele ako je pristup sistemu datoteka izvršen van ovog API-ja.update_db -- Ako je
True, polje max_size u bazi podataka se ažurira za ovu knjigu.
- formats(book_id, verify_formats=True)[изворни код]¶
Vraća torku svih formata za navedenu knjigu. Ako je verify_formats True, proverava da li fajlovi postoje na disku.
- get_all_items_that_have_notes(field_name=None) set[int] | dict[str, set[int]][изворни код]¶
Vraća sve item_ids za stavke koje imaju beleške u navedenom polju ili svim poljima ako je field_name None
- get_all_link_maps_for_book(book_id)[изворни код]¶
Vraća sve linkove za sva polja na koja se poziva knjiga identifikovana sa book_id. Ako book_id ne postoji, metoda vraća {}.
Primer: Pretpostavimo da autor A ima link X, autor B ima link Y, oznaka S ima link F, a oznaka T ima link G. Ako knjiga 1 ima autora A i oznaku T, ova metoda vraća {'authors':{'A':'X'}, 'tags':{'T', 'G'}}. Ako autor knjige 2 nije ni A ni B i nema oznake, ova metoda vraća {}.
- Параметри:
book_id -- id knjige o kojoj je reč.
- Резултат:
{field: {field_value, link_value}, ... za sva polja sa field_value koja imaju nepraznu vrednost linka za tu knjigu
- get_book_path(book_id, sep='/', unsafe=False)[изворни код]¶
Vraća relativnu putanju knjige za dati ID. Koristite ovu metodu jer možete izabrati separator direktorijuma; podrazumevano se koristi separator operativnog sistema. Ako je unsafe True, metoda može vratiti None kada book_id nije u biblioteci.
- get_categories(sort='name', book_ids=None, already_fixed=None, first_letter_sort=False, uncollapsed_categories=None)[изворни код]¶
Koristi se interno za implementaciju Pregledača oznaka
- get_custom_book_data(name, book_ids=(), default=None)[изворни код]¶
Dobavi podatke za name. Podrazumevano vraća podatke za sve book_ids, prosledite listu ID-jeva knjiga ako želite samo neke podatke. Vraća mapu book_id u vrednosti. Ako određena vrednost nije mogla biti dekodirana, koristi default za nju.
- get_id_map(field)[изворни код]¶
Vrati mapiranje ID brojeva u vrednosti za navedeno polje. Polje mora biti many-one ili many-many polje, inače se podiže ValueError.
- get_ids_for_custom_book_data(name)[изворни код]¶
Vrati skup ID-jeva knjiga za koje name ima podatke.
- get_item_id(field, item_name, case_sensitive=False)[изворни код]¶
Vrati ID stavke za item_name ili None ako nije pronađeno. Ova funkcija je veoma spora ako se vrše pretrage za više imena, koristite ili get_item_ids() ili get_item_name_map(). Slično tome, pretrage osetljive na velika i mala slova su brže od onih koje nisu.
- get_item_ids(field, item_names, case_sensitive=False)[изворни код]¶
Vrati rečnik koji mapira item_name u ID stavke ili None
- get_item_name(field, item_id)[изворни код]¶
Vrati ime stavke za stavku navedenu pomoću item_id u navedenom polju. Pogledajte takođe
get_id_map().
- get_item_name_map(field, normalize_func=None)[изворни код]¶
Vrati mapiranje vrednosti stavki u ID-jeve
- get_link_map(for_field)[изворни код]¶
Vrati rečnik linkova za prosleđeno polje.
- Параметри:
for_field -- ime za pretragu polja za koje se želi mapa linkova
- Резултат:
{field_value:link_value, ...} za linkove koji nisu prazni
- get_metadata(book_id, get_cover=False, get_user_categories=True, cover_as_data=False)[изворни код]¶
Vraća metapodatke za knjigu identifikovanu sa book_id kao
calibre.ebooks.metadata.book.base.Metadataobjekat. Imajte na umu da lista formata nije verifikovana. Ako je get_cover True, vraća se korica, bilo kao putanja do privremenog fajla kao mi.cover ili ako je cover_as_data True onda kao mi.cover_data.
- get_next_series_num_for(series, field='series', current_indices=False)[изворни код]¶
Vraća sledeći indeks serije za navedenu seriju, uzimajući u obzir različite postavke koje kontrolišu generisanje sledećeg broja serije.
- Параметри:
field -- Polje slično seriji (podrazumevano je ugrađena kolona serije)
current_indices -- Ako je True, umesto toga vraća mapiranje book_id u trenutnu vrednost series_index.
- get_notes_resource(resource_hash) dict | None[изворни код]¶
Vraća rečnik koji sadrži podatke o resursu i ime ili None ako nije pronađen resurs sa navedenim hešom
- get_pages(book_id: int) Pages | None[изворни код]¶
Vraća informacije o broju stranica za navedenu knjigu
- get_proxy_metadata(book_id)[изворни код]¶
Kao
get_metadata()osim što vraća ProxyMetadata objekat koji čita vrednosti iz baze podataka samo na zahtev. Ovo je mnogo brže od get_metadata kada je potrebno pristupiti samo malom broju polja iz vraćenog objekta metapodataka.
- get_usage_count_by_id(field)[изворни код]¶
Vraća mapiranje id-a u broj korišćenja za sve vrednosti navedenog polja, koje mora biti polje više-prema-jedan ili više-prema-više.
- has_book(mi)[изворни код]¶
Vraća True ako i samo ako baza podataka sadrži unos sa istim naslovom kao prosleđeni Metadata objekat. Poređenje ne razlikuje velika i mala slova. Pogledajte takođe
data_for_has_book().
- has_format(book_id, fmt)[изворни код]¶
Vraća True ako i samo ako format postoji na disku
- has_id(book_id)[изворни код]¶
Vraća True ako i samo ako navedeni book_id postoji u bazi podataka
- import_note(field, item_id, path_to_html_file, path_is_data=False)[изворни код]¶
Uvezi prethodno izvezenu belešku ili proizvoljnu HTML datoteku kao belešku za navedenu stavku
- init()[изворни код]¶
Inicijalizuje ovaj keš podacima iz pozadinskog sistema.
- items_with_notes_in_book(book_id: int) dict[str, dict[int, str]][изворни код]¶
Vraća rečnik polja u stavke koje imaju pridružene beleške za to polje za navedenu knjigu
- link_for(field, item_id)[изворни код]¶
Vraća vezu, ako postoji, za navedenu stavku ili None ako veza nije pronađena
- list_extra_files(book_id, use_cache=False, pattern='') tuple[ExtraFile, ...][изворни код]¶
Dobij informacije o dodatnim datotekama u direktorijumu knjige.
- Параметри:
book_id -- id knjige u bazi podataka za knjigu
pattern -- obrazac imena datoteka za pretragu. Prazan obrazac se podudara sa svim dodatnim datotekama. Obrasci moraju koristiti / kao separator. Koristite konstantu DATA_FILE_PATTERN za podudaranje datoteka unutar direktorijuma podataka.
- Резултат:
Torka svih dodatnih datoteka koje se podudaraju sa navedenim obrascem. Svaki element torke je ExtraFile(relpath, file_path, stat_result). Gde je relpath relativna putanja datoteke do direktorijuma knjige koristeći / kao separator. stat_result je rezultat pozivanja os.stat() na datoteci.
- mark_for_pages_recount(book_id: int = 0) None[изворни код]¶
Označi sve knjige za ponovno brojanje stranica
- merge_annotations_for_book(book_id, fmt, annots_list, user_type='local', user='viewer')[изворни код]¶
Spoji navedene anotacije u postojeće anotacije za book_id, fm, user_type i user.
- merge_extra_files(dest_id, src_ids, replace=False)[изворни код]¶
Spoji dodatne fajlove iz src_ids u dest_id. Fajlovi u konfliktu se automatski preimenuju osim ako je replace=True, u kom slučaju se zamenjuju.
- move_book_from_trash(book_id)[изворни код]¶
Vraća obrisanu knjigu iz korpe za otpatke.
- move_format_from_trash(book_id, fmt)[изворни код]¶
Vraća obrisani format iz korpe za otpatke.
- multisort(fields, ids_to_sort=None, virtual_fields=None)[изворни код]¶
Vrati listu sortiranih ID-jeva knjiga. Ako je ids_to_sort None, vraćaju se svi ID-jevi knjiga.
fields mora biti lista 2-torki u obliku (field_name, ascending=True ili False). Najznačajnije polje je prva 2-torka.
- notes_data_for(field, item_id) dict[str, Any] | None[изворни код]¶
Vrati sve podatke o beleškama kao rečnik ili None ako beleška ne postoji
- notes_for(field, item_id) str[изворни код]¶
Vrati dokument beleške ili prazan string ako nije pronađen
- notes_resources_used_by(field, item_id)[изворни код]¶
Vrati skup heševa resursa svih resursa koje koristi beleška za navedenu stavku
- pages_needs_scan(books: Iterable[int] = ()) set[int][изворни код]¶
Vrati podskup knjiga (ili sve knjige ako je prazno) koje su označene kao da im je potrebno skeniranje za ažuriranje broja stranica
- pref(name, default=None, namespace=None, get_default_from_defaults=False)[изворни код]¶
Vrati vrednost za navedenu postavku ili vrednost navedenu kao
defaultako postavka nije postavljena.
- queue_pages_scan(book_id: int = 0, force: bool = False, by_user: bool = True) None[изворни код]¶
Započni skeniranje ažurirajući broj stranica za sve knjige kojima je potrebno skeniranje. Ako je book_id naveden, onda se samo ta knjiga skenira i uvek se skenira. Kada je force True, postojeća vrednost stranica, ako postoji, se odbacuje tako da se knjiga prisilno ponovo skenira čak i ako je postojeća vrednost bila ažurna.
- read_backup(book_id)[изворни код]¶
Vrati OPF rezervnu kopiju metapodataka za knjigu kao bytestring ili None ako takva rezervna kopija ne postoji.
- refresh_format_sizes(size_map: dict[tuple[int, str], int]) set[int][изворни код]¶
Ažuriraj bazu podataka sa veličinama na disku navedenih datoteka formata.
size_mapmapira(book_id, fmt)na veličinu datoteke formata. Koristi se za popravljanje sačuvanih veličina koje su zastarele jer su datoteke formata promenjene van calibre-a. Vraća id-ove knjiga čije su sačuvane veličine promenjene.
- remove_books(book_ids, permanent=False)[изворни код]¶
Uklanja knjige navedene u book_ids iz baze podataka i briše njihove fajlove s formatima. Ako je
permanentFalse, fajlovi se premeštaju u korpu za otpatke te biblioteke.
- remove_extra_files(book_id: int, relpaths: Iterable[str], permanent=False) dict[str, Exception | None][изворни код]¶
Izbriši navedene dodatne datoteke, bilo u korpu za otpatke ili trajno.
- remove_formats(formats_map, db_only=False)[изворни код]¶
Ukloni navedene formate iz navedenih knjiga.
- Параметри:
formats_map -- Mapiranje book_id na listu formata koji treba da se uklone iz knjige.
db_only -- Ako je True, samo ukloni zapis za format iz baze podataka, ne briši stvarnu datoteku formata iz sistema datoteka.
- Резултат:
Mapa id-a knjige na skup formata koji su stvarno izbrisani iz sistema datoteka za tu knjigu
- remove_items(field, item_ids, restrict_to_book_ids=None)[изворни код]¶
Obriši sve stavke u navedenom polju sa navedenim id-ovima. Vraća skup id-ova pogođenih knjiga.
restrict_to_book_idsje opcioni skup id-ova knjiga. Ako je naveden, stavke će biti uklonjene samo iz tih knjiga.
- rename_extra_files(book_id, map_of_relpath_to_new_relpath, replace=False)[изворни код]¶
Preimenuj dodatne datoteke sa podacima
- rename_items(field, item_id_to_new_name_map, change_index=True, restrict_to_book_ids=None)[изворни код]¶
Preimenuj stavke iz polja više-na-jedan ili više-na-više kao što su oznake ili serije.
- Параметри:
change_index -- Prilikom preimenovanja u polju sličnom seriji takođe promeni vrednosti series_index.
restrict_to_book_ids -- Opcioni skup id-ova knjiga za koje se vrši preimenovanje, podrazumevano za sve knjige.
- restore_book(book_id, mi, last_modified, path, formats, annotations=())[изворни код]¶
Vrati unos knjige u bazu podataka za knjigu koja već postoji u sistemu datoteka
- restore_original_format(book_id, original_fmt)[изворни код]¶
Vrati navedeni format iz prethodno sačuvanog ORIGINAL_FORMAT, ako postoji. Vraća True u slučaju uspeha. ORIGINAL_FORMAT se briše nakon uspešnog vraćanja.
- property safe_read_lock¶
Bezbedno zaključavanje za čitanje ne radi ništa ako nit već drži zaključavanje za pisanje; u suprotnom pribavlja zaključavanje za čitanje. Time se sprečava DowngradeLockErrors, do koga može doći pri ažuriranju keša pretrage kada postoje složene kolone. Ažuriranje keša drži ekskluzivno zaključavanje, dok pretraga složene kolone čita vrednosti polja preko ProxyMetadata, koji pokušava da pribavi deljeno zaključavanje. Mogući su i drugi takvi slučajevi.
Ovo svojstvo pri svakom pristupu vraća novi objekat za zaključavanje. Taj objekat nije rekurzivan (radi boljih performansi) i sme se koristiti samo u naredbi with, kao
with cache.safe_read_lock:; u suprotnom može doći do grešaka.
- save_original_format(book_id, fmt)[изворни код]¶
Sačuvaj kopiju navedenog formata kao ORIGINAL_FORMAT, prepisujući bilo koji postojeći ORIGINAL_FORMAT.
- search(query, restriction='', virtual_fields=None, book_ids=None, allow_templates=True)[изворни код]¶
Pretraži bazu podataka za navedeni upit, vraćajući skup podudarnih ID-ova knjiga.
- Параметри:
restriction -- Ograničenje koje se sa zadatim upitom kombinuje operatorom AND. Pošto se ograničenja keširaju, pretraga a AND b biće sporija od pretrage a uz ograničenje b.
virtual_fields -- Koristi se interno (virtuelna polja kao što je on_device za pretragu).
book_ids -- Ako nije None, skup ID-ova knjiga za koje će se knjige pretraživati umesto pretraživanja svih knjiga.
- 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)[изворни код]¶
Vraća torku anotacija koje se podudaraju sa navedenim upitom za pretragu celog teksta.
- 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)[изворни код]¶
Pretraži tekst beleški koristeći FTS indeks. Ako je upit prazan, vrati sve beleške.
- set_annotations_for_book(book_id, fmt, annots_list, user_type='local', user='viewer')[изворни код]¶
Postavi sve anotacije za navedeni book_id, fmt, user_type i user.
- set_conversion_options(options, fmt='PIPE')[изворни код]¶
options mora biti mapa u obliku {book_id:conversion_options}
- set_cover(book_id_data_map)[изворни код]¶
Postavi korice za ovu knjigu. Podaci mogu biti QImage, QPixmap, objekat datoteke ili bytestring. Takođe može biti None, u kom slučaju se uklanjaju sve postojeće korice.
- set_field(name, book_id_to_val_map, allow_case_change=True, do_path_update=True)[изворни код]¶
Postavi vrednosti polja navedenog sa
name. Vraća skup svih ID-ova knjiga na koje je promena uticala.- Параметри:
book_id_to_val_map -- Mapiranje book_ids na vrednosti koje treba primeniti.
allow_case_change -- Ako je True, promeniće se upotreba velikih i malih slova u poljima tipa više-prema-jedan ili više-prema-više. Na primer, ako jedna knjiga ima oznaku
tag1, a drugoj postavite oznakuTag1, obe će dobiti oznakuTag1kada je allow_case_change True; u suprotnom će obe imatitag1.do_path_update -- Koristi se interno, nikada ne bi trebalo da ga menjate.
- set_link_map(field, value_to_link_map, only_set_if_no_existing_link=False)[изворни код]¶
Postavlja veze za vrednosti stavki u polju. Napomena: ovaj metod ne menja vrednosti koje nisu u value_to_link_map
- Параметри:
field -- ime za pretragu
value_to_link_map -- dict(field_value:link, ...). Imajte na umu da su ovo vrednosti, a ne id-ovi polja.
- Резултат:
knjige promenjene postavljanjem veze
- set_metadata(book_id, mi, ignore_errors=False, force_changes=False, set_title=True, set_authors=True, allow_case_change=False)[изворни код]¶
Postavi metapodatke za knjigu id iz Metadata objekta mi
Postavljanje force_changes=True će primorati set_metadata da ažurira polja čak i ako mi sadrži prazne vrednosti. U ovom slučaju, 'None' se razlikuje od 'prazno'. Ako je mi.XXX None, XXX se ne zamenjuje, inače se zamenjuje. Oznake, identifikatori i atributi korica su posebni slučajevi. Oznake i identifikatori se ne mogu postaviti na None pa će uvek biti zamenjeni ako je force_changes true. Morate osigurati da mi sadrži vrednosti koje želite da knjiga ima. Korice se uvek menjaju ako je obezbeđena nova korica, ali se nikada ne brišu. Takođe imajte na umu da force_changes nema uticaja na postavljanje naslova ili autora.
- set_notes_for(field, item_id, doc: str, searchable_text: str = '', resource_hashes=(), remove_unused_resources=False) int[изворни код]¶
Postavite dokument beleški. Ako se tekst za pretragu razlikuje od dokumenta, navedite ga kao searchable_text. Ako dokument referencira resurse, njihovi heševi moraju biti prisutni u resource_hashes. Postavite remove_unused_resources na True da biste očistili neiskorišćene resurse, imajte na umu da ažuriranje beleške automatski čisti resurse koji se odnose na tu belešku u svakom slučaju.
- set_pages(book_id: int, pages: int = 0, algorithm: int = 0, format: str = '', format_size: int = 0) None[изворни код]¶
Postavi informacije o broju stranica za navedenu knjigu
- set_pref(name, val, namespace=None)[изворни код]¶
Postavi navedenu postavku na navedenu vrednost. Pogledajte takođe
pref().
- split_if_is_multiple_composite(f, val)[изворни код]¶
Ako je f ključ za pretragu složene kolone, a kolona je is_multiple, deli v na jedinstvene neprazne vrednosti. Poređenje razlikuje velika i mala slova. Redosled se ne čuva. Vraća list() radi kompatibilnosti s metodama za čitanje polja posredničkih metapodataka, na primer oznaka.
- tags_older_than(tag, delta=None, must_have_tag=None, must_have_authors=None)[изворни код]¶
Vrati id-ove svih knjiga koje imaju oznaku
taga koje su starije od navedenog vremena. Poređenje oznaka nije osetljivo na velika i mala slova.- Параметри:
delta -- Objekat timedelta ili None. Ako je None, onda se vraćaju svi id-ovi sa tom oznakom.
must_have_tag -- Ako nije None, lista poklapanja će biti ograničena na knjige koje imaju ovu oznaku
must_have_authors -- Lista autora. Ako nije None, lista poklapanja će biti ograničena na knjige koje imaju ove autore (neosetljivo na velika i mala slova).
- unretire_note_for(field, item_id) int[изворни код]¶
Vrati prethodno povučenu belešku za navedenu stavku. Beleške se povlače kada se stavka ukloni iz baze podataka
- update_annotations(annot_id_map)[изворни код]¶
Ažuriraj anotacije.
- update_book_storage_for_book(book_id: int, fmt: str, entry: BookStorageEntry, user_type: str = 'local', user: str = 'viewer') BookStorageEntry[изворни код]¶
Postavlja skladište podataka za pojedinačnu knjigu za navedene book_id, format, user_type i user, osim ako je postojeće skladište novije od prosleđenog unosa. Vraća skladište koje važi nakon ažuriranja. Za brisanje skladišta prosledite unos sa praznim podacima.
- user_categories_for_books(book_ids, proxy_metadata_map=None)[изворни код]¶
Vrati korisničke kategorije za navedene knjige. proxy_metadata_map je opciono i korisno je za poboljšanje performansi, u kontekstima gde ProxyMetadata objekat za knjige već postoji. Trebalo bi da bude mapiranje book_ids na njihove odgovarajuće ProxyMetadata objekte.
