API documentatie voor de gegevensbank interface

Deze API is thread safe (meervoudige reader, single writer vergrendelingsschema). U kunt een API intreden door

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

Als u zich in een Calibre-plug-in bevindt die deel uitmaakt van de hoofd-GUI van Calibre, krijgt u er als volgt toegang toe:

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

Een geheugencache van het bestand metadata .db van een calibre bibliotheek. Deze class dient ook als een thread-safe API om toegang te krijgen tot de database. Het geheugencache wordt onderhouden in normale vorm voor maximale prestatie.

SQLITE wordt gebruikt om te lezen en schrijven van metadata .db op een robuuste manier. De logica van alle tabellen lezen/sorteren/zoeken/cachen wordt herimplementeerd. Dit was noodzakelijk voor maximale prestatie en flexibiliteit.

class EventType(*values)
book_created = 4

Wanneer een nieuw boekrecord wordt aangemaakt in de database, met het boek-id als enige argument

book_edited = 8

Wanneer een boekformaat wordt bewerkt, met argumenten: (boek_id, fmt)

books_removed = 5

Wanneer boeken uit de database worden verwijderd met de lijst met boek-id’s als enige argument

format_added = 2

Wanneer een formaat aan een boek wordt toegevoegd, met argumenten: (boek_id, formaat)

formats_removed = 3

Wanneer formaten uit een boek worden verwijderd, met argumenten: (toewijzing van boek-id aan set formaten die uit het boek zijn verwijderd)

indexing_progress_changed = 9

Wanneer de indexeringsvoortgang verandert

items_removed = 7

Wanneer items zoals tags of auteurs uit sommige boeken worden verwijderd. Argumenten: (veldnaam, betreffende boek-id’s, id’s van verwijderde items)

items_renamed = 6

Wanneer items zoals tags of auteurs in sommige of alle boeken worden hernoemd. Argumenten: (veldnaam, betreffende boek-id’s, kaart van oude item-id naar nieuwe item-id)

Wanneer de links die aan items zijn gekoppeld worden gewijzigd, met argumenten: (veldnaam, item-id’s)

metadata_changed = 1

Wanneer bepaalde metadata voor bepaalde boeken wordt gewijzigd, met argumenten: (naam van het gewijzigde veld, reeks betreffende boek-id’s)

notes_changed = 10

Wanneer de notities die aan het/de item(s) zijn gekoppeld, worden gewijzigd, met argumenten: (veldnaam, item-id’s)

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

Voeg de gespecificeerde boeken toe aan de bibliotheek. Boeken moeten een iterabel zijn van 2-tupels, elk 2-tupel van de vorm: code: (mi, format_map) waarbij mi een Metadata -object is en format_map een woordenboek is van de vorm: code: {fmt: path_or_stream} `, bijvoorbeeld: :code: {‘EPUB’: ‘/pad/naar/bestand.epub’} `.

Retourneert een paar lijsten: id's, duplicaten. ids bevat de boek-id’s voor alle nieuw gemaakte boeken in de gegevensbank. duplicaten bevat de: code: (mi, format_map) voor alle boeken die al bestaan in de gegevensbank volgens de eenvoudige duplicaat detectie heuristiek gebruikt door has_book().

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

Toevoegen van gegevens voor naam waar val_map is een map van book-ids naar waardes. Indien delete_first is True of WAAR, dan wordt alle eerder opgeslagen gegevens voor naam verwijderd.

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

Extra gegevensbestanden toevoegen

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

Voeg een formaat toe aan het gespecificeerde boek. Koppel True terug als het formaat succesvol is toegevoegd.

Parameters:
  • replace – Als “True” een bestaand formaat vervangt, anders als het formaat al bestaat, “False” terugkoppelen.

  • run_hooks – Indien TRUE lopen de bestandstype-plugins in het formaat vóór en ná het toevoegen.

  • dbapi – Alleen voor intern gebruik.

add_listener(event_callback_function, check_already_added=False)[broncode]

Registreer een callback functie die aangeroepen wordt nadat bepaalde acties op de database uitgevoerd werden. De functie moet drie argumenten hebben: (EventType, library_id, event_type_specific_data)

add_notes_resource(path_or_stream_or_data, name: str, mtime: float = None) int[broncode]

Voeg de opgegeven bron toe zodat deze door notities kan worden geraadpleegd en retourneer de inhoudshash ervan.

