Veri tabanı arayüzü için API belgelendirmesi

Bu API süreç güvenlidir (çoklu okuma, tekil yazmalı kitleme şeması kullanır). API’ye şu şekilde erişebilirsiniz:

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

Eğer ana calibre GUI’sinin bir parçası olan bir calibre eklentisi içindeyseniz, erişimi şu şekilde sağlayabilirsiniz:

db = self.gui.current_db.new_api
class calibre.db.cache.Cache(backend)[kaynak]

Calibre kitaplığındaki bir metadata.db dosyasının bellekteki zulası. Bu sınıf ayrıca veri tabanına erişmek için süreç güvenli bir API olarak hizmet verir. Bellekteki zula en iyi performans için normal biçiminde devam ettirilir.

SQLITE metadata.db’den kararlı şekilde okuma yazma yapma yöntemi olarak kullanılır. Tüm tablo okuma/sıralama/arama/zulalama mantığı tekrar uygulanmıştır. Bu işlem en iyi performans ve esneklik için gerekliydi.

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

Belirtilen kitapları kitaplığa ekle. Kitaplar, mi bir Metadata nesnesi ve format_map {fmt: path_or_stream} biçiminde bir sözlük nesnesi olmak üzere her biri (mi, format_map) biçiminde olan 2-tuple’ın yinelenebiliri olmalıdır, örneğin: {'EPUB': '/path/to/file.epub'}.

Bir çift liste döndürür: ids, duplicates. ids ver tabanında yeni oluşturulan tüm kitapların kitap id’lerini içerir. duplicates veri tabanında zaten mevcut olan ve has_book() tarafından kullanılan basit çift algılama sezgiseline göre (mi, format_map) içerir.

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

val_map book_ids’in değerlere haritası olmak üzere isimler için veri ekle. delete_first True ise, isim için daha önce kaydedilen tüm veri silinir.

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

Belirtilen kitaba bir biçim ekle. Biçim başarıyla eklenmişse Doğru olarak döndür.

Parametreler:
  • replace – True ise varolan biçimi değiştir, eğer biçim zaten mevcutsa, False döndür.
  • run_hooks – True ise, dosya türü eklentiler eklendikten önce ve sonra biçim üzerinde çalıştırılır.
  • dbapi – Sadece dahili kullanım için.
all_book_ids(type=<type 'frozenset'>)[kaynak]

Bilinen tüm kitap id’lerinin dondurulmuş kümesi.

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

field_for’un aynısı, farkı birden ço kitap üstünde tek seferde çalışması

all_field_ids(name)[kaynak]

name alanındaki tüm değerler için id’lerin donmuş kümesi.

all_field_names(field)[kaynak]

Tüm alan isimlerinin dondurulmuş kümesi (sadece çoktan-bire ve çoktan-çoka alanlarda kullanılmalı)

author_data(author_ids=None)[kaynak]

Yazar verisini isim, sıralama, bağlantı anahtarlarından oluşan sözlük olarak döndür

Belirtilen id’ye sahip yazar bulunamazsa boş bör sözlük döndürülür. author_id None ise, tüm authorların verisi döndürülür.

author_sort_from_authors(authors, key_func=<function lower>)[kaynak]

Verilen bir yazar listesinden hesaplanan karakter dizisi üstündeki yazarla bağlantılı yazarı tercih ederek yazarlar için author_sort karakter dizisini döndür.

books_for_field(name, item_id)[kaynak]

Öğe name alanına ait olmak üzere, item_id ile tanımlı öğe ile bağlantılı tüm kitapları döndür.

Döndürülen değer kitap id’leri kümesi, veya öğe veya alan mevcut değilse boş bir kümedir.

books_in_virtual_library(vl, search_restriction=None)[kaynak]

Belirlenen sanal kitaplıktaki kitap setini döndürür

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

Kapağı dosya benzeri nesne ``dest``e kopyala. Kapak mevcut değilse veya dest mevcut kapakla aynı dosya ise False döndürür. dest, yalnızca yol mevcut yoldan farklı ise kapağın içine kopyalandığı bir yol olabilir (büyük küçük harf duyarlılığı da dikkate alınarak).

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