all_annotation_types()[broncode]

Geef een tuple terug met alle annotatietypen in de database.

all_annotation_users()[broncode]

Geef een tuple terug van alle (gebruikerstype, gebruikersnaam) die annotaties hebben.

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

Geef een tuple terug met alle annotaties die aan de opgegeven criteria voldoen. ignore_removed bepaalt of verwijderde (gewiste) annotaties ook worden teruggegeven. Verwijderde annotaties zijn slechts een skelet dat wordt gebruikt voor het samenvoegen van annotaties.

all_annotations_for_book(book_id)[broncode]

Retourneer een tuple met alle annotaties voor de opgegeven book_id als een dict met sleutels: format, user_type, user, annotation. Hier is annotation de annotatiegegevens.

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

Bevroren voor alle beken de boek id’s.

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

Zelfde als field_for, behalve dat het werkt voor meerdere boeken tegelijkertijd

all_field_ids(name)[broncode]

Bevroren set met ID’s voor alle waarden in het veld naam.

all_field_names(field)[broncode]

Bevroren set van alle veld namen (alleen gebruikt worden voor VEEL-EEN en VEEL-VEEL velden)

annotation_count_for_book(book_id)[broncode]

Geef het aantal annotaties weer voor het opgegeven boek dat beschikbaar is in de database.

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

Geef een kaart terug van annotatietype -> annotatiegegevens voor de opgegeven book_id, format, user en user_type.

author_data(author_ids=None)[broncode]

Geeft auteurgegevens terug als woordenboek met toetsen: naam, sortering, link

Indien geen auteurs met de gespecificeerds id’s worden gevonden, geeft dit een leeg woordenboek terug. Indien author_ids is None worden gegevens van alle auteurs getoond.

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

Geef een lijst met auteurs, terugkeren naar auteur_sorteren string voor de auteurs, voorkeur dat de auteur sortering geassocieerd is met de auteur over het berekende string.

books_for_field(name, item_id)[broncode]

Geeft alle die boeken terug die in verband staan met het item geïdentificeerd door item_id, waar het item behoord tot het veld naam.

Geeft als waarde terug een set boeken id’s of een leeg set indien het item of het veld niet bestaat.

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

Geef de set boeken terug in de opgegeven virtuele bibliotheek

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

Comprimeer de omslagafbeeldingen voor de gespecificeerde boeken. Een compressiekwaliteit van 100 voert een verliesvrije compressie uit, anders met verlies.

De vooruitgang callback wordt aangeroepen met het book_id en de oude en nieuwe groottes voor elk boek dat verwerkt werd. Als er een fout is, zal de nieuwe grootte een string met de foutdetails zijn.

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

Kopieer de opslag naar het bestandsobject doel. Geeft Onwaar indien geen omslag bestaat, of doel gelijk is aan de huidige omslag. Doel kan ook een pad zijn, waarbij de omslag ernaartoe wordt gekopieerd indien het pad anders is dan het huidige pad (rekening houdend met hoofdlettergevoeligheid).

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

Kopieer het formaat fmt naar het bestand als object dest. Als het gespecificeerd formaat niet bestaat, verhoogd :class:’NoSuchFormat’ fout. dest kan ook een pad zijn (naar een bestand), in dat geval is het formaat ernaar gekopieerd, als het pad verschillend is van de huidige pad (hoofdlettergevoeligheid in het account meegenomen).

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

Geeft omslagfoto terug of None. Standaard geeft de omslag terug als een reeks bytes.

WAARSCHUWING: Het gebruik van as_path maakt een kopie van de omslag in een temp-bestand en geeft het pad terug naar het temp-bestand. U moet het temp-bestand verwijderen wanneer u er klaar mee bent.

Parameters:
  • as_file – Indien TRUE de afbeelding teruggeeft als een open file object (een SpooledTemporaryFile)

  • as_image – Indien waar, geef de afbeelding terug als een QImage object

  • as_pixmap – Als True, retourneer dan de afbeelding als een QPixmap-object.

  • as_path – Indien TRUE de afbeelding teruggeeft als een pad die verwijst naar een temporair bestand

data_for_find_identical_books()[broncode]

Geeft data terug die gebruikt kunnen worden om find_identical_books() toe te passen in een worker process zonder toegang tot de database. Bekijk db.utils voor een toepassing.