Copy the format fmt to the file like object dest. If the specified format does not exist, raises NoSuchFormat error. dest can also be a path (to a file), in which case the format is copied to it, iff the path is different from the current path (taking case sensitivity into account).

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

Kapak resmini veya None döndür. Varsayılan olarak kapağı bytestring olarak döndürür.

UYARI: as_path kullanmak kapağı geçici bir dosyaya kopyalar ve geçici dosyanın yolunu döndürür. İşiniz bittiğinde geçici dosyayı silmelisiniz.

Parametreler:
  • as_file – True ise resmi bir açık dosya nesnesi (SpooledTemporaryFile) olarak döndür
  • as_image – True ise resmi bir QImage nesnesi oalrak döndür
  • as_path – True ise resmi geçici bir dosyaya işaret eden yol olarak döndür
data_for_find_identical_books()[kaynak]

db’ye erişimi olmayan bir işçi süreçte find_identical_books() uygulamak için kullanılabilecek veriyi döndür.

data_for_has_book()[kaynak]

has_book() içinde kullanmaya müsait veri döndür. Bu işlem db’ye erişimi olmayan bir işçi süreçte has_book() uygulamak için kullanılabilir.

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

İsim için veriyi sil. Varsayılan olarak tüm veri silinir, yalnızca bazı kitap id’leri için veriyi silmek istiyorsanız, kitap id listesi verin.

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

Belirtilen book_id’lerinin tüm biçimleri içindeki metadata’yı mevcut veri tabanına güncelle.

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

field_for ile aynı, yalnızca alan nesnesini almak için fazladan arama yapmaktan kaçınır

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

book_id ile belirtilen kitap için name alanının değerini döndür. Böyle bir kitap mevcut değilse veya name alanı için belirtilmiş bir değer yoksa veya böyle bir alan yoksa default_value döndürülür.

default_value title, title_sort, authors, author_sort ve series_index için kullanılmaz. Bunun sebebi bunları hep db’de değerleri olmasıdır. ``default_value``tüm özel sütunlar için kullanılır.

is_multiple alanları için döndürülen değerler hep tuple biçimindedir, hiçbir değer bulunamasa bile (başka bir deyişle, default_value göz ardı edilir). İstisna döndürülen değerin her zaman dict biçiminde olduğu identifier’ler durumundadır. Döndürülen tuple’ler her zaman bağlantı sırasındadır, yani oluşturulma sırasında.

field_ids_for(name, book_id)[kaynak]

name alanının book_id ile tanımlanan kitaptaki değerleri için id’leri (demet olarak) döndür. Bir değer yoksa, ya da böyle bir kitap yoksa, veya böyle bir alan yoksa, boş bir demet döndürülür.

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

Mi’deki yazarların üst setine sahip ve aynı başlıklı (başlıklarda bulanık eşleşme kullanılır) kitapları bulur. Ayrıca data_for_find_identical_books() göz atın.

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

E-kitap biçimini bytestring olarak ya da biçim mevcut değilse, veya e-kitap dosyasına yazmaya yetkimiz yoksa None olarak döndür.

Parametreler:
  • as_file – True ise e-kitap biçimi dosya nesnesi olarak döndürülür. Dosya nesnesinin SpooledTemporaryFile olduğunu not edin, yani biçimi başka bir dosyaya kopyalamak istiyorsanız performans için bunun yerine copy_format_to() kullanın.
  • as_path – Biçim dosyasını geçici bir dosyaya kopyalar ve geçici dosyanın yolunu döndürür
  • preserve_filename – True ise ve bir yol döndürüyorsa, dosya adı kitaplıkta kullanılanla aynıdır. Bunun kullanımının tekrar kullanımlarda aynı geçici dosyayı döndüreceğini not edin (her seferinde tekrar oluşturulan)
format_abspath(book_id, fmt)[kaynak]