data_for_has_book()[broncode]

Geeft data terug die gebruikt kunnen worden om has_book(). Dit kan gebruikt worden voor een toepassing van has_book() in een worker process zonder toegang tot de database.

delete_annotations(annot_ids)[broncode]

Verwijder annotaties met de opgegeven id’s.

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

Verwijder data voor naam. Verwijdert standaard alle data, als u enkel data voor sommige boek ID’s wilt verwijderen, geef een lijst met boek ID’s in.

delete_trash_entry(book_id, category)[broncode]

Verwijder een item uit de prullenbak. Hier is categorie ‘b’ voor boeken en ‘f’ voor formaten.

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

Update metadata in alle formaten van het gespecificeerde book_ids tot huidige metadata in de database.

expire_old_trash()[broncode]

Verwijder te oude items uit de prullenbak

export_note(field, item_id) str[broncode]

Exporteer de notitie als één HTML-document met ingesloten afbeeldingen als gegevens: URL’s

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

Hetzelfde als field_for, behalve dat het de extra opzoek vermijdt voor het veld object

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

Geeft waarde van het veld name voor boek geïdentificeerd door book_id terug. Als zo geen boek bestaat of geen gedefinieerde waarde heeft voor het veld name of zulk veld bestaat niet, wordt default_value teruggegeven.

default_value wordt niet gebruikt voor title, title_sort, authors, author_sort and series_index omdat deze altijd waardes hebben in de db. default_value wordt gebruikt voor alle aangepaste kolommen.

De geretourneerde waarde voor is_multiple-velden zijn altijd tuples, zelfs wanneer er geen waarden worden gevonden (met andere woorden, default_value wordt genegeerd). De uitzondering hierop zijn identificatoren, waarvoor de geretourneerde waarde altijd een woordenboek is. De geretourneerde tuples zijn altijd in linkvolgorde, dat wil zeggen in de volgorde waarin ze zijn aangemaakt.

field_ids_for(name, book_id)[broncode]

Geef de id’s terug (als een tupel) voor de waardes dat het veld name heeft voor het boek geïdentificeerd door book_id. Als er geen waardes zijn, of zo geen boek, of zo geen veld, wordt een lege tupel teruggegeven.

field_supports_notes(field=None) bool[broncode]

Geef True terug als het opgegeven veld notities ondersteunt. Als het veld None is, geef dan een frozenset terug van alle velden die notities ondersteunen.

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

Vindt boeken die een auteur superset hebben in mi en dezelfde titel (titel komt fuzzy overeen). Bekijk ook data_for_find_identical_books().

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

Geef het boekformaat terug als een byte string of Geen als het formaat niet bestaat of we geen toestemming hebben om naar het e-boek bestand te schrijven.

Parameters:
  • as_file – Indien Waar wordt het e-boek formaat teruggegeven als bestandsobject. Merk op dat het bestandsobject een SpooledTemporaryFile is dus als u het formaat naar een ander bestand wil kopiëren, gebruik in plaats daarvan copy_format_to() voor prestatie.

  • as_path – Kopieert het formaat bestand naar een tijdelijk bestand en geeft het pad naar het tijdelijk bestand terug

  • preserve_filename – Als True en een pad retourneert, is de bestandsnaam dezelfde als die gebruikt in de bibliotheek. Houd er rekening mee dat het gebruik hiervan betekent dat herhaalde aanroepen hetzelfde tijdelijke bestand opleveren (dat elke keer opnieuw wordt aangemaakt).

format_abspath(book_id, fmt)[broncode]

Geeft absolute pad terug aan het e-boek bestand in formaat format. Dit mag u maar zelden gebruiken want het breekt de threadveilige belofte van deze API. Gebruik beter copy_format_to().

Momenteel alleen gebruikt in de lijst calibratedb, de viewer, het bewerken van boeken, het vergelijken van het formaat met het oorspronkelijke formaat, openen met, bulkbewerking van metagegevens en de catalogi (via get_data_as_dict()).

Afgezien van de viewer, open met en bewerk boek, geloof ik niet dat een van de andere programma’s bestands-I/O uitvoert met de resultaten van deze aanroep.

format_hash(book_id, fmt)[broncode]

Geef de hash van het opgegeven formaat voor het opgegeven boek terug. Het type hash is afhankelijk van de backend, maar is meestal SHA-256.

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