format biçimindeki e-kitap için mutlak yolu döndür. API’nin iş ipi güvenliğini kırdığından bunu hemen hemen hiç kullanmamalısınız. Bunun yerine copy_format_to() kullanın.

Currently used only in calibredb list, the viewer, edit book, compare_format to original format, open with, bulk metadata edit and the catalogs (via get_data_as_dict()).

Görüntüleyici, birlikte aç ve kitap düzenleden ayrı olarak, diğerlerinin bu çağrı sonucu herhangi bir dosya yazma G/Ç yaptıklarını sanmıyorum.

format_hash(book_id, fmt)[kaynak]

Belirtilen kitap için belirtilen biçimin özetini döndür. Özet türü arka uca bağlıdır, ama genellikle SHA-256’dır.

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

Belirtilen kitap için belirtilen biçimin yolunu, boyutunu ve değiştirilme zamanını döndürür. İlla kullanmanız gerekmiyorsa yolu kullanmamalısınız, çünkü yola erişmek bu API’nin iş ipi güvenliğini bozar. Bunun yerine copy_format_to() metodunu kullanın.

Parametreler:
  • allow_cacheTrue ise zuladaki değerler kullanılır, aksi halde yavaş bir dosya sistemine erişim gerçekleşir. Zula değerleri bu API dışından dosya sistemine erişildiyse eski olabilir.
  • update_dbTrue ise veri tabanındaki max_size alanı bu kitap için güncellenmiştir.
formats(book_id, verify_formats=True)[kaynak]

Belirtilen kitap için tüm biçimlerin demetini getir. verify_formats True ise, dosyanın diskte var olduğunu da doğrular.

get_categories(sort=u'name', book_ids=None, already_fixed=None, first_letter_sort=False)[kaynak]

Etiket Tarayıcıyı uygulamak için dahili olarak kullanılır

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

İsim için veri alır. Varsayılan olarak tüm book_id’leri için veriyi döndürür, sadece bazı veriler lazımsa kitap id’si listesi verin. book_id’den değere harita döndürür. Belli bir değerin kodu çözülemezse, varsayılan değerini kullanır.

get_id_map(field)[kaynak]

Belirtilen alan için id numaralarından değerlere harita döndür. Alan bir çoktan teke veya çoktan çoka alan olmalıdır, aksi durumda ValueError yükseltilir.

get_ids_for_custom_book_data(name)[kaynak]

İsmin verisi olan kitap id’lerin kümesini döndür.

get_item_id(field, item_name)[kaynak]

item_name için öğe id’sini döndür (büyük küçük harf duyarsız)

get_item_ids(field, item_names)[kaynak]

item_name için öğe id’sini döndür (büyük küçük harf duyarsız)

get_item_name(field, item_id)[kaynak]

Belirtilen alanda item_id ile belirtilen öğe için öğe ismini döndür. Ayrıca bknz get_id_map().

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

kitap_id ile belirtilen üstveriyi :sınıf:`calibre.ekitaplar.üstveri.kitap.temel.Üstveri` nesnesi olarak döndür. Biçim listesinin doğrulanmadığını dikkate alın. Eğer kapak_al Doğru ise, kapak, ya mi.kapak olarak geçici dosyaya yol olarak ya da eğer kapak_veri_olarak Doğru ise o zaman mi.kapak_veri olarak döndürülür.

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

Sıradaki seri numara üretecini kontrol eden çeşitli tercihleri hesaba katarak belirtilen seriler için sıradaki seri indisini döndür,.

Parametreler:
  • field – Seriler benzeri alan (yerleşik seriler sütunu varsayılır)
  • current_indices – True ise, book_id’den mevcut series_index değerine harita döndürür.
get_proxy_metadata(book_id)[kaynak]

Veri tabanından değerleri yalnızca istek üstüne okuyan bir ProxyMetadata nesnesi döndürmesi dışında get_metadata() gibidir. get_metadata’dan döndürülen metadata nesnesinden az sayıda alana erişilmesi gerektiğinde oldukça hızlıdır.

get_usage_count_by_id(field)[kaynak]

Çoktan teke veya çoktan çoka alan olmak üzere belirtilen alanın tüm değerleri için id’den kullanım sayısına harita döndür.

has_book(mi)[kaynak]

Veritabanı verilen Metadata nesnesiyle aynı başlığa sahip bir girdi içeriyorsa True döndürür. Karşılaştırma büyük küçük harf duyarsızdır. Ayrıca bknz data_for_has_book().

has_format(book_id, fmt)[kaynak]

Biçim diskte mevcutsa True döndür

has_id(book_id)[kaynak]

Belirtilen book_id veri tabanında mevcutsa True döndür

init()[kaynak]

Bu zulayı arka uçtaki veri ile ilklendir.

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

Sıralanmış kitap id’leri listesi döndür. ids_to_sort None ise, tüm kitap id’leri döndürülür.

Alanlar (field_name, ascending=True veya False) biçiminde 2’li demet listesi olmalıdır. En önemli alan ilk ikili demettir.

pref(name, default=None)[kaynak]

Belirtilen özellik için değeri ya da tercih belirtilmemişse default olarak belirtilen değeri döndür.

read_backup(book_id)[kaynak]

Kitap için OPF metadata yedeğini bytestring olarak veya böyle bir backup yoksa None olarak döndür.

remove_books(book_ids, permanent=False)[kaynak]

book_ids ile belirtilen kitapları veri tabanından biçim dosyalarıyla birlikte sil. permanent False ise, biçim dosyaları geri dönüşüm kutusuna yerleştirilir.

remove_formats(formats_map, db_only=False)[kaynak]

Seçili biçimleri seçili kitaplardan çıkar.

Parametreler:
  • formats_map – Kitaptan çıkarılacak book_id’den biçim listesine harita.
  • db_only – True ise, biçim kaydını sadece veri tabanından çıkar, asıl biçimi dosya sisteminden silme.
remove_items(field, item_ids, restrict_to_book_ids=None)[kaynak]

Belirtilen alandaki belirtilen kimliğe sahip tüm öğeleri sil. Etkilenen kitap kimlikleri kümesini döndürür. restrict_to_book_ids isteğe bağlı kitap kimlikleri listesidir. Eğer belirtilirse öğeler yalnızca bu kitaplardan çıkartılır.

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

Etiketler veya seriler gibi çoktan teke veya çoktan çoka alanlarından öğeleri yeniden adlandır.

Parametreler:
  • change_index – Seri benzeri bir alanı yeniden adlandırırken series_index değerlerini de değiştir.
  • restrict_to_book_ids – Yeniden adlandırmanın yapılacağı isteğe bağlı kitap kimlikleri kümesi, varsayılan olarak tüm kitaplar.
restore_book(book_id, mi, last_modified, path, formats)[kaynak]

Dosya sisteminde mevcut olan bir kitabın veri tabanındaki girdisini geri yükle

restore_original_format(book_id, original_fmt)[kaynak]

Eğer varsa, belirtilen biçimi önceden kaydedilmiş ORIGINAL_FORMAT ile geri yükle. Başarılı olma durumunda True döndür. ORIGINAL_FORMAT başarılı geri yüklemenin ardından silinir.

safe_read_lock

Güvenli okuma kilidi iş parçacığı zaten bir yazma kilidine sahipse hiçbir şey yapmayan, aksi durumda okuma kilidi edinen kilittir. Arama zulasını bileşik sütunlar önünde güncellerken oluşabilecek DowngradeLockErrors hatalarını önlemek için bu gereklidir. Arama zulasını güncellemek ayrıcalıklı bir kilit tutar, ama bileşik sütun araması paylaşılan bir kilit almaya çalışan ProxyMetadata kullanarak alan değerlerinin okunmasını içerir. Bu durumu tetikleyen başka senaryolar da olabilir.

Bu özellik her erişimde yeni bir kilit nesnesi döndürür. Bu kilit nesnesi yinelemeli değildir (performans için) ve yalnızca with cache.safe_read_lock: gibi bir with ifadesiyle kullanılmalıdır, aksi durumda kötü şeyler olacaktır.