Geef het pad, de grootte en de mtime terug voor het opgegeven formaat voor het opgegeven boek. Gebruik het pad alleen als dat echt nodig is, want als je het direct opent, gaat de threadsafe-garantie van deze API verloren. Gebruik in plaats daarvan de methode copy_format_to().

Parameters:
  • allow_cache – Als er “True” cachewaarden worden gebruikt, anders wordt er een trage toegang tot het bestandssysteem uitgevoerd. De cachewaarden kunnen verouderd zijn als er buiten deze API om toegang tot het bestandssysteem is uitgevoerd.

  • update_db – Als True, wordt het veld max_size van de database bijgewerkt voor dit boek.

formats(book_id, verify_formats=True)[broncode]

Geeft een tuple terug met alle formaten voor het opgegeven boek. Als verify_formats True is, wordt gecontroleerd of de bestanden op de schijf aanwezig zijn.

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

Geef alle item_ids terug voor items die notities bevatten in het opgegeven veld of alle velden als field_name None is.

Geeft alle links weer voor alle velden waarnaar wordt verwezen door het boek dat wordt geïdentificeerd door book_id. Als book_id niet bestaat, geeft de methode {} weer.

Voorbeeld: Stel dat auteur A link X heeft, auteur B link Y heeft, tag S link F heeft en tag T link G heeft. Als boek 1 auteur A en tag T heeft, retourneert deze methode {‘authors’:{‘A’:’X’}, ‘tags’:{‘T’, ‘G’}}. Als de auteur van boek 2 noch A noch B is en geen tags heeft, retourneert deze methode {}.

Parameters:

book_id – het betreffende boeknummer.

Retouren:

{veld: {veldwaarde, linkwaarde}, … voor alle velden met een veldwaarde die een niet-lege linkwaarde heeft voor dat boek

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

Geef het relatieve boekpad voor de opgegeven id terug. Geef hier de voorkeur aan, omdat u de mapseparator kunt kiezen. Standaard wordt die van het besturingssysteem gebruikt. Als unsafe True is, mag None worden teruggegeven als de book_id niet in de bibliotheek staat.

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

Intern gebruikt om de labelbrowser te implementeren

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

Haal gegevens op voor naam. Standaard worden gegevens voor alle book_ids geretourneerd. Voer een lijst met boek-id’s in als u slechts bepaalde gegevens wilt. Retourneert een kaart van book_id naar waarden. Als een bepaalde waarde niet kan worden gedecodeerd, wordt de standaardwaarde gebruikt.

get_id_map(field)[broncode]

Geef een mapping terug van id-nummers naar waarden voor het opgegeven veld. Het veld moet een veel-één- of veel-veel-veld zijn, anders wordt er een ValueError gegenereerd.

get_ids_for_custom_book_data(name)[broncode]

Geef de set boek-id’s terug waarvoor naam gegevens bevat.

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

Geef de item-id voor item_name terug of None als deze niet wordt gevonden. Deze functie is erg traag als er naar meerdere namen wordt gezocht. Gebruik in dat geval get_item_ids() of get_item_name_map(). Ook zijn zoekopdrachten waarbij hoofdletters en kleine letters worden onderscheiden sneller dan zoekopdrachten waarbij dit niet het geval is.

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

Geef een dict terug die item_name koppelt aan het item-id of None.

get_item_name(field, item_id)[broncode]

Geef de naam van het item terug voor het item dat is opgegeven door item_id in het opgegeven veld. Zie ook get_id_map().

get_item_name_map(field, normalize_func=None)[broncode]

Terugkoppeling van itemwaarden aan id’s

Geef een woordenboek met links voor het opgegeven veld terug.

Parameters:

for_field – de zoeknaam van het veld waarvoor de koppelingskaart gewenst is

Retouren:

{veldwaarde:linkwaarde, …} voor niet-lege links

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

Retourneer metadata voor het boek geïdentificeerd door book_id als een calibre.ebooks.metadata.book.base.Metadata object. Merk op dat de lijst met formaten niet wordt geverifieerd. Als get_cover True is, wordt de omslag geretourneerd, hetzij als een pad naar een tijdelijk bestand als mi.cover, hetzij als mi.cover_data als cover_as_data True is.

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

Geef de volgende reeksindex voor de opgegeven reeks terug, rekening houdend met de verschillende voorkeuren die het genereren van het volgende reeksnummer regelen.

Parameters:
  • field – Het serie-achtige veld (standaard ingesteld op de ingebouwde seriekolom)

  • current_indices – Als True, retourneert in plaats daarvan een mapping van book_id naar de huidige waarde van series_index.

get_notes_resource(resource_hash) dict | None[broncode]

Geef een dict terug met de brongegevens en naam, of None als er geen bron met de opgegeven hash wordt gevonden.

get_proxy_metadata(book_id)[broncode]

Net als get_metadata(), behalve dat het een ProxyMetadata-object retourneert dat alleen op verzoek waarden uit de database leest. Dit is veel sneller dan get_metadata wanneer slechts een klein aantal velden uit het geretourneerde metadata-object moet worden opgevraagd.

get_usage_count_by_id(field)[broncode]

Geef een mapping terug van id naar gebruiksfrequentie voor alle waarden van het opgegeven veld, dat een veel-één- of veel-veel-veld moet zijn.

has_book(mi)[broncode]

Geeft Waar desda de gegevensbank een item bevat met dezelfde titel als meegegeven in het metadata object. De vergelijking is niet hoofdlettergevoelig. Zie ook data_for_has_book().

has_format(book_id, fmt)[broncode]

Geeft Waar desda het formaat bestaat op disk

has_id(book_id)[broncode]

Geeft Waar desda het boek_id bestaat in de db

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

Importeer een eerder geëxporteerde notitie of een willekeurig HTML-bestand als notitie voor het opgegeven item.

init()[broncode]

Initialiseer deze cache met gegevens uit de backend.

items_with_notes_in_book(book_id: int) dict[str, dict[int, str]][broncode]

Geef een dict van veld naar items terug die bijbehorende notities voor dat veld hebben voor het opgegeven boek.

Geef de link terug, indien aanwezig, voor het opgegeven item of None als er geen link is gevonden.

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

Krijg informatie over extra bestanden in de map van het boek.

Parameters:
  • book_id – het databaseboeknummer voor het boek

  • pattern – het patroon van bestandsnamen waarnaar moet worden gezocht. Een leeg patroon komt overeen met alle extra bestanden. Patronen moeten / als scheidingsteken gebruiken. Gebruik de constante DATA_FILE_PATTERN om bestanden in de gegevensmap te vinden.

Retouren:

Een tuple van alle extra bestanden die overeenkomen met het opgegeven patroon. Elk element van de tuple is ExtraFile(relpath, file_path, stat_result). Waarbij relpath het relatieve pad is van het bestand naar de boekmap, met / als scheidingsteken. stat_result is het resultaat van het aanroepen van os.stat() op het bestand.

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

Voeg de opgegeven annotaties samen met de bestaande annotaties voor book_id, fm, user_type en user.

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

Voeg de extra bestanden van src_ids samen in dest_id. Bestanden die conflicteren worden automatisch hernoemd, tenzij replace=True, in welk geval ze worden vervangen.

move_book_from_trash(book_id)[broncode]

Een boek uit de prullenbak herstellen

move_format_from_trash(book_id, fmt)[broncode]

Een formattering uit de prullenbak herstellen

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

Geef een lijst met gesorteerde boek-id’s terug. Als ids_to_sort None is, worden alle boek-id’s teruggegeven.

velden moeten een lijst zijn van 2-tuples in de vorm (veldnaam, ascending=True of False). Het belangrijkste veld is de eerste 2-tuple.

notes_data_for(field, item_id) str[broncode]

Geef alle notitiegegevens terug als een dict of None als de notitie niet bestaat.

notes_for(field, item_id) str[broncode]

Geef het notitiedocument of een lege tekenreeks terug als het niet gevonden wordt.

notes_resources_used_by(field, item_id)[broncode]

Geef de set resource-hashes terug van alle resources die door de notitie voor het opgegeven item worden gebruikt.

pref(name, default=None, namespace=None)[broncode]

Geef de waarde voor de opgegeven voorkeur terug of de waarde die is opgegeven als default als de voorkeur niet is ingesteld.

read_backup(book_id)[broncode]

Geef de OPF-metadataback-up voor het boek terug als een bytestring of None als er geen back-up bestaat.

remove_books(book_ids, permanent=False)[broncode]

Verwijder de boeken die zijn gespecificeerd door de book_ids uit de database en verwijder hun formaatbestanden. Als permanent False is, worden de formaatbestanden in de prullenbakmap per bibliotheek geplaatst.

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

Verwijder de opgegeven extra bestanden naar de Prullenbak of definitief.

remove_formats(formats_map, db_only=False)[broncode]

Verwijder de opgegeven formaten uit de opgegeven boeken.

Parameters:
  • formats_map – Een mapping van book_id naar een lijst met formaten die uit het boek moeten worden verwijderd.

  • db_only – Als True, verwijder dan alleen het record voor het formaat uit de database, verwijder het daadwerkelijke formaatbestand niet uit het bestandssysteem.

Retouren:

Een kaart van boek-id’s naar sets van formaten die daadwerkelijk uit het bestandssysteem voor dat boek zijn verwijderd

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

Verwijder alle items in het opgegeven veld met de opgegeven id’s. Geeft de set van betrokken boek-id’s terug. restrict_to_book_ids is een optionele set van boek-id’s. Indien opgegeven, worden de items alleen uit die boeken verwijderd.

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

Extra gegevensbestanden hernoemen

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

Hernoem items uit een veel-één- of veel-veel-veld, zoals tags of series.

Parameters:
  • change_index – Bij het hernoemen in een reeksachtig veld moeten ook de waarden van series_index worden gewijzigd.

  • restrict_to_book_ids – Een optionele set boek-id’s waarvoor de naamswijziging moet worden uitgevoerd, standaard ingesteld op alle boeken.

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

Herstel de boekvermelding in de database voor een boek dat al op het bestandssysteem bestaat.

restore_original_format(book_id, original_fmt)[broncode]

Herstel het opgegeven formaat uit het eerder opgeslagen ORIGINAL_FORMAT, indien aanwezig. Geef True terug bij succes. Het ORIGINAL_FORMAT wordt verwijderd na een succesvolle herstelbewerking.

property safe_read_lock

Een veilige leesvergrendeling is een vergrendeling die niets doet als de thread al een schrijfvergrendeling heeft, anders verkrijgt deze een leesvergrendeling. Dit is nodig om DowngradeLockErrors te voorkomen, die kunnen optreden bij het bijwerken van de zoekcache in aanwezigheid van samengestelde kolommen. Het bijwerken van de zoekcache houdt een exclusieve vergrendeling in, maar het doorzoeken van een samengestelde kolom houdt het lezen van veldwaarden in via ProxyMetadata, dat probeert een gedeelde vergrendeling te verkrijgen. Er kunnen ook andere scenario’s zijn die dit veroorzaken.

Deze eigenschap retourneert bij elke toegang een nieuw vergrendelingsobject. Dit vergrendelingsobject is niet recursief (omwille van de prestaties) en mag alleen worden gebruikt in een with-statement als with cache.safe_read_lock:, anders kunnen er problemen ontstaan.

save_original_format(book_id, fmt)[broncode]

Sla een kopie van het opgegeven formaat op als ORIGINAL_FORMAT en overschrijf daarbij alle bestaande ORIGINAL_FORMAT-bestanden.

search(query, restriction='', virtual_fields=None, book_ids=None)[broncode]

Zoek in de database naar de opgegeven zoekopdracht en retourneer een reeks overeenkomende boek-id’s.

Parameters:
  • restriction – Een beperking die wordt gecombineerd met de opgegeven zoekopdracht. Houd er rekening mee dat beperkingen in de cache worden opgeslagen, waardoor het zoeken naar a AND b langzamer verloopt dan a met beperking b.

  • virtual_fields – Intern gebruikt (virtuele velden zoals on_device om te doorzoeken).

  • book_ids – Indien niet None, een set boek-id’s waarvoor boeken worden doorzocht in plaats van alle boeken te doorzoeken.

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)[broncode]

Retournering van een tuple met annotaties die overeenkomen met de opgegeven full-text query.

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)[broncode]

Doorzoek de tekst van notities met behulp van een FTS-index. Als de zoekopdracht leeg is, worden alle notities weergegeven.

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

Stel alle annotaties in voor de opgegeven book_id, fmt, user_type en user.

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

opties moeten een kaart zijn in de vorm {book_id:conversion_options}

set_cover(book_id_data_map)[broncode]

Stel de omslag voor dit boek in. De gegevens kunnen een QImage, QPixmap, bestandsobject of bytestring zijn. Het kan ook None zijn, in welk geval elke bestaande omslag wordt verwijderd.

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

Stel de waarden in van het veld dat is opgegeven door name. Geeft de set weer van alle boek-id’s die door de wijziging zijn beïnvloed.

Parameters:
  • book_id_to_val_map – Toewijzing van book_ids aan waarden die moeten worden toegepast.

  • allow_case_change – Als True, wordt het geval van veel-één of veel-veel velden gewijzigd. Als een boek bijvoorbeeld de tag tag1 heeft en u de tag voor een ander boek instelt op Tag1, dan hebben beide boeken de tag Tag1 als allow_case_change True is, anders hebben ze beide de tag tag1.

  • do_path_update – Intern gebruikt, u dient dit nooit te wijzigen.