save_original_format(book_id, fmt)[kaynak]

Mevcut herhangi ORIGINAL_FORMAT’ın üstüne yazarak belirtilen biçimin kopyasını ORIGINAL_FORMAT olarak keydet.

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

Veri tabanını belirtilen sorgu için ara, eşleşen kitap id’lerini döndür.

Parametreler:
  • restriction – Belirtilen sorguya AND yapılan bir kısıtlama. Kısıtlamaların zulalandığını, yani bir a AND b aramasının bir kıstılı b’li a aramasından yavaş olacağını unutmayın.
  • virtual_fields – Dahili kullanım (aranacak on_device gibi sanal alanlar).
  • book_ids – None değilse, tüm kitaplar yerine verilen kitapların aranacağı bir kitap id kümesi.
set_conversion_options(options, fmt=u'PIPE')[kaynak]

seçenekler {book_id:conversion_options} haritası şeklinde olmalıdır

set_cover(book_id_data_map)[kaynak]

Bu kitap için kapak ayarlayın. veri QImage, QPixmap, dosya nesnesi veya bytestring olabilir. Ayrıca None da olabilir, bu durumda mevcut kapak kaldırılır.

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

name ile belirtilen alanın değerlerini ayarla. Değişiklikten etkilenen tüm kitap id’lerinin kümesini döndürür.

Parametreler:
  • book_id_to_val_map – book_id’lerin uygulanacak değerlere haritası.
  • allow_case_change – True ise, çoktan-bire ve çoktan-çoka alanların büyük küçük harfleri değiştirilir. Örneğin bir kitabın tag1 etiketi varsa, ve başka bir kitap için etiketi Tag1 olarak ayarladıysanız allow_case_change True ise her iki kitap da Tag1 etiketine sahip olur, aksi durumda ikisi de tag1 etiketine s ahip olacaktır.
  • do_path_update – Dahili kullanım içindir, değiştirmemelisiniz.
set_metadata(book_id, mi, ignore_errors=False, force_changes=False, set_title=True, set_authors=True, allow_case_change=False)[kaynak]

Metadata nesnesi `mi`den kitap `id`si için metadata ayarla

force_changes=True ayarı mi boş değerler içerse de set_metadata’nın alanları güncellemesine yol açar. Bu durumda ‘None’ ‘boş’dan ayrılmış olur. mi.XXX None ise, XXX yer değiştirilmez, aksi durumda değiştirilir. Etiketler, tanımlayıcılar, ve kapak öznitelikleri özel durumlardır. Etiketler ve tanımlayıcılar None olamayacağından force_changes true ise her zaman yer değiştirilirler. Mi’nin kitapta olmasını istediğiniz değerleri içerdiğinden emin olmalısınız. Kapaklar yeni bir kapak sağlanmışsa hep değiştirilir, ama asla silinmezler. force_changes’in başlık veya yazar ayarlarında etkisi olmadığını da unutmayın.

set_pref(name, val)[kaynak]

Belirtilen değere belirtilen seçeneği ayarla. Ayrıca bknz pref().

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

Belirtilen zamandan eski tag etiketine sahip tüm kitapların id’lerini döndür. etiket karşılaştırma büyük küçük harf duyarsızdır.

Parametreler:
  • delta – Bir timedelta nesnesi veya None. None ise, etiketli tüm id’ler döndürülür.
  • must_have_tag – None değilse eşleşme listesi bu etikete sahip kitaplarla kısıtlanır
  • must_have_authors – Yazarlar listesi. None değilse, eşleşme listesi bu yazarlara sahip kitaplarla kısıtlanacaktır (büyük küçük harf duyarlı).
user_categories_for_books(book_ids, proxy_metadata_map=None)[kaynak]

Belirtilen kitaplar için kullanıcı kategorilerini döndür. proxy_metadata_map kitapların bir ProxyMetadata nesnesine sahip olduğu durumlarda performans artırmak amaçlı kullanılabilir ve tercihe bağlıdır. book_id’lerinin ilgili ProxyMetadata nesnesine haritası olmalıdırlar.