Stelt koppelingen in voor itemwaarden in het veld. Opmerking: deze methode wijzigt geen waarden die niet in de value_to_link_map staan.

Parameters:
  • field – de zoeknaam

  • value_to_link_map – dict(veldwaarde:link, …). Let op: dit zijn waarden, geen veld-id’s.

Retouren:

boeken gewijzigd door de link in te stellen

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

Stel metadata in voor het boek id uit het Metadata-object mi

Door force_changes=True in te stellen, wordt set_metadata gedwongen om velden bij te werken, zelfs als mi lege waarden bevat. In dit geval wordt ‘None’ onderscheiden van ‘empty’. Als mi.XXX None is, wordt XXX niet vervangen, anders wel. De tags, identificatiecodes en omslagattributen zijn speciale gevallen. Tags en identificatiecodes kunnen niet worden ingesteld op None, dus ze worden altijd vervangen als force_changes true is. U moet ervoor zorgen dat mi de waarden bevat die u voor het boek wilt hebben. Covers worden altijd gewijzigd als er een nieuwe cover wordt opgegeven, maar worden nooit verwijderd. Houd er ook rekening mee dat force_changes geen effect heeft op het instellen van de titel of auteurs.

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

Stel het notitiedocument in. Als de doorzoekbare tekst verschilt van het document, geef deze dan op als searchable_text. Als het document verwijst naar bronnen, moeten hun hashes aanwezig zijn in resource_hashes. Stel remove_unused_resources in op True om ongebruikte bronnen op te ruimen. Houd er rekening mee dat het bijwerken van een notitie automatisch de bronnen met betrekking tot die notitie opruimt.

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

Stel de opgegeven voorkeur aan de opgegeven waarde. Zie ook: meth: pref.

split_if_is_multiple_composite(f, val)[broncode]

Als f een samengestelde kolomzoekcode is en de kolom is_multiple is, splits dan v in unieke, niet-lege waarden. De vergelijking is hoofdlettergevoelig. De volgorde wordt niet behouden. Retourneer een lijst () voor compatibiliteit met proxy-metadata-veldgetters, bijvoorbeeld tags.

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

Geef de id’s terug van alle boeken met de tag tag die ouder zijn dan de opgegeven tijd. Bij het vergelijken van tags wordt geen onderscheid gemaakt tussen hoofdletters en kleine letters.

Parameters:
  • delta – Een timedelta-object of None. Als None, worden alle id’s met de tag geretourneerd.

  • must_have_tag – Als dit niet het geval is, wordt de lijst met overeenkomsten beperkt tot boeken die deze tag hebben.

  • must_have_authors – Een lijst met auteurs. Als dit niet ‘Geen’ is, wordt de lijst met resultaten beperkt tot boeken van deze auteurs (hoofdlettergevoeligheid is uitgeschakeld).

unretire_note_for(field, item_id) int[broncode]

Een eerder verwijderde notitie voor het opgegeven item weer terugzetten. Notities worden verwijderd wanneer een item uit de database wordt verwijderd.

update_annotations(annot_id_map)[broncode]

Annotaties bijwerken.

user_categories_for_books(book_ids, proxy_metadata_map=None)[broncode]

Geef de gebruikerscategorieën voor de opgegeven boeken terug. proxy_metadata_map is optioneel en is nuttig voor een prestatieverbetering in contexten waarin al een ProxyMetadata-object voor de boeken bestaat. Het moet een mapping zijn van book_ids naar de bijbehorende ProxyMetadata-objecten.