Eklentiler için API belgeleri

Güçlü eklentiler oluşturmak için alt sınıf yapılabilir çeşitli soyut temel sınıfları tanımlar. Kullanışlı sınıflar şunlardır:

Eklenti

class calibre.customize.Plugin(plugin_path)[kaynak]

Bir calibre eklentisi. Kullanışlı üyeleri şunları içerir:

  • self.installation_type: Eklentinin nasıl kurulduğunu saklar.

  • self.plugin_path: Aşağıdakileri içeren ZIP dosyasının yolunu saklar:

    içeren zip dosyasına yolu tutar

  • self.site_customization: Kullanıcı tarafından girilen bir özelleştirme

    karakter dizisini tutar.

Alt sınıflarda ezilmesi gereken metodlar:

Kullanışlı metodlar:

supported_platforms = []

Bu eklentinin çalıştığı platformların listesi. Örneğin: ['windows', 'osx', 'linux']

name = 'Trivial Plugin'

Bu eklentinin adı. Çalışması için Trivial Plugin dışında bir şeye ayarlamalısınız.

version = (1, 0, 0)

Eklentinin 3-lü demet şeklinde sürümü (majör, minör, düzeltme)

description = 'Kesinlikle hiçbir şey yapmaz'

Bu eklentinin ne yaptığını anlatan kısa karakter dizisi

author = 'Bilinmiyor'

Eklentinin yazarı

priority = 1

Bir dosya türü için birden fazla eklenti mevcut olduğunda, eklentiler azalan öncelik sırasına göre çalıştırılır. Daha yüksek önceliğe sahip eklentiler ilk önce çalıştırılacaktır. Mümkün olan en yüksek öncelik “sys.maxsize”dir. Varsayılan öncelik 1’dir.

minimum_calibre_version = (0, 4, 118)

Bu eklentinin gerektirdiği en eski calibre sürümü

installation_type = None

Bu eklentinin kurulma şekli

can_be_disabled = True

False ise, kullanıcının bu eklentiyi kapatma şansı olmayacaktır. Dikkatli kullanın.

type = 'Temel'

Eklenti türü. Eklentileri GUI’de kategorize etmek için kullanılır

initialize()[kaynak]

Calibre eklentileri ilklendirildiğinde bir defa çağrılır. Eklentiler yeni bir eklenti eklendiğinde her defasında yeniden ilklendirilirler. Ayrıca eklenti bir çalışan süreç içinde çalıştırılırsa, kitap ekleme süreci gibi, eklenti her yeni çalışma süreciyle ilklendirilecektir.

Eklenti ZIP dosyasından kaynakların çıkarılması gibi eklentiye özel herhangi bir başlatma işlemini burada gerçekleştirin. ZIP dosyasının yolu self.plugin_path olarak mevcuttur.

self.site_customization bu noktada kullanılabilir değildir.

config_widget()[kaynak]

Basit karakter dizisi temelli varsayılan özelleştirmeye güvenmek yerine bu metodu ve save_settings() metodunu eklentinizde uygulayarak özel bir yapılandırma iletişim penceresi kullanın.

Bu metod, eğer uygulanırsa, bir QWidget döndürmelidir. Parçacık isteğe bağlı olarak bağımsız değişken almayan bir validate() metoduna sahip olabilir ve kullanıcı Tamama tıklayınca anında çağrılır. Değişiklikler yalnızca metod True döndürürse uygulanır.

Bir sebepten bu aşamada yapılandırma yapamazsanız, iki karakter dizisi içeren bir demet döndürün (ileti, detaylar), bunlar kullanıcıya uyarı penceresi olarak gösterilir ve süreç iptal edilir.

save_settings(config_widget)[kaynak]

Kullanıcı tarafından config_widget ile belirtilen ayarları kaydet.

Parametreler:

config_widgetconfig_widget() tarafından döndürülen parçacık.

do_user_config(parent=None)[kaynak]

Bu metod bu eklenti için bir yapılandırma iletişim penceresi gösterir. Kullanıcı Tamama tıklarsa True, yoksa False döndürür. Değişiklikler otomatik olarak uygulanır.

load_resources(names)[kaynak]

Bu eklenti bir ZIP dosyasıyla gelirse (kullanıcı tarafından eklenmiş eklenti), bu metod ZIP dosyasından kaynakları yüklemenizi sağlar.

Örneğin bir resmi yüklemek için:

pixmap = QPixmap()
pixmap.loadFromData(self.load_resources(['images/icon.png'])['images/icon.png'])
icon = QIcon(pixmap)
Parametreler:

names – Ayırıcı olarak / kullanılarak ZIP dosyasındaki kaynaklara giden yolların listesi

Dönüşler:

{name: file_contents} biçiminde bir sözlük. ZIP dosyasında bulunmayan adlar sözlükte de yer almayacaktır.

customization_help(gui=False)[kaynak]

Bu eklentinin nasıl özelleştirileceği konusunda yardım veren bir metin. Varsayılan olarak NotImplementedError yükseltilir, bu da eklentinin özelleştirmeye ihtiyaç duymadığı anlamına gelir.

Bu metodu alt sınıflarınızda yeniden uyguluyorsanız, kullanıcıdan bu eklenti için özelleştirme olarak kullanılacak bir karakter dizisi girmesi istenir. Özelleştirme karakter dizisi self.site_customization olarak kullanılabilir olacaktır.

Site özelleştirmesi herşey olabilir, örneğin kullanıcının bilgisayarındaki bir ikiliğin yolu.

Parametreler:

gui – True ise HTML yardımı döndür, yoksa düz metin yardımı.

temporary_file(suffix)[kaynak]

Sistemde geçici bir dosya olan dosya-benzeri nesneyi döndür. Bu dosya kapandıktan sonra bile kullanılabilir olur ve yalnızca yorumlayıcı kapandığında silinir. Oluşturulan geçici dosyanın tam yoluna erişmek için dönen nesnenin name metodunu kullanın.

Parametreler:

suffix – Geçici dosyanın son eki.

cli_main(args)[kaynak]

Bu metod eklentinizin komut satırı arayüzü için ana giriş noktasıdır. Kullanıcı calibre-debug -r “Eklenti İsmi” girdiğinde çağrılır. Bağımsız değişkenler args değişkenine mevcuttur.

FileTypePlugin

class calibre.customize.FileTypePlugin(plugin_path)[kaynak]

Temeller: Plugin

Belirli bir dosya türü kümesiyle ilişkili eklenti.

file_types = {}

Bu eklentinin çalıştırılması gereken dosya türleri kümesi. Tüm dosya türleri için ‘*’ kullanın. Örneğin: {'lit', 'mobi', 'prc'}

on_import = False

True ise, bu eklenti kitaplar veri tabanına eklendiğinde çalışır

on_postimport = False

True ise bu eklenti kitaplar veritabanına eklendikten sonra çalıştırılır. Bu durumda eklentinin postimport ve postadd yöntemleri çağrılır.

on_postconvert = False

True ise bu eklenti kitap dönüştürüldükten sonra çalıştırılır. Bu durumda eklentinin postconvert yöntemi çağrılır.

on_postdelete = False

True ise bu eklenti veritabanından bir kitap dosyası silindikten sonra çalıştırılır. Bu durumda eklentinin silme sonrası yöntemi çağrılır.

on_preprocess = False

True ise, bu eklenti dönüştürme öncesi çalışır

on_postprocess = False

True ise, bu eklenti dönüştürme çıktı eklentisi tarafından üretilen son dosyanın dönüştürmesi sonrası çalışır.

type = 'Dosya türü'

Eklenti türü. Eklentileri GUI’de kategorize etmek için kullanılır

run(path_to_ebook)[kaynak]

Eklentiyi çalıştırın. Alt sınıflarda uygulanmalıdır. E-kitapta yapılması gereken değişiklikleri yapmalı ve değiştirilen e-kitabın mutlak yolunu döndürmelidir. Herhangi bir değişiklik gerekmiyorsa, orijinal e-kitabın yolunu döndürmelidir. Bir hatayla karşılaşılırsa bir İstisna oluşturulmalıdır. Varsayılan uygulama yalnızca orijinal e-kitabın yolunu döndürür. Orijinal dosyanın yolunun (herhangi bir dosya türü eklentisi çalıştırılmadan önce self.original_path_to_file olarak mevcut olduğunu) unutmayın.

Değiştirilen e-kitap dosyası temporary_file() yöntemiyle oluşturulmalıdır.

Parametreler:

path_to_ebook – E-kitabın mutlak yolu.

Dönüşler:

Değiştirilen e-kitabın mutlak yolu.

postimport(book_id, book_format, db)[kaynak]

İçe aktarım sonrası denir, yani kitap dosyası veritabanına eklendikten sonra. Bunun, kitap kaydı ilk kez oluşturulduğunda çağrılan :meth:`postadd`den farklı olduğunu unutmayın. Bu yöntem, bir kitap kaydına yeni bir dosya eklendiğinde çağrılır. Yeni eklenen dosyanın içeriğine göre kitap kaydını değiştirmek için kullanışlıdır.

Parametreler:
  • book_id – Eklenen kitabın veri tabanı kimliği.

  • book_format – Eklenen kitabın dosya türü.

  • db – Kitaplık veri tabanı.

postconvert(book_id, book_format, db)[kaynak]

Dönüştürme sonrası olarak adlandırılır, yani dönüştürme çıktı kitabı dosyası veritabanına eklendikten sonra. Bunun bir kitap eklendikten sonra değil, yalnızca bir dönüşümden sonra çalıştırıldığını unutmayın. Yeni eklenen dosyanın içeriğine göre kitap kaydını değiştirmek için kullanışlıdır.

Parametreler:
  • book_id – Eklenen kitabın veri tabanı kimliği.

  • book_format – Eklenen kitabın dosya türü.

  • db – Kitaplık veri tabanı.

postdelete(book_id, book_format, db)[kaynak]

Silme sonrası denir, yani kitap dosyası veritabanından silindikten sonra. Bir kitap kaydı silindiğinde çalıştırılmadığını, yalnızca kitaptan bir veya daha fazla format silindiğinde çalıştırıldığını unutmayın. Silinen dosyanın formatına göre kitap kaydını değiştirmek için kullanışlıdır.

Parametreler:
  • book_id – Eklenen kitabın veri tabanı kimliği.

  • book_format – Eklenen kitabın dosya türü.

  • db – Kitaplık veri tabanı.

postadd(book_id, fmt_map, db)[kaynak]

Post add olarak adlandırılır, yani veri tabanına bir kitap eklendikten sonra. Bunun, tek bir kitap dosyası bir kitaba eklendikten sonra çağrılan :meth:`postimport`tan farklı olduğunu unutmayın. postadd() yalnızca muhtemelen birden fazla kitap dosyası içeren bir kitap kaydının tamamı ilk kez oluşturulduğunda çağrılır. Kitap calibre’ye ilk eklendiğinde veri tabanındaki kitap kaydını değiştirmek istiyorsanız bu kullanışlıdır.

Parametreler:
  • book_id – Eklenen kitabın veri tabanı kimliği.

  • fmt_map – Dosya biçiminin, dosya biçiminin eklendiği yol ile haritası. Bazen dosyalar akış olarak eklendiğinden, bunun mevcut bir dosyaya işaret edebileceğini veya etmeyebileceğini unutmayın. Bu durumda sahte bir değer veya var olmayan bir yol olabilir.

  • db – Kitaplık veri tabanı

Metadata eklentileri

class calibre.customize.MetadataReaderPlugin(*args, **kwargs)[kaynak]

Temeller: Plugin

Bir dosya türü kümesinden metadata okumayı uygulayan bir eklenti.

file_types = {}

Bu eklentinin çalıştırılması gereken dosya türleri kümesi. Örneğin: set(['lit', 'mobi', 'prc'])

supported_platforms = ['windows', 'osx', 'linux']

Bu eklentinin çalıştığı platformların listesi. Örneğin: ['windows', 'osx', 'linux']

version = (7, 21, 100)

Eklentinin 3-lü demet şeklinde sürümü (majör, minör, düzeltme)

author = 'Kovid Goyal'

Eklentinin yazarı

type = 'Metaveri okuyucu'

Eklenti türü. Eklentileri GUI’de kategorize etmek için kullanılır

get_metadata(stream, type)[kaynak]

Akış tarafından temsil edilen dosyanın (okumayı destekleyen dosya benzeri bir nesne) meta verilerini döndürün. Giriş verilerinde bir hata olduğunda bir istisna oluşturun.

Parametreler:

type – Dosya türü. file_types içindeki girdilerden biri olduğu garanti edilir.

Dönüşler:

A :sınıf:`calibre.ebooks.metadata.book.Metadata` nesnesi

class calibre.customize.MetadataWriterPlugin(*args, **kwargs)[kaynak]

Temeller: Plugin

Bir dosya türü kümesinden metadata okumayı uygulayan bir eklenti.

file_types = {}

Bu eklentinin çalıştırılması gereken dosya türleri kümesi. Örneğin: set(['lit', 'mobi', 'prc'])

supported_platforms = ['windows', 'osx', 'linux']

Bu eklentinin çalıştığı platformların listesi. Örneğin: ['windows', 'osx', 'linux']

version = (7, 21, 100)

Eklentinin 3-lü demet şeklinde sürümü (majör, minör, düzeltme)

author = 'Kovid Goyal'

Eklentinin yazarı

type = 'Metaveri yazıcı'

Eklenti türü. Eklentileri GUI’de kategorize etmek için kullanılır

set_metadata(stream, mi, type)[kaynak]

Akış tarafından temsil edilen dosya için meta verileri ayarlayın (okumayı destekleyen dosya benzeri bir nesne). Giriş verilerinde bir hata olduğunda bir istisna oluşturun.

Parametreler:

Katalog eklentileri

class calibre.customize.CatalogPlugin(plugin_path)[kaynak]

Temeller: Plugin

Bir katalog üreteci uygulayan eklenti.

file_types = {}

Bu eklentinin çalıştırılması gereken çıktı dosyası türü. Örneğin: ‘epub’ veya ‘xml’

type = 'Katalog üreteci'

Eklenti türü. Eklentileri GUI’de kategorize etmek için kullanılır

cli_options = []

Bu eklentiye özel CLI ayrıştırıcı seçenekleri, “namedtuple” “Option” olarak bildirildi:

koleksiyonlardan içe aktar Nametuple Option = nametuple(‘Option’, ‘option, default, dest, help’) cli_options = [Option(’–catalog-title’, default = ‘Kataloğum’, dest = ‘catalog_title’, help = (_(‘Oluşturulan kataloğun başlığı. nDefault:’) + “ ‘” + ‘%default’ + “’”))] calibre.db.cli.cmd_catalog:option_parser() içinde ayrıştırılan cli_options

initialize()[kaynak]

Eklenti yerleşik değilse, eklentinin .ui ve .py dosyalarını ZIP dosyasından $TMPDIR’e kopyalayın. Sekme dinamik olarak oluşturulacak ve calibre.gui2.dialogs.catalog.py:Catalog’daki Katalog Seçenekleri iletişim kutusuna eklenecektir.

run(path_to_output, opts, db, ids, notification=None)[kaynak]

Eklentiyi çalıştır. Alt sınıflarda uygulanmalıdır. file_types’da belirtilen biçimde kataloğu üretmelidir, ve üretilen katalog dosyasına mutlak yolu döndürmelidir. Bir hataya rastlanırsa bir Exception yükseltmelidir.

Üretilen katalog dosyası temporary_file() metoduyla oluşturulmalıdır.

Parametreler:
  • path_to_output – Üretilen katalog dosyasına mutlak yol.

  • opts – Anahtar kelime değişkenlerinden oluşan bir sözlük

  • db – Bir LibraryDatabase2 nesnesi

Metadata indirme eklentileri

class calibre.ebooks.metadata.sources.base.Source(*args, **kwargs)[kaynak]

Temeller: Plugin

type = 'Metadata kaynağı'

Eklenti türü. Eklentileri GUI’de kategorize etmek için kullanılır

author = 'Kovid Goyal'

Eklentinin yazarı

supported_platforms = ['windows', 'osx', 'linux']

Bu eklentinin çalıştığı platformların listesi. Örneğin: ['windows', 'osx', 'linux']

capabilities = frozenset({})

Bu eklenti tarafından desteklenen yetenek kümesi. Kullanışlı yetenekler: ‘identify’, ‘cover’

touched_fields = frozenset({})

Bu eklenti tarafından tanımlama aşamasında indirilebilme potansiyeline sahip metadata alanları listesi

has_html_comments = False

Eklentiniz HTML biçimli yorumlar döndürüyorsa bunu True olarak ayarlayın

supports_gzip_transfer_encoding = False

Bunu True olarak ayarlamak, tarayıcı nesnesinin gzip aktarım kodlamasını desteklediğini belirteceği anlamına gelir. Bu, indirmeleri hızlandırabilir ancak öncelikle kaynağın gerçekten gzip aktarım kodlamasını doğru şekilde desteklediğinden emin olun.

ignore_ssl_errors = False

Bu kaynağa bağlanırken HTTPS sertifika hatalarını yok saymak için bunu True olarak ayarlayın.

cached_cover_url_is_reliable = True

Önbelleğe alınan kapak URL’leri bazen güvenilmez olabilir (yani indirme işlemi başarısız olabilir veya döndürülen resim sahte olabilir). Bu kaynakta sıklıkla durum böyleyse Yanlış olarak ayarlayın

options = ()

Option nesneleri listesi. Bu eklenti için otomatik olarak yapılandırma parçacığı inşa etmek için kullanılacaklar

config_help_message = None

Bu eklenti için ayar penceresinin üstünde gösterilecek bir karakter dizisi

can_get_multiple_covers = False

True ise bu kaynak verilen sorgu için birden çok kapak döndürebilir

auto_trim_covers = False

True olarak ayarlıysa bu eklenti tarafından indirilen kapaklar otomatik olarak düzeltilir.

prefer_results_with_isbn = True

True olarak ayarlanırsa, ve bu kaynak bir sorgu için bazılarında ISBN’ler olan bazılarında olmayan birden çok sonuç döndürüyorsa, ISBN olmayan sonuçlar göz ardı edilir

is_configured()[kaynak]

Eklentinizin kullanılmadan önce yapılandırılması gerekiyorsa False döndür. Örneğin bir kullanıcı adı/parola/API anahtarına ihtiyaç duyuyor olabilir.

customization_help()[kaynak]

Bu eklentinin nasıl özelleştirileceği konusunda yardım veren bir metin. Varsayılan olarak NotImplementedError yükseltilir, bu da eklentinin özelleştirmeye ihtiyaç duymadığı anlamına gelir.

Bu metodu alt sınıflarınızda yeniden uyguluyorsanız, kullanıcıdan bu eklenti için özelleştirme olarak kullanılacak bir karakter dizisi girmesi istenir. Özelleştirme karakter dizisi self.site_customization olarak kullanılabilir olacaktır.

Site özelleştirmesi herşey olabilir, örneğin kullanıcının bilgisayarındaki bir ikiliğin yolu.

Parametreler:

gui – True ise HTML yardımı döndür, yoksa düz metin yardımı.

config_widget()[kaynak]

Basit karakter dizisi temelli varsayılan özelleştirmeye güvenmek yerine bu metodu ve save_settings() metodunu eklentinizde uygulayarak özel bir yapılandırma iletişim penceresi kullanın.

Bu metod, eğer uygulanırsa, bir QWidget döndürmelidir. Parçacık isteğe bağlı olarak bağımsız değişken almayan bir validate() metoduna sahip olabilir ve kullanıcı Tamama tıklayınca anında çağrılır. Değişiklikler yalnızca metod True döndürürse uygulanır.

Bir sebepten bu aşamada yapılandırma yapamazsanız, iki karakter dizisi içeren bir demet döndürün (ileti, detaylar), bunlar kullanıcıya uyarı penceresi olarak gösterilir ve süreç iptal edilir.

save_settings(config_widget)[kaynak]

Kullanıcı tarafından config_widget ile belirtilen ayarları kaydet.

Parametreler:

config_widgetconfig_widget() tarafından döndürülen parçacık.

get_author_tokens(authors, only_first_author=True)[kaynak]

Bir yazar listesi al ve bir AND arama sorgusu için kulanışlı olacak jeton listesi döndür. Bu fonksiyon ilk ad göbek adı soyad sırasında jeton döndürmeye çalışır, yazar isminde bir virgül varsa, ismin soyad, diğer ad biçiminde olduğunu farz eder.

get_title_tokens(title, strip_joiners=True, strip_subtitle=False)[kaynak]

Bir başlık al ve bir AND arama sorgusu için kullanışlı jeton listesi döndür. Bağlaç(isteğe bağlı) ve noktalama işaretleri hariç.

split_jobs(jobs, num)[kaynak]

Bir iş listesini olabildiğince eşit şekilde en fazla num gruba ayır

test_fields(mi)[kaynak]

self.touched_files’dan mi nesnesinde null olan ilk alanı döndür

clean_downloaded_metadata(mi)[kaynak]

Bu metodu eklentinizin tanımlama metodunda Metadata nesnesini result_queue’ye koymadan önce metadata’yı normalleştirmek için çağırın. Tabi ki metadata kaynağınıza uygun özel bir algoritma da kullanabilirsiniz.

get_book_url(identifiers)[kaynak]

3’lü bir grup veya Hiçbiri döndürün. 3’lü grup şu biçimdedir: (tanımlayıcı_tipi, tanımlayıcı_değeri, URL). URL, bu kaynaktaki tanımlayıcılar tarafından tanımlanan kitabın URL’sidir. tanımlayıcı_türü, tanımlayıcı_değer URL’ye karşılık gelen tanımlayıcıyı belirtir. Bu URL’ye tarayıcı kullanan bir kişi tarafından göz atılabilir olmalıdır. Kullanıcının bu kaynaktaki kitap sayfasını kolayca ziyaret edebilmesi için tıklanabilir bir bağlantı sağlanması amaçlanmaktadır. Hiçbir URL bulunamazsa Yok değerini döndürün. Bu yöntemin hızlı ve tutarlı olması gerekir; bu nedenle, yalnızca URL’yi bilinen bir şema verilen tanımlayıcılardan oluşturmak mümkünse uygulayın.

get_book_url_name(idtype, idval, url)[kaynak]

get_book_url()’nin döndürdüğü değerden okunabilir bir isim döndür.

get_book_urls(identifiers)[kaynak]

Bu kitap için birden fazla URL döndürmek istiyorsanız bu yöntemi geçersiz kılın. 3’lü demetlerin listesini döndürün. Varsayılan olarak bu yöntem yalnızca get_book_url() öğesini çağırır.

get_cached_cover_url(identifiers)[kaynak]

Tanımlayıcılar sözlüğü tarafından tanımlanan kitabın önbelleğe alınmış kapak URL’sini döndürün veya böyle bir URL yoksa Yok’u seçin.

Bu metodun yalnızca doğrulanmış URL’ler döndürmesi gerektiğine dikkat edin, örn. genel kapak resmi veya bulunamadı hatasına yol açacak URL’ler olmamalı.

id_from_url(url)[kaynak]

Bir URL’yi ayrıştırın ve formun bir demetini döndürün: (tanımlayıcı_türü, tanımlayıcı_değer). URL, meta veri kaynağının modeliyle eşleşmiyorsa Yok değerini döndürün.

identify_results_keygen(title=None, authors=None, identifiers={})[kaynak]

Bir arama sorgusu (başlık, yazarlar, tanımlayıcılar) alarak Metadata nesnelerini sıralamaya yarayacak bir anahtar üretmeye yarayan bir fonksiyon döndür.

Bu anahtarlar identify() çağrısı sonucunu sıralamaya yarar.

Varsayılan algoritma detayları için bknz InternalMetadataCompareKeyGen. Varsayılan algoritma uygun değilse bu fonksiyonu tekrar uygulayın.

identify(log, result_queue, abort, title=None, authors=None, identifiers={}, timeout=30)[kaynak]

Bir kitabı Başlığı/Yazar/ISBN/vb. ile tanımlayın.

Tanımlayıcı(lar) belirtilmiş ve bir eşleşme bulunamamışsa ve bu metadata kaynağı ilgili tüm tanımlayıcılar kaydetmemişse (örneğin, bir kitabın tüm ISBN’leri), bu metod sadece başlık ve yazar (belirtildiklerini farz ederek) ile tekrar denemelidir.

Bu metadata kaynağı kapak da sağlıyorsa, kapağın URL’si kapak getirme API’si ile tekrar tekrar aynı ISBN/özel tanımlayıcı çağrısı yapıldığında getirilmek zorunda kalınmasın diye zulalanmalıdır. Zulalama API’sini bunun için kullanın.

Bu metod tarafından result_queue’ya konan her Metadata nesnesinin bu sorgu için metadata kaynağınca döndürülen sonuçların sırasını belirten bir tamsayı olan source_relevance özniteliği olmalıdır. Bu tam sayı compare_identify_results() tarafından kullanılacaktır. Sıra önemli değilse, tüm sonuçlar için sıfır olarak ayarlayın.

Metadata nesnesi result_queue’ye yerleştirilmeden önce tüm kapak/ISBN eşleme bilgilerinin önbelleğe alındığından emin olun.

Parametreler:
  • log – Bir sistem günlüğü nesnesi, hata ayıklama bilgisi/hatası çıktılamak için kullanın

  • result_queue – Bir sonuç Kuyruğu, sonuçlar buna koyulmalı. Her sonuç bir Metadata nesnesidir

  • abort – Eğer abort.is_set() True döndürürse, işlemeyi durdur ve en kısa sürede dön

  • title – Kitabın başlığı, None olabilir

  • authors – Kitap için yazarlar listesi, None olabilir

  • identifiers – Diğer tanımlayıcıları içeren bir sözlük, en yaygın şekliyle {‘isbn’:’1234…’}

  • timeout – Saniye cinsinden zaman aşımı, hiçbir ağ isteği zaman aşımından uzun sürmemeli.

Dönüşler:

Hataya rastlanmadıysa None, aksi halde hatanın kullanıcıya gösterilebilecek evrensel kodda temsili

download_cover(log, result_queue, abort, title=None, authors=None, identifiers={}, timeout=30, get_best_cover=False)[kaynak]

Bir kapak indir ve result_queue’ya koy. Parametreler identify() metodundakiyle aynı anlamdadırlar. (self, cover_data)’yı result_queue’ya koy.

Bu metod verimlilik için uygun olan her durumda zulalanmış kapak URL’lerini kullanmalıdır. Zulalı veri olmadığında, çoğu eklenti identify’ı çağırır ve onun sonuçlarını kullanır.

get_best_cover parametresi True ise ve bu eklenti birden çok kapak alabiliyorsa, yalnızca “en iyi” olanı almalı.

class calibre.ebooks.metadata.sources.base.InternalMetadataCompareKeyGen(mi, source_plugin, title, authors, identifiers)[kaynak]

Bir arama sorgusu verildiğinde, Metadata nesnelerinin uygunluğunun karşılaştırması için bir sıralama anahtarı üret. Bu yalnızca aynı metadata kaynağından gelen sonuçları karşılaştırmak için kullanılır, farklı kaynaklar arasında değil.

Arama anahtarı artan sırada sıralamanın azalan uygunluk sırasında sıralama olduğundan emin olur.

Algoritma:

  • Sorguda olduğu gibi en az bir tanımlayıcısı olan sonuçları tercih et

  • Zulalanmış kapak URL’si olan sonuçları tercih et

  • Kullanılabilir alanların hepsi dolu olan sonuçları tercih et

  • Mevcut kullanıcı arayüzüyle aynı dilde olan sonuçları tercih et

  • Sorguyla başlığı birebir eşleşen sonuçları tercih et

  • Daha uzun yorumlu sonuçları tercih et (%10 uzunluktan fazlası)

  • Sonucun uygunluğunu metadata kaynağının aramasından gelen rapor olarak kullan

    motor

Dönüştürme eklentileri

class calibre.customize.conversion.InputFormatPlugin(*args)[kaynak]

Temeller: Plugin

InputFormatPlugins bir belgeyi HTML+OPF+CSS+vs. ye dönüştürmekle sorumludurlar. Dönüştürmenin sonuçları UTF-8 ile kodlanmış olmak zorundadır. Esas olay convert() içinde gerçekleşir.

type = 'Girdi dönüşümü'

Eklenti türü. Eklentileri GUI’de kategorize etmek için kullanılır

can_be_disabled = False

False ise, kullanıcının bu eklentiyi kapatma şansı olmayacaktır. Dikkatli kullanın.

supported_platforms = ['windows', 'osx', 'linux']

Bu eklentinin çalıştığı platformların listesi. Örneğin: ['windows', 'osx', 'linux']

file_types = {}

Bu eklentinin çalışacağı dosya türü kümesi. Örneğin: set(['azw', 'mobi', 'prc'])

is_image_collection = False

True ise, bu girdi eklentisi HTML dosyası başına bir resim koleksiyonu üretir. Bu, dönüştürme metodunda, girdi dosyaları hem resim koleksiyonları hem resim olmayan koleksiyonlar olabiliyorsa dinamik olarak ayarlanabilir. True olarak ayarlarsanız, resim listesi döndüren get_images() metodunu uygulamalısınız.

core_usage = 1

Bu eklenti tarafından kullanılan CPU çekirdeği sayısı. -1 değeri, mevcut tüm çekirdekleri kullandığı anlamına gelir

for_viewer = False

True olarak ayarlanırsa, girdi eklentisi çıktısını görüntülemeye uygun hale getirmek için özel işlemden geçirir

output_encoding = 'utf-8'

Bu girdi eklentisinin dosyaları içinde oluşturduğu kodlama. None değeri kodlamanın belirtilmemiş olduğunu ve bağımsız şekilde algılanması gerektiğini belirtir

common_options = {<calibre.customize.conversion.OptionRecommendation object>}

Tüm girdi biçim eklentilerince paylaşılan seçenekler. Alt sınıflarda ezmeyin. Bunun yerine options kullanın. Her seçenek bir OptionRecommendation örneği olmalıdır.

options = {}

Bu eklentinin davranışını özelleştirecek seçenekler. Tüm seçenekler OptionRecommendation örneği olmalıdırlar.

recommendations = {}

(seçenek_ismi, önerilen_değer, önerilen_seviye) biçiminde 3’lü demet kümesi

get_images()[kaynak]

Bu eklenti bir resim koleksiyonunu destekliyorsa, resimlere mutlak yol listesini döndür. Resim listesi omurga ve İçindekiler ile aynı sıradadır.

convert(stream, options, file_ext, log, accelerators)[kaynak]

Bu yöntemin alt sınıflarda uygulanması gerekir. Oluşturulan OPF dosyasının veya OEBBook örneğinin yolunu döndürmelidir. Tüm çıktı geçerli klasörde bulunmalıdır. Bu eklenti geçerli klasörün dışında dosyalar oluşturursa, bu yöntem geri dönmeden önce bunların silinmesi/silinmek üzere işaretlenmesi gerekir.

Parametreler:
  • stream – Girdi dosyasını içeren dosya benzeri nesne.

  • options – Dönüştürme sürecini özelleştirecek seçenekler. Bu eklentice bildirilen tüm seçeneklere karşılık gelen özniteliklere sahip olacağı garantidir. Ek olarak, tamamlayıcı değerleri sıfırdan yukarı doğru alan ayrıntılı bir özniteliği olacaktır. Yüksek sayılar daha ayrıntılı demektir. Kullanışlı başka bir öznitelik de calibre.customize.profiles.InputProfile örneği olan input_profile özniteliğidir.

  • file_ext – Girdinin uzantısı (. olmadan). Bu eklentice desteklenen dosya_türlerinden biri olması garantidir.

  • logcalibre.utils.logging.Log nesnesi. Tüm çıktı bu nesneyi kullanmalı.

  • accelerators – Girdi eklentisinin kolayca alabileceği, dönüştürmenin sonraki aşamalarını hızlandıracak olan çeşitli bilgileri içeren sözlük.

postprocess_book(oeb, opts, log)[kaynak]

Girdi eklentisinin kitap ayrıştırıldıktan sonra işlem yapmasına izin vermek için çağrılır.

specialize(oeb, opts, log, output_fmt)[kaynak]

Girdi eklentisinin ayrıştırılan kitabı belli çıktı biçimine özelleştirmesine izin vermek için çağrılır. Ayrıştırılan kitaba herhangi dönüştürme yapılmadan önce postprocess_book’dan sonra çağrılır.

gui_configuration_widget(parent, get_option_by_name, get_option_help, db, book_id=None)[kaynak]

Bu eklentiyi calibre grafik arayüzünde yapılandırmaya yarayan pencereyi oluşturmak için çağrılır. Pencere PluginWidget sınıfından olmalıdır. Örnekler için dahili girdi eklentilerine göz atın.

class calibre.customize.conversion.OutputFormatPlugin(*args)[kaynak]

Temeller: Plugin

OutputFormatPlugins, bir OEB belgesini (OPF+HTML) çıktı e-kitabına dönüştürmekten sorumludur.

OEB belgesinin UTF-8 ile kodlanmış olduğu varsayılabilir. Ana olay convert() içinde gerçekleşir.

type = 'Çıktı dönüşümü'

Eklenti türü. Eklentileri GUI’de kategorize etmek için kullanılır

can_be_disabled = False

False ise, kullanıcının bu eklentiyi kapatma şansı olmayacaktır. Dikkatli kullanın.

supported_platforms = ['windows', 'osx', 'linux']

Bu eklentinin çalıştığı platformların listesi. Örneğin: ['windows', 'osx', 'linux']

file_type = None

Bu eklentinin çıktıladığı dosya türü (noktasız son ek)

common_options = {<calibre.customize.conversion.OptionRecommendation object>}

Tüm girdi biçim eklentilerince paylaşılan seçenekler. Alt sınıflarda ezmeyin. Bunun yerine options kullanın. Her seçenek bir OptionRecommendation örneği olmalıdır.

options = {}

Bu eklentinin davranışını özelleştirecek seçenekler. Tüm seçenekler OptionRecommendation örneği olmalıdırlar.

recommendations = {}

(seçenek_ismi, önerilen_değer, önerilen_seviye) biçiminde 3’lü demet kümesi

property description

str(object=’’) -> str str(bytes_or_buffer[, kodlama[, hatalar]]) -> str

Verilen nesneden yeni bir dize nesnesi oluşturun. Kodlama veya hatalar belirtilirse, nesnenin, verilen kodlama ve hata işleyicisi kullanılarak kodu çözülecek bir veri arabelleğini açığa çıkarması gerekir. Aksi halde, object.__str__() (tanımlanmışsa) veya repr(object) sonucunu döndürür. kodlama varsayılan olarak sys.getdefaultencoding() şeklindedir. hatalar varsayılan olarak ‘katı’dır.

convert(oeb_book, output, input_plugin, opts, log)[kaynak]

Oeb_book içeriğini (bu, calibre.ebooks.oeb.OEBBook örneğinin bir örneğidir) çıktı tarafından belirtilen dosyaya işleyin.

Parametreler:
  • output – Ya nesneye benzer bir dosya ya da bir dize. Bu bir dize ise, var olan veya olmayan bir klasörün yoludur. Çıktı eklentisi çıktısını bu klasöre yazmalıdır. Dosya benzeri bir nesne ise, çıktı eklentisi çıktısını dosyaya yazmalıdır.

  • input_plugin – Dönüştürme boru hattının başında kullanılan girdi eklentisi.

  • opts – Dönüştürme seçenekleri. Bu eklentinin SeçenekÖnerilerine karşılık gelen öznitelikleri içermesi garantidir.

  • log – Günlük kaydedici. Hata ayıklama/bilgi vs. iletilerini bunu kullanarak yazdırın.

specialize_options(log, opts, input_fmt)[kaynak]

Dönüşüm hattı tarafından kullanıldığı şekliyle, dönüştürme seçeneklerinin değerlerini değiştirmek için kullanılabilir.

specialize_css_for_output(log, opts, item, stylizer)[kaynak]

CSS düzleştirme işlemi sırasında CSS’de değişiklik yapmak için kullanılabilir.

Parametreler:
  • item – İşlenen öğe (HTML dosyası)

  • stylizer – Öğe için düzleştirilmiş biçemleri içeren Stylizer nesnesi. Herhangi bir öğenin biçemini stylizer.style(öğe) ile alabilirsiniz.

gui_configuration_widget(parent, get_option_by_name, get_option_help, db, book_id=None)[kaynak]

Bu eklentiyi calibre GUI’sinde yapılandırmak için kullanılan parçacığı oluşturmak için çağrılır. Parçacık bir PluginWidget sınıfı örneği olmalıdır. Örnekler için dahili çıktı eklentilerine göz atın.

Aygıt sürücüleri

Tüm aygıt sürücüleri için taban sınıf DevicePlugin dir. Ancak aygıtınız kendisini işletim sistemine USBMS sürücüsü olarak gösteriyorsa bu tür cihazları destekeleyecek her türlü mantığı uyguladığından USBMS sınıfını kullanmalısınız.

class calibre.devices.interface.DevicePlugin(plugin_path)[kaynak]

Temeller: Plugin

Bir e-kitap okuyucuyla iletişim kuran arka uçlar tarafından uygulanması gereken arayüzü tanımlar.

type = 'Cihaz arabirimi'

Eklenti türü. Eklentileri GUI’de kategorize etmek için kullanılır

FORMATS = ['lrf', 'rtf', 'pdf', 'txt']

Desteklenen biçimlerin sıralı listesi

VENDOR_ID = 0

VENDOR_ID bir tam sayı, tamsayı listesi veya sözlük olabilir. Bir sözlükse, sözlüklerin sözlüğü olmalıdır, şu şekilde:

{
 integer_vendor_id : { product_id : [list of BCDs], ... },
 ...
}
PRODUCT_ID = 0

Bir tam sayı veya tam sayı listesi

BCD = None

BCD BCD tabanlı aygıtlar arasında ayrı kalmaması için None olabilir, veya bu sürücü tarafından desteklenen tüm aygıtların BCD numaralarından oluşan liste olabilir.

THUMBNAIL_HEIGHT = 68

Küçük resimlerin aygıttaki yüksekliği

THUMBNAIL_COMPRESSION_QUALITY = 75

Küçük resimler için sıkıştırma kalitesi. Daha az sıkıştırma kusuruyla daha kaliteli küçük resimler elde etmek için bunu 100’e yaklaştırın. Elbette küçük resimler de büyüyor.

WANTS_UPDATED_THUMBNAILS = False

Aygıt sync_booklists sırasında kapak küçük resimlerini güncellemeye izin veriyorsa bunu True olarak ayarlayın. True olarak ayarlamak kitap eşleştirme sırasında device.py’ye kapak küçük resimlerini güncellemesini söyler

CAN_SET_METADATA = ['title', 'authors', 'collections']

Kitaplardaki metadata’nın GUI ile ayarlanıp ayarlanamayacağı.

CAN_DO_DEVICE_DB_PLUGBOARD = False

Aygıtın device_db metadata santralini ele alıp alamayacağı

path_sep = '/'

Bu aygıttaki kitaplara olan yollar için yol ayracı

icon = 'reader.png'

Bu aygıt için simge

UserAnnotation

alias of Annotation

OPEN_FEEDBACK_MESSAGE = None

GUI, durum çubuğunda Hiçbiri değilse bunu bir mesaj olarak görüntüler. Açılışın uzun zaman alabileceği durumlarda kullanışlıdır

VIRTUAL_BOOK_EXTENSIONS = frozenset({})

Aygıtta “sanal kitap” olan ve bu yüzden kitaplıkta görüntülenemeyen/kaydedilemeyen/eklenemeyen eklentiler kümesi. Örneğin: frozenset(['kobo'])

VIRTUAL_BOOK_EXTENSION_MESSAGE = None

Sanal kitap uzantıları için kullanıcıya gösterilecek mesaj.

NUKE_COMMENTS = None

Kitabın aygıta yollanan kopyasında yorumlar tamamen silinsin mi. None değilse bunun yorumların değiştirileceği kısa bir metin olması gerekir.

MANAGES_DEVICE_PRESENCE = False

If True indicates that this driver completely manages device detection, ejecting and so forth. If you set this to True, you must implement the detect_managed_devices and debug_managed_device_detection methods. A driver with this set to true is responsible for detection of devices, managing a blacklist of devices, a list of ejected devices and so forth. calibre will periodically call the detect_managed_devices() method and if it returns a detected device, calibre will call open(). open() will be called every time a device is returned even if previous calls to open() failed, therefore the driver must maintain its own blacklist of failed devices. Similarly, when ejecting, calibre will call eject() and then assuming the next call to detect_managed_devices() returns None, it will call post_yank_cleanup().

SLOW_DRIVEINFO = False

True olarak ayarlandıysa, calibre kitap listeleri yüklendikten sonra sürücü bilgisi almak için get_driveinfo() çağıracaktır.

ASK_TO_ALLOW_CONNECT = False

True olarak ayarlandıysa, calibre kullanıcıya aygıt ilk kez algılandığında aygıtı calibre ile yönetip isteyip istemediğini sorar. Bunu True olarak ayarlarsanız get_device_uid() ve ignore_connected_device() ve get_user_blacklisted_devices() ve set_user_blacklisted_devices() uygulamalısınız

user_feedback_after_callback = None

Bazı geri çağrılar çalıştırıldıktan sonra (şu an yalnızca upload_books) calibre’nin bir ileti penceresi açmasını sağlamak için bunu {‘title’:başlık, ‘msg’:ileti, ‘det_msg’:detaylı_ileti} biçiminde bir sözlük olarak ayarlayın. Kullanıcıyı bir sürü ileti ile sıkmamaya dikkat edin. Bu değişken her geri çağrıdan sonra kontrol edilir, yalnızca gerçekten ihtiyacınız olduğunda ayarlayın.

classmethod get_open_popup_message()[kaynak]

GUI displays this as a non-modal popup. Should be an instance of OpenPopupMessage

is_usb_connected(devices_on_system, debug=False, only_presence=False)[kaynak]

Bu eklenti ile ele alınan bir aygıt hali hazırda bağlıysa True, device_info döndür.

Parametreler:

devices_on_system – Hali hazırda bağlı olan aygıtlar

detect_managed_devices(devices_on_system, force_refresh=False)[kaynak]

Yalnızca MANAGES_DEVICE_PRESENCE True ise çağrılır.

Bu sürücünün ele alabileceği aygıtları tara. Bir aygıt bulunursa aygıt nesnesi döndürmelidir. Bu nesne open() metoduna connected_device olarak geçirilir. Aygıt bulunamazsa, None döndürür. Döndürülen nesne herşey olabilir, calibre bu nesneyi kullanmaz, sadece open()’a geçirilir.

Bu metod GUI tarafından aralıklarla çağrılır, fazla kaynak tüketmediğinden emin olun. Sistemi tekrar tekrar taramaktan kaçınmak için bir zula kullanın.

Parametreler:
  • devices_on_system – Sistemde bulunan USB aygıtları kümesi.

  • force_refresh – True ise ve sürücü tekrar taramalardan kaçınmak için zula kullanıyorsa, zula temizlenmelidir.

debug_managed_device_detection(devices_on_system, output)[kaynak]

Yalnızca MANAGES_DEVICE_PRESENCE True ise çağrılır.

Sistemde algılanan sürücüler hakkında bilgiyi dosya benzeri bir nesne olan çıktıya yazmalıdır.

Bir aygıt algılanmış ve başarıyla açılmışsa True, aksi halde False döndürmelidir.

reset(key='-1', log_packets=False, report_progress=None, detected_device=None)[kaynak]
Parametreler:
  • key – Aygıtın kilidini açacak tuş

  • log_packets – True ise aygıta giden/aygıttan gelen paket akışı kaydedilir

  • report_progress – Function that is called with a % progress (number between 0 and 100) for various tasks. If it is called with -1 that means that the task does not have any progress information

  • detected_device – Aygıt tarayıcıdan gelen aygıt bilgisi

can_handle_windows(usbdevice, debug=False)[kaynak]

Optional method to perform further checks on a device to see if this driver is capable of handling it. If it is not it should return False. This method is only called after the vendor, product ids and the bcd have matched, so it can do some relatively time intensive checks. The default implementation returns True. This method is called only on Windows. See also can_handle().

Note that for devices based on USBMS this method by default delegates to can_handle(). So you only need to override can_handle() in your subclass of USBMS.

Parametreler:

usbdevice – A usbdevice as returned by calibre.devices.winusb.scan_usb_devices()

can_handle(device_info, debug=False)[kaynak]

Unix version of can_handle_windows().

Parametreler:

device_info – (vid, pid, bcd, imalatçı, ürün, seri numarası) demeti

open(connected_device, library_uuid)[kaynak]

Tüm aygıta özel ilklendirmeleri yap. Aygıt algılandıktan sonra ama aygıtla iletişim kuran diğer fonksiyonlardan önce çağrılır. Örneğin: Kendilerini USB depolama aygıtı olarak tanıtan aygıtlarda, bu metod aygıtı bağlamakla veya aygıt otomatik bağlandıysa, nereye bağlandığını öğrenmekle sorumlu olur. calibre.devices.usbms.device.Device.open() metodunun bu fonksiyonun USB depolama aygıtlarıyla ilgili iyi bir örnek olacak uygulaması vardır.

Bu metod kullanıcıya bir ileti göstermek için bir OpenFeedback istisnası yükseltebilir.

Parametreler:
  • connected_device – The device that we are trying to open. It is a tuple of (vendor id, product id, bcd, manufacturer name, product name, device serial number). However, some devices have no serial number and on Windows only the first three fields are present, the rest are None.

  • library_uuid – Mevcut calibre kitaplığının UUID’si. Bir kitaplık yoksa None olabilir (örneğin komut satırından kullanıldığında).

eject()[kaynak]

Aygıtın işletim sisteminden bağını ayır/çıkart. Bu aygıtla iletişim kurmaya çalışan GUI işlerinin olup olmadığını kontrol etmez.

NOT: Bu metod diğer aygıt metodlarıyla aynı iş ipliğinde çağrılamayabilir.

post_yank_cleanup()[kaynak]

Kullanıcı aygıtı çıkarmadan birden çektiyse çağrılır.

set_progress_reporter(report_progress)[kaynak]

Süreç bilgisini raporlaması için bir fonksiyon ayarla.

Parametreler:

report_progress – Function that is called with a % progress (number between 0 and 100) for various tasks. If it is called with -1 that means that the task does not have any progress information

get_device_information(end_session=True)[kaynak]

Aygıtı aygıt bilgisi için sorgula. Bknz L{DeviceInfoQuery}.

Dönüşler:

(device name, device version, software version on device, MIME type) The tuple can optionally have a fifth element, which is a drive information dictionary. See usbms.driver for an example.

get_driveinfo()[kaynak]

driveinfo sözlüğünü döndür. Genellikle get_device_information() içinden çağrılır, ama bu sürücü için driveinfo yüklenmesi yavaşsa, SLOW_DRIVEINFO’yu ayarlamalıdır. Bu durumda, bu metod calibre tarafından kitap listeleri yüklendikten sonra çağrılır. Bunun aygıt iş ipliğinde çağrılmadığına dikkat edin, yani sürücü books() metodundaki aygıt bilgisini zulalamalı ve bu fonksiyon zulalanmış veriyi döndürmelidir.

card_prefix(end_session=True)[kaynak]

Kartlar üstündeki yollara 2 elemanlı ön ek listesi döndür. Herhangi bir kart yoksa kart ön eki olarak None ayarlanır. ÖRN. (‘/place’, ‘/place2’) (None, ‘place2’) (‘place’, None) (None, None)

total_space(end_session=True)[kaynak]
2 öğeli bir kartlar üstündeki yollara ön ekler listesi döndür. Herhangi bir kart mevcut değilse kart ön eki olarak None ayarlanır. ÖRN. (‘/place’, ‘/place2’) (None, ‘place2’) (‘place’, None) (None, None)
  1. Cihaz hafızası

  2. Hafıza Kartı A

  3. Hafıza Kartı B

Dönüşler:

(1, 2, 3) bayt toplam alanlı 3 elemanlı liste. Eğer herhangi bir aygıt bu konumlardan birine sahip değilse 0 döndürmelidir.

free_space(end_session=True)[kaynak]
Bağlantı noktalarında kullanılabilir olan boş alanı al:
  1. Cihaz hafızası

  2. Kart A

  3. Kart B

Dönüşler:

(1, 2, 3) bayt boş alanlı 3 elemanlı liste. Herhangi bir aygıt bu konumlardan birine sahip değilse -1 döndürmelidir.

books(oncard=None, end_session=True)[kaynak]

Return a list of e-books on the device.

Parametreler:

oncard – If ‘carda’ or ‘cardb’ return a list of e-books on the specific storage card, otherwise return list of e-books in main memory of device. If a card is specified and no books are on the card return empty list.

Dönüşler:

Bir KitapListesi.

upload_books(files, names, on_card=None, end_session=True, metadata=None)[kaynak]

Bir kitap listesini aygıta yükle. Aygıtta bir dosya zaten varsa, değiştirilmelidir. Bu metod aygıtta yeterli yer yoksa FreeSpaceError yükseltmelidir. FreeSpaceError’un metni on_card None değilse “card” kelimesini içermelidir, aksi durumda “memory” kelimesini içermelidir.

Parametreler:
  • files – Bir yol listesi

  • names – Kitapların aygıta yüklendikten sonra sahip olması gereken isimlerin listesi. len(isimler) == len(dosyalar)

  • metadata – None değilse, Metadata nesneleri listesidir. Ana fikir kitabı aygıtta nereye koyacağını metadata kullanarak belirlemektir. len(metadata) == len(dosyalar). Sıradan kapaktan ayrı olarak (kapağa yol), ayrıca isteğe bağlı kullanılabilecek küçük resim özniteliği olabilir. Küçük resim özniteliği (genişlik, yükseklik, jpeg olarak kapak verisi) biçimindedir.

Dönüşler:

3 elemanlı demetler listesi. Liste add_books_to_metadata() ya geçirilmek üzere düşünülmüştür.

classmethod add_books_to_metadata(locations, metadata, booklists)[kaynak]

Kitaplistelerine konumlar ekle. Bu fonksiyon aygıtla iletişime geçmemelidir.

Parametreler:
  • locations – L{upload_books} çağrısı sonucu

  • metadataMetadata nesneleri listesi, upload_books() için olanın aynısı.

  • booklists – (books(oncard=None)(), books(oncard='carda')(), :meth`books(oncard=’cardb’)`) çağrıları sonucunu içeren bir demet.

delete_books(paths, end_session=True)[kaynak]

Aygıtta yollardeki kitapları sil.

classmethod remove_books_from_metadata(paths, booklists)[kaynak]

Kitapları metadata listesinden çıkar. Bu fonksiyon aygıtla iletişime geçmemelidir.

Parametreler:
  • paths – aygıttaki kitaplara yollar.

  • booklists – (books(oncard=None)(), books(oncard='carda')(), :meth`books(oncard=’cardb’)`) çağrıları sonucunu içeren bir demet.

sync_booklists(booklists, end_session=True)[kaynak]

Aygıttaki metadata’yı güncelle.

Parametreler:

booklists – (books(oncard=None)(), books(oncard='carda')(), :meth`books(oncard=’cardb’)`) çağrıları sonucunu içeren bir demet.

get_file(path, outfile, end_session=True)[kaynak]

Aygıtta path yolundaki dosyayı oku ve çıktı dosyasına yaz.

Parametreler:

outfilesys.stdout benzeri bir dosya nesnesi veya bir open() çağrısı sonucu.

classmethod config_widget()[kaynak]

Bir QWidget döndürmelidir. QWidget aygıt arayüzü için ayarları içerir

classmethod save_settings(settings_widget)[kaynak]

Ayarları diske kaydetmelidir. config_widget() içinde oluşturulan parçacığı alır ve tüm ayarları diske kaydeder.

classmethod settings()[kaynak]

Bir opts nesnesi döndürmelidir. opts nesnesinin aygıt için biçimlerin sıralı listesi olan en az bir format_map özniteliği olmalıdır.

set_plugboards(plugboards, pb_func)[kaynak]

sürücüye mevcut santral kümesini ve belirli bir santrali seçmek için fonksiyonu sağla. Bu metod add_books ve sync_booklists’den hemen önce çağrılır.

pb_func şu imzaya sahip bir çağrılabilirdir:

def pb_func(aygıt_ismi, biçim, santraller)

Mevcut aygıt ismini (sınıf ismi veya DEVICE_PLUGBOARD_NAME), ilgilendiğiniz biçimi (‘gerçek’ bir biçim veya ‘device_db’), ve santralleri (bu metodu aldığınız yer de olan set_plugboards ile almıştınız) verirsiniz.

Dönüşler:

None veya tekli bir santral örneği.

set_driveinfo_name(location_code, name)[kaynak]

Driveinfo dosyasındaki aygıt adını ‘isim’ olarak ayarla. Bu ayar dosya tekrar oluşturulana veya ismi tekrar değiştirilene kadar kalacaktır.

Disk olmayan aygıtlar bu metodu get_device_information() metodundan dönen konum kodlarını temel alarak uygulamalıdırlar.

prepare_addable_books(paths)[kaynak]

Bir yol listesi verildiğinde, başka bir yol listesi döndürür. Bu yollar kitapların eklenebilir sürümlerini gösterir.

Bir kitap hazırlanırken hata olursa, bir yol yerine, bu kitap için döndürülen liste içindeki konum üçlü demet olmalıdır: (asıl_yol, istisna örneği, geri izleme)

startup()[kaynak]

Called when calibre is starting the device. Do any initialization required. Note that multiple instances of the class can be instantiated, and thus __init__ can be called multiple times, but only one instance will have this method called. This method is called on the device thread, not the GUI thread.

shutdown()[kaynak]

Calibre kapanırken çağrılır, tam kapanırken ya da yeniden başlatılırken. Gerekli temizliği yapın. Bu metod GUI iş ipliğinde değil aygıt sürecinde çağrılır.

get_device_uid()[kaynak]

Hazırda bağlı olan aygıt için benzersiz bir kimlik döndürmelidir (başarılı open() çağrısından hemen sonra çağrılır). ASK_TO_ALLOW_CONNECT = True ayarladıysanız bu metodu uygulamalısınız

ignore_connected_device(uid)[kaynak]

Gelecekte uid (get_device_uid() çağrısı sonucu) ile tanımlanan aygıtı göz ardı etmeli. ASK_TO_ALLOW_CONNECT = True ayarladıysanız bu metodu uygulamalısınız. Bu fonksiyon open() metodunun hemen ardından çağrılır, yani open() bir durumu zulalarsa, sürücü bu bu durumu sıfırlamalıdır.

get_user_blacklisted_devices()[kaynak]

Kullanıcının göz ardı edilmesini istediği tüm aygıtlar için aygıt uid’inden okunabilir isme haritayı döndür.

set_user_blacklisted_devices(devices)[kaynak]

Bu sürücü tarafından göz ardı edilmesi gereken aygıt uid listesini ayarla.

specialize_global_preferences(device_prefs)[kaynak]

Aygıtınız belirli bir tercihi ezmek istiyorsa bu metodu uygulayın. Ezilebilir tercih isteyen tüm çağrı sitelerinin prefs[‘bir şeyler’] yerine device_prefs[‘bir şeyler’] kullandığından emin olmalısınız. Metodunuz device_prefs.set_overrides(pref=val, pref=val, …) çağırlmalıdır. Mevcut durumda şunun için kullanılır: metadata yönetimi (prefs[‘manage_device_metadata’])

set_library_info(library_name, library_uuid, field_metadata)[kaynak]

Mevcut calibre kitaplığıyla ilgili bilgi istiyorsanız bu metodu uygulayın. Bu metod açılışta ve bağlıyken calibre kitaplığı değiştiğinde çağrılır.

is_dynamically_controllable()[kaynak]

Eklentiler başlatılırken aygıt yöneticisi tarafından çağrılır. Bu metod karakter dizisi döndürürse, a) aygıt yöneticisinin dinamik kontrol ara yüzünü destekler, ve b) bu isim eklentiyle konuşurken kullanılır.

Bu metod GUI sürecinde çağrılabilir. Bu metodu uygulayan bir sürücü iş ipliği güvenliği sağlamalıdır.

start_plugin()[kaynak]

Bu metod eklentiyi başlatmak için çağrılır. Eklenti aygıt bağlantılarını her nasıl yapıyorsa öyle kabul etmeye başlamalıdır. Eklenti zaten bağlantı kabul ediyorsa, bir şey yapma.

Bu metod GUI sürecinde çağrılabilir. Bu metodu uygulayan bir sürücü iş ipliği güvenliği sağlamalıdır.

stop_plugin()[kaynak]

Bu metod eklentiyi durdurmak için çağrılır. Eklenti artık bağlantı kabul etmemeli, ve arkasını temizlemelidir. shutdown’u bu metodun çağırması beklenebilir. Eklenti zaten bağlantı kabul etmiyorsa, bir şey yapma.

Bu metod GUI sürecinde çağrılabilir. Bu metodu uygulayan bir sürücü iş ipliği güvenliği sağlamalıdır.

get_option(opt_string, default=None)[kaynak]

opt_string tarafından gösterilen seçeneğin değerini döndür. Bu metod eklenti başlatılmadığında çağrılabilir. Seçenek mevcut değilse None döndür.

Bu metod GUI sürecinde çağrılabilir. Bu metodu uygulayan bir sürücü iş ipliği güvenliği sağlamalıdır.

set_option(opt_string, opt_value)[kaynak]

opt_string tarafından gösterilen seçeneğin değerini ayarla. Bu metod eklenti başlatılmadan çağrılabilir.

Bu metod GUI sürecinde çağrılabilir. Bu metodu uygulayan bir sürücü iş ipliği güvenliği sağlamalıdır.

is_running()[kaynak]

Eklenti başlatıldıysa True döndür, yoksa false

Bu metod GUI sürecinde çağrılabilir. Bu metodu uygulayan bir sürücü iş ipliği güvenliği sağlamalıdır.

synchronize_with_db(db, book_id, book_metadata, first_call)[kaynak]

Called during book matching when a book on the device is matched with a book in calibre’s db. The method is responsible for synchronizing data from the device to calibre’s db (if needed).

Metod iki değerli bir demet döndürmelidir. İlk değer calibre veri tabanı değiştiyse değişen kitap kimliklerinin kümesi veya değişmediyse None’dir. İlk değer boş bir kümeyse aygıttaki kitap metadata’sı calibre’nin metadata’sıyla güncellenir ve aygıta geri verilir, ama bu kitabın GUI tazelemesi yapılmaz. Calibre verisi doğruyken ve aygıta gönderilmesi gerekiyorken faydalıdır.

The second value is itself a 2-value tuple. The first value in the tuple specifies whether a book format should be sent to the device. The intent is to permit verifying that the book on the device is the same as the book in calibre. This value must be None if no book is to be sent, otherwise return the base file name on the device (a string like foobar.epub). Be sure to include the extension in the name. The device subsystem will construct a send_books job for all books with not- None returned values. Note: other than to later retrieve the extension, the name is ignored in cases where the device uses a template to generate the file name, which most do. The second value in the returned tuple indicated whether the format is future-dated. Return True if it is, otherwise return False. calibre will display a dialog to the user listing all future dated books.

Çok önemli: bu metod GUI sürecinde çalışır. Aygıt yöneticisinin iş ipliğine dikkat ederek iş ipliği güvenli olmalıdır.

book_id: kitap için veri tabanındaki calibre kimliği. book_metadata: aygıttan gelen kitap için Metadata nesnesi. first_call: Bir eşzamanlama sırasında bu ilk çağrıysa True, aksi halde False

class calibre.devices.interface.BookList(oncard, prefix, settings)[kaynak]

Bases: list

Kitap listesi. Her bir Book nesnesinin alanları olmalıdır

  1. başlık

  2. yazarlar

  3. boyut (kitabın dosya boyutu)

  4. datetime (UTC tarih demeti)

  5. yol (aygıtta kitaba olan yol)

  6. küçük resim (None olabilir) küçük resim ya resim verisini tutan bir karakter dizisi/bayt nesnesi olmalı ya da resme mutlak yolu (platforma göre) içeren bir image_path özniteliği olmalıdır

  7. etiketler (bir karakter dizisi listesi, boş olabilir).

supports_collections()[kaynak]

Aygıt bu kitap listesi için koleksiyonları destekliyorsa True döndür.

add_book(book, replace_metadata)[kaynak]

Kitabı kitap listesine ekle. Amaç tüm aygıt-dahili metadatayı yönetmektir. Kitaplisteleri eşzamanlanmalıysa True döndür

remove_book(book)[kaynak]

Bir kitabı kitap listesinden çıkar. Aynı zamanda tüm aygıt metadata’sını düzelt

get_collections(collection_attributes)[kaynak]

collection_attributes’dan oluşturulan koleksiyon sözlüğü döndür. Sözlükteki her girdi koleksiyon_ismi:[kitap listesi] biçimindedir

Kitap listesi, serilerden oluşturulan koleksiyonlar dışında - bu durumda series_index kullanılır - kitap başlığına göre sıralanır.

Parametreler:

collection_attributes – Kitap nesnesinin öznitelik listesi

USB Depolama temelli aygıtlar

Bu tarz aygıtlar için temel sınıf :class:`calibre.devices.usbms.driver.USBMS`dir. Bu sınıf bazı işlevlerini aşağıda belgelendiği gibi temel aldıkları sınıflardan alırlar. Genel basit bir USBMS tabanlı sürücü şuna benzer:

from calibre.devices.usbms.driver import USBMS

class PDNOVEL(USBMS):
    name = 'Pandigital Novel device interface'
    gui_name = 'PD Novel'
    description = _('Communicate with the Pandigital Novel')
    author = 'Kovid Goyal'
    supported_platforms = ['windows', 'linux', 'osx']
    FORMATS = ['epub', 'pdf']

    VENDOR_ID   = [0x18d1]
    PRODUCT_ID  = [0xb004]
    BCD         = [0x224]

    THUMBNAIL_HEIGHT = 144

    EBOOK_DIR_MAIN = 'eBooks'
    SUPPORTS_SUB_DIRS = False

    def upload_cover(self, path, filename, metadata):
        coverdata = getattr(metadata, 'thumbnail', None)
        if coverdata and coverdata[2]:
            with open('%s.jpg' % os.path.join(path, filename), 'wb') as coverfile:
                coverfile.write(coverdata[2])
class calibre.devices.usbms.device.Device(plugin_path)[kaynak]

Bases: DeviceConfig, DevicePlugin

Bu sınıf kendini USB Depolama aygıtı olarak aktaran aygıtların tüm sürücüleri için genel mantığı sağlar. Tüm platformlarda geçerli USBMS bağlama/çıkarma uygulamalarını sağlar.

VENDOR_ID = 0

VENDOR_ID bir tam sayı, tamsayı listesi veya sözlük olabilir. Bir sözlükse, sözlüklerin sözlüğü olmalıdır, şu şekilde:

{
 integer_vendor_id : { product_id : [list of BCDs], ... },
 ...
}
PRODUCT_ID = 0

Bir tam sayı veya tam sayı listesi

BCD = None

BCD BCD tabanlı aygıtlar arasında ayrı kalmaması için None olabilir, veya bu sürücü tarafından desteklenen tüm aygıtların BCD numaralarından oluşan liste olabilir.

WINDOWS_MAIN_MEM = None

String identifying the main memory of the device in the Windows PnP id strings This can be None, string, list of strings or compiled regex

WINDOWS_CARD_A_MEM = None

String identifying the first card of the device in the Windows PnP id strings This can be None, string, list of strings or compiled regex

WINDOWS_CARD_B_MEM = None

String identifying the second card of the device in the Windows PnP id strings This can be None, string, list of strings or compiled regex

OSX_MAIN_MEM_VOL_PAT = None

Used by the new driver detection to disambiguate main memory from storage cards. Should be a regular expression that matches the main memory mount point assigned by macOS

BACKLOADING_ERROR_MESSAGE = None
MAX_PATH_LEN = 250

Aygıtta oluşturulan azami yol uzunluğu

NEWS_IN_FOLDER = True

Haberleri kendi dizinine koy

reset(key='-1', log_packets=False, report_progress=None, detected_device=None)[kaynak]
Parametreler:
  • key – Aygıtın kilidini açacak tuş

  • log_packets – True ise aygıta giden/aygıttan gelen paket akışı kaydedilir

  • report_progress – Function that is called with a % progress (number between 0 and 100) for various tasks. If it is called with -1 that means that the task does not have any progress information

  • detected_device – Aygıt tarayıcıdan gelen aygıt bilgisi

set_progress_reporter(report_progress)[kaynak]

Süreç bilgisini raporlaması için bir fonksiyon ayarla.

Parametreler:

report_progress – Function that is called with a % progress (number between 0 and 100) for various tasks. If it is called with -1 that means that the task does not have any progress information

card_prefix(end_session=True)[kaynak]

Kartlar üstündeki yollara 2 elemanlı ön ek listesi döndür. Herhangi bir kart yoksa kart ön eki olarak None ayarlanır. ÖRN. (‘/place’, ‘/place2’) (None, ‘place2’) (‘place’, None) (None, None)

total_space(end_session=True)[kaynak]
2 öğeli bir kartlar üstündeki yollara ön ekler listesi döndür. Herhangi bir kart mevcut değilse kart ön eki olarak None ayarlanır. ÖRN. (‘/place’, ‘/place2’) (None, ‘place2’) (‘place’, None) (None, None)
  1. Cihaz hafızası

  2. Hafıza Kartı A

  3. Hafıza Kartı B

Dönüşler:

(1, 2, 3) bayt toplam alanlı 3 elemanlı liste. Eğer herhangi bir aygıt bu konumlardan birine sahip değilse 0 döndürmelidir.

free_space(end_session=True)[kaynak]
Bağlantı noktalarında kullanılabilir olan boş alanı al:
  1. Cihaz hafızası

  2. Kart A

  3. Kart B

Dönüşler:

(1, 2, 3) bayt boş alanlı 3 elemanlı liste. Herhangi bir aygıt bu konumlardan birine sahip değilse -1 döndürmelidir.

windows_sort_drives(drives)[kaynak]

Called to disambiguate main memory and storage card for devices that do not distinguish between them on the basis of WINDOWS_CARD_NAME. For example: The EB600

can_handle_windows(usbdevice, debug=False)[kaynak]

Optional method to perform further checks on a device to see if this driver is capable of handling it. If it is not it should return False. This method is only called after the vendor, product ids and the bcd have matched, so it can do some relatively time intensive checks. The default implementation returns True. This method is called only on Windows. See also can_handle().

Note that for devices based on USBMS this method by default delegates to can_handle(). So you only need to override can_handle() in your subclass of USBMS.

Parametreler:

usbdevice – A usbdevice as returned by calibre.devices.winusb.scan_usb_devices()

open(connected_device, library_uuid)[kaynak]

Tüm aygıta özel ilklendirmeleri yap. Aygıt algılandıktan sonra ama aygıtla iletişim kuran diğer fonksiyonlardan önce çağrılır. Örneğin: Kendilerini USB depolama aygıtı olarak tanıtan aygıtlarda, bu metod aygıtı bağlamakla veya aygıt otomatik bağlandıysa, nereye bağlandığını öğrenmekle sorumlu olur. calibre.devices.usbms.device.Device.open() metodunun bu fonksiyonun USB depolama aygıtlarıyla ilgili iyi bir örnek olacak uygulaması vardır.

Bu metod kullanıcıya bir ileti göstermek için bir OpenFeedback istisnası yükseltebilir.

Parametreler:
  • connected_device – The device that we are trying to open. It is a tuple of (vendor id, product id, bcd, manufacturer name, product name, device serial number). However, some devices have no serial number and on Windows only the first three fields are present, the rest are None.

  • library_uuid – Mevcut calibre kitaplığının UUID’si. Bir kitaplık yoksa None olabilir (örneğin komut satırından kullanıldığında).

eject()[kaynak]

Aygıtın işletim sisteminden bağını ayır/çıkart. Bu aygıtla iletişim kurmaya çalışan GUI işlerinin olup olmadığını kontrol etmez.

NOT: Bu metod diğer aygıt metodlarıyla aynı iş ipliğinde çağrılamayabilir.

post_yank_cleanup()[kaynak]

Kullanıcı aygıtı çıkarmadan birden çektiyse çağrılır.

sanitize_callback(path)[kaynak]

Bağımsız aygıt sürücülerin create_upload_path() tarafından kullanılan yol düzenlemesini ezmesine izin veren geri çağrı.

filename_callback(default, mi)[kaynak]

Sürücülerin create_upload_path() tarafından ayarlanan varsayılan dosya ismini değiştirmesine izin veren geri çağrı.

sanitize_path_components(components)[kaynak]

Aygıta yüklenecek dosyalar için yol bileşenlerinde aygıta özel tüm düzenlemeleri yap

get_annotations(path_map)[kaynak]

path_map’i aygıtta bulunan dosyaların annotation_map’ine çöz

add_annotation_to_library(db, db_id, annotation)[kaynak]

Calibre kitaplığına bir dipnot ekle

class calibre.devices.usbms.cli.CLI[kaynak]
class calibre.devices.usbms.driver.USBMS(plugin_path)[kaynak]

Bases: CLI, Device

Tüm USBMS aygıtlar için temel sınıf. Gönderme/alma/metadata güncelleme/metadata zulalama/vs. için mantığı uygular

description = 'Bir eKitap okuyucusu ile bağlantı kur.'

Bu eklentinin ne yaptığını anlatan kısa karakter dizisi

author = 'John Schember'

Eklentinin yazarı

supported_platforms = ['windows', 'osx', 'linux']

Bu eklentinin çalıştığı platformların listesi. Örneğin: ['windows', 'osx', 'linux']

booklist_class

alias of BookList

book_class

alias of Book

FORMATS = []

Desteklenen biçimlerin sıralı listesi

CAN_SET_METADATA = []

Kitaplardaki metadata’nın GUI ile ayarlanıp ayarlanamayacağı.

get_device_information(end_session=True)[kaynak]

Aygıtı aygıt bilgisi için sorgula. Bknz L{DeviceInfoQuery}.

Dönüşler:

(device name, device version, software version on device, MIME type) The tuple can optionally have a fifth element, which is a drive information dictionary. See usbms.driver for an example.

set_driveinfo_name(location_code, name)[kaynak]

Driveinfo dosyasındaki aygıt adını ‘isim’ olarak ayarla. Bu ayar dosya tekrar oluşturulana veya ismi tekrar değiştirilene kadar kalacaktır.

Disk olmayan aygıtlar bu metodu get_device_information() metodundan dönen konum kodlarını temel alarak uygulamalıdırlar.

books(oncard=None, end_session=True)[kaynak]

Return a list of e-books on the device.

Parametreler:

oncard – If ‘carda’ or ‘cardb’ return a list of e-books on the specific storage card, otherwise return list of e-books in main memory of device. If a card is specified and no books are on the card return empty list.

Dönüşler:

Bir KitapListesi.

upload_books(files, names, on_card=None, end_session=True, metadata=None)[kaynak]

Bir kitap listesini aygıta yükle. Aygıtta bir dosya zaten varsa, değiştirilmelidir. Bu metod aygıtta yeterli yer yoksa FreeSpaceError yükseltmelidir. FreeSpaceError’un metni on_card None değilse “card” kelimesini içermelidir, aksi durumda “memory” kelimesini içermelidir.

Parametreler:
  • files – Bir yol listesi

  • names – Kitapların aygıta yüklendikten sonra sahip olması gereken isimlerin listesi. len(isimler) == len(dosyalar)

  • metadata – None değilse, Metadata nesneleri listesidir. Ana fikir kitabı aygıtta nereye koyacağını metadata kullanarak belirlemektir. len(metadata) == len(dosyalar). Sıradan kapaktan ayrı olarak (kapağa yol), ayrıca isteğe bağlı kullanılabilecek küçük resim özniteliği olabilir. Küçük resim özniteliği (genişlik, yükseklik, jpeg olarak kapak verisi) biçimindedir.

Dönüşler:

3 elemanlı demetler listesi. Liste add_books_to_metadata() ya geçirilmek üzere düşünülmüştür.

upload_cover(path, filename, metadata, filepath)[kaynak]

Kitap kapağını aygıta yükle. Varsayılan uygulama hiçbir şey yapmaz.

Parametreler:
  • path – İlgili kitabın bulunduğu klasörün tam yolu.

  • filename – Kitap dosyasının uzantısız ismi.

  • metadata – kitaba ait metadata. Kapak için metadata.thumbnail kullanın

  • filepath – E-kitap dosyasının tam yolu

add_books_to_metadata(locations, metadata, booklists)[kaynak]

Kitaplistelerine konumlar ekle. Bu fonksiyon aygıtla iletişime geçmemelidir.

Parametreler:
  • locations – L{upload_books} çağrısı sonucu

  • metadataMetadata nesneleri listesi, upload_books() için olanın aynısı.

  • booklists – (books(oncard=None)(), books(oncard='carda')(), :meth`books(oncard=’cardb’)`) çağrıları sonucunu içeren bir demet.

delete_books(paths, end_session=True)[kaynak]

Aygıtta yollardeki kitapları sil.

remove_books_from_metadata(paths, booklists)[kaynak]

Kitapları metadata listesinden çıkar. Bu fonksiyon aygıtla iletişime geçmemelidir.

Parametreler:
  • paths – aygıttaki kitaplara yollar.

  • booklists – (books(oncard=None)(), books(oncard='carda')(), :meth`books(oncard=’cardb’)`) çağrıları sonucunu içeren bir demet.

sync_booklists(booklists, end_session=True)[kaynak]

Aygıttaki metadata’yı güncelle.

Parametreler:

booklists – (books(oncard=None)(), books(oncard='carda')(), :meth`books(oncard=’cardb’)`) çağrıları sonucunu içeren bir demet.

classmethod normalize_path(path)[kaynak]

Yolu platforma özel yol ayraçlarıyla döndür

Kullanıcı arayüzü eylemleri

If you are adding your own plugin in a ZIP file, you should subclass both InterfaceActionBase and InterfaceAction. The load_actual_plugin() method of your InterfaceActionBase subclass must return an instantiated object of your InterfaceBase subclass.

class calibre.gui2.actions.InterfaceAction(parent, site_customization)[kaynak]

Bases: QObject

Grafik kullanıcı arayüzüne alınabilecek bir “eylemi” temsil eden bir eklenti. Araç çubuğundaki tüm öğeler ve içerik menüsü bu eklentilerce uygulanır.

Bu sınıfın bu eklentiler için taban sınıf olduğunu unutmayın, ancak, eklentiyi calibre’nin eklenti sistemiyle birleştirmek için, asıl eklentiye referans eden bir kapsayıcı sınıf yapmalısınız. Örnekler için calibre.customize.builtins modülüne göz atın.

İki InterfaceAction nesnesi aynı isme sahipse, yüksek öncelikli olan önce gelir.

Sub-classes should implement the genesis(), library_changed(), location_selected(), shutting_down(), initialization_complete() and tag_browser_context_action() methods.

İlklendirildikten sonra, bu eklentinin gui üyesi ile ana calibre GUI’sine erişimi vardır. Diğer eklentilere isimle erişebilirsiniz, örneğin:

self.gui.iactions['Save To Disk']

Asıl eklentiye erişmek için, interface_action_base_plugin özniteliğini kullanın, bu öznitelik yalnızca eklenti kendisi ilklendirildiğinde kullanılabilir olur. do_user_config() gibi eklenti sınıfından metodlar kullanmak istediğinizde faydalıdır.

action_spec tarafından belirtilen QAction self.qaction olarak otomatik olarak oluşturulur ve kullanılabilir.

name = 'Implement me'

Eklenti adı. Aynı isme sahip iki eklenti varsa, yüksek öncelikli olan seçilir.

priority = 1

Eklenti önceliği. Aynı isme sahip iki eklenti varsa, yüksek öncelikli olan seçilir.

popup_type = 1

Bu eklentinin araç çubuğuna eklenmesi durumu için menü açılır pencere türü

auto_repeat = False

Bu eylemin kısayol tuşu basılı tutulduğunda otomatik olarak yinelenip yinelenmeyeceği.

action_spec = ('text', 'icon', None, None)

Of the form: (text, icon_path, tooltip, keyboard shortcut). icon, tooltip and keyboard shortcut can be None. keyboard shortcut must be either a string, None or tuple of shortcuts. If None, a keyboard shortcut corresponding to the action is not registered. If you pass an empty tuple, then the shortcut is registered with no default key binding.

action_shortcut_name = None

If not None, used for the name displayed to the user when customizing the keyboard shortcuts for the above action spec instead of action_spec[0]

action_add_menu = False

True ise, bir menü self.qaction’a otomatik olarak oluşturulur ve eklenir

action_menu_clone_qaction = False

True ise, self.qaction’un bir kopyası self.qaction’un menüsüne eklenir. Bu eylemin metninin self.qaction’dakinden farklı olmasını isterseniz, bu değişkeni yeni metne ayarlayın

dont_add_to = frozenset({})

Bu eylemin eklenmemesi gereken konumlar kümesi. Muhtemel konumlar listesi için :attr:`all_locations`a göz atın

dont_remove_from = frozenset({})

Bu eylemin çıkarılmaması gereken konumlar kümesi. Muhtemel konumlar listesi için :attr:`all_locations`a göz atın

action_type = 'global'

‘current’ türünden bir eylem mevcut görünüm üzerinde hareket, ‘global’ ise mevcut görnüm değil bir bütün olarak calibre üzerinde hareket anlamına gelir

accepts_drops = False

True ise, bu interfaceAction sürükle bırak eylemleriyle etkileşme şansına sahip olacaktır. Detaylar için accept_enter_event(), :meth`:accept_drag_move_event`, drop_event() metodlarına göz atın.

accept_enter_event(event, mime_data)[kaynak]

Bu metod bu arayüz eylemi sürükleme olayını yapabilme becerisine sahipse True döndürmeli. Olayda kabul et/göz ardı et çağırmayın, bu calibre UI’si tarafından halledilir.

accept_drag_move_event(event, mime_data)[kaynak]

Bu metod bu arayüz eylemi sürükleme olayını yapabilme becerisine sahipse True döndürmeli. Olayda kabul et/göz ardı et çağırmayın, bu calibre UI’si tarafından halledilir.

drop_event(event, mime_data)[kaynak]

Bu metod bazı kullanışlı eylemler gerçekleştirmeli ve bu arayüz bırak eylemini yapabilme becerisine sahipse True döndürmeli. Olayda kabul et/göz ardı et çağırmayın, bu calibre UI’si tarafından halledilir. Bu fonksiyonda engelleyici/uzun işlemler yapmayın. Bunun yerine bir sinyal yayın veeya bir QTimer.singleShot kullanın ve çabucak dönün. Örnekler için dahili eylemlere göz atabilirsiniz.

create_menu_action(menu, unique_name, text, icon=None, shortcut=None, description=None, triggered=None, shortcut_name=None, persist_shortcut=False)[kaynak]

Convenience method to easily add actions to a QMenu. Returns the created QAction. This action has one extra attribute calibre_shortcut_unique_name which if not None refers to the unique name under which this action is registered with the keyboard manager.

Parametreler:
  • menu – Yeni oluşturulan eylemin ekleneceği QMenu

  • unique_name – A unique name for this action, this must be globally unique, so make it as descriptive as possible. If in doubt, add an UUID to it.

  • text – Eylem metni.

  • icon – Either a QIcon or a file name. The file name is passed to the QIcon.ic() builtin, so you do not need to pass the full path to the images folder.

  • shortcut – Bir karakter dizisi, karakter dizisi listesi, None veya False. False ise, bu eylem için klavye kısayolu kaydedilmez. None ise, varsayılan bağlayıcısı olmayan bir klavye kısayolu kaydedilir. Karakter dizisi ve karakter dizisi listeleri belirtilen varsayılan tuş atamasını kaydeder.

  • description – Bu eylem için tanım. Araç ipuçlarını ayarlamak için kullanılır.

  • triggered – Oluşturulan eylemin tetiklenen sinyaline bağlanmak üzere bir çağrılabilir.

  • shortcut_name – The text displayed to the user when customizing the keyboard shortcuts for this action. By default it is set to the value of text.

  • persist_shortcut – Shortcuts for actions that don’t always appear, or are library dependent, may disappear when other keyboard shortcuts are edited unless `persist_shortcut` is set True.

load_resources(names)[kaynak]

Bu eklenti bir ZIP dosyasıyla gelirse (kullanıcı tarafından eklenmiş eklenti), bu metod ZIP dosyasından kaynakları yüklemenizi sağlar.

Örneğin bir resmi yüklemek için:

pixmap = QPixmap()
pixmap.loadFromData(tuple(self.load_resources(['images/icon.png']).values())[0])
icon = QIcon(pixmap)
Parametreler:

names – Ayırıcı olarak / kullanılarak ZIP dosyasındaki kaynaklara giden yolların listesi

Dönüşler:

A dictionary of the form {name : file_contents}. Any names that were not found in the ZIP file will not be present in the dictionary.

genesis()[kaynak]

Bu eklentiyi kur. Yalnızca ilklendirme aşamasında bir kere çağrılır. self.gui kullanılabilirdir. action_spec tarafından belirtilen eylem self.qaction ile kullanılabilir.

location_selected(loc)[kaynak]

Calibre’de gösterilen kitap listesi her değiştiğinde çağrılır. Şu an loc için değerler: kitaplık, ana, kart ve kartb.

Bu metod bu eylemi ve alt eylemlerini konuma uygun olarak açmalı/kapamalı.

library_about_to_change(olddb, db)[kaynak]

Mevcut kitaplık değiştiğinde çağrılır.

Parametreler:
  • olddb – The LibraryDatabase corresponding to the previous library.

  • db – The LibraryDatabase corresponding to the new library.

library_changed(db)[kaynak]

Mevcut kitaplık değiştiğinde çağrılır.

Parametreler:

db – Mevcut kitaplığa karşılık gelen LibraryDatabase.

gui_layout_complete()[kaynak]

Ana GUI’nin yerleşimi tamamlandığında her eylem için bir kere çağrılır. Eyleminiz yerleşimde değişiklik yapmalıysa, bu değişiklikler initialization_complete() yerine burada olmalıdır.

initialization_complete()[kaynak]

Ana GUI ilklendirmesi bittiğinde her eylem için bir kere çağrılır.

tag_browser_context_action(index)[kaynak]

Called when displaying the context menu in the Tag browser. index is the QModelIndex that points to the Tag browser item that was right clicked. Test it for validity with index.valid() and get the underlying TagTreeItem object with index.data(Qt.ItemDataRole.UserRole). Any action objects yielded by this method will be added to the context menu.

shutting_down()[kaynak]

Ana GUI kapanma evresindeyken her eklenti için bir kere çağrılır. Kullanılan kaynakları bırakın, ama kapatmayı uzun süre engellememeye çalışın.

class calibre.customize.InterfaceActionBase(*args, **kwargs)[kaynak]

Temeller: Plugin

supported_platforms = ['windows', 'osx', 'linux']

Bu eklentinin çalıştığı platformların listesi. Örneğin: ['windows', 'osx', 'linux']

author = 'Kovid Goyal'

Eklentinin yazarı

type = 'Kullanıcı arayüzü eylemi'

Eklenti türü. Eklentileri GUI’de kategorize etmek için kullanılır

can_be_disabled = False

False ise, kullanıcının bu eklentiyi kapatma şansı olmayacaktır. Dikkatli kullanın.

load_actual_plugin(gui)[kaynak]

Bu metod asıl arayüz eylem eklenti nesnesini döndürmeli.

Preferences plugins

class calibre.customize.PreferencesPlugin(plugin_path)[kaynak]

Temeller: Plugin

Tercihler iletişim penceresinde gösterilen bir parçacığı temsil eden eklenti.

Bu eklentinin sadece bir önemli metodu var create_widget(). Eklentinin çeşitli alanları UI’de nasıl kategorilendiğini kontrol eder.

supported_platforms = ['windows', 'osx', 'linux']

Bu eklentinin çalıştığı platformların listesi. Örneğin: ['windows', 'osx', 'linux']

author = 'Kovid Goyal'

Eklentinin yazarı

type = 'Tercihler'

Eklenti türü. Eklentileri GUI’de kategorize etmek için kullanılır

can_be_disabled = False

False ise, kullanıcının bu eklentiyi kapatma şansı olmayacaktır. Dikkatli kullanın.

config_widget = None

ConfigWidget adında ConfigWidgetInterface’yi uygulayan sınıfı içeren modüle yolu içe aktar. create_widget() tarafından kullanılır.

category_order = 100

Bu eklentinin :attr:`category`si kategori listesinden nerede bulunmalı.

name_order = 100

Bu eklentinin :attr:`gui_name`si bir kategorideki isimler listesinde nerede bulunmalı

category = None

Bu eklentinin bulunması gereken kategori

gui_category = None

Bu eklenti için kullanıcıya gösterilecek kategori ismi

gui_name = None

Bu eklenti için kullanıcıya gösterilecek isim

icon = None

Eklenti simgesi, mutlak yol olmalıdır

description = None

Araç ipuçları ve benzerleri için kullanılacak tanımlama

create_widget(parent=None)[kaynak]

Bu tercih grubunu ayarlamak için kullanılan asıl Qt parçacığını oluştur ve döndür. Parçacık :class:`calibre.gui2.preferences.ConfigWidgetInterface`yi uygulamalıdır.

Varsayılan uygulama parçacığı ilklendirmek için config_widget kullanır.

class calibre.gui2.preferences.ConfigWidgetInterface[kaynak]

Bu sınıf Tercihler iletişim penceresinde gösterilen tüm parçacıkların uygulaması gereken arayüzü tanımlar. Bu arayüzü uygulayan ve çeşitli kolaylık sağlayıcı metod tanımlayan ConfigWidgetBase taban sınıfına göz atın.

changed_signal = None

Bu sinyal kullanıcı bu parçacıkta her değişiklik yaptığında yayılmalıdır

supports_restoring_to_defaults = True

restore_to_defaults() metodu uygulanmışsa True olarak ayarla.

restore_defaults_desc = "Varsayılan ayarları yükle. Bu işlemi tamamlamak için Tamam'a tıklamalısınız."

“Varsayılanları geri yükle” düğmesine ilişkin ipucu

restart_critical = False

True ise Tercihler iletişim penceresi kullanıcının daha fazla tercih ayarlamasına izin vermez. Yalnızca commit() True döndürdüğünde etkilidir.

genesis(gui)[kaynak]

Parçacık görüntülenmeden önce bir kere çağrılır, gerekli tüm kurulumu gerçekleştirmelidir.

Parametreler:

gui – Ana calibre grafik kullanıcı arayüzü

initialize()[kaynak]

Tüm yapılandırma değerlerini başlangıç ​​değerlerine (yapılandırma dosyalarında saklanan değerler) ayarlamanız gerekir. Bir “return” ifadesi isteğe bağlıdır. İletişim kutusunun gösterilmemesi durumunda False değerini döndürün.

restore_defaults()[kaynak]

Tüm yapılandırma değerlerini varsayılan değerlerine ayarlamalıdır.

commit()[kaynak]

Değişen ayarları kaydet. Değişiklikler yeniden başlatma gerektiriyorsa True döndür, aksi halde False. Bir hata olduğunu belirtmek için bir AbortCommit istisnası yükselt. Hatanın ne olduğu ve nasıl düzeltileceğiyle ilgili kullanıcıya bilgi vermek sizin sorumluluğunuzdadır.

refresh_gui(gui)[kaynak]

Bu parçacık işlendikten sonra bir kere çağrılır. Gui’nin değiştirilen ayarları tekrar okumasına yol açmakla sorumludur. Varsayılan olarak GUI çeşitli öğeleri zaten tekrar ilklendirir, yani çoğu parçacığın bu metodu kullanmasına gerek yoktur.

initial_tab_changed()[kaynak]

Başlangıçta görüntülenen sekme, widget gösterilmeden önce ancak başlatıldıktan sonra değiştirilirse çağrılır.

class calibre.gui2.preferences.ConfigWidgetBase(parent=None)[kaynak]

Kolayca standart kontrol kutuları, açılır kapanır kutular, metin alanları benzeri parçacıklar eklemek için kod içeren temel sınıf. register() metoduna göz atın.

Bu sınıf kaydedilen ayarlar için bildirim değişikliği, varsayılana geri dönme, gui nesneleri ve ayar nesneleri arası geçişleri vs. otomatik yönetir.

Eğer yapılandırma parçacığınız bu sınıftan türemiş fakat kaydedilmemiş ayarlar içeriyorsa, ConfigWidgetInterface metodlarını ezmeli ve ezilen metodlar içinden taban sınıfın metodlarını çağırmalısınız.

changed_signal

Bu sinyal kullanıcı bu parçacıkta her değişiklik yaptığında yayılmalıdır

supports_restoring_to_defaults = True

restore_to_defaults() metodu uygulanmışsa True olarak ayarla.

restart_critical = False

True ise Tercihler iletişim penceresi kullanıcının daha fazla tercih ayarlamasına izin vermez. Yalnızca commit() True döndürdüğünde etkilidir.

register(name, config_obj, gui_name=None, choices=None, restart_required=False, empty_string_is_None=True, setting=<class 'calibre.gui2.preferences.Setting'>)[kaynak]

Bir ayar kaydet.

Parametreler:
  • name – Ayar adı

  • config_obj – Ayarı okuyan/yazan yapılandırma nesnesi

  • gui_name – Ayarın değiştirilebilmesi için bir arayüz sunan GUI nesnesinin adı. Varsayılan olarak 'opt_' + isim beklenir.

  • choices – Bu ayar çoklu seçim (açılır kutu) temelli bir ayarsa, seçimler listesi. Liste [(gui ismi, değer), ...] şeklinde ikili demetler listesidir

  • setting – Bu ayarı yönetmekle sorumlu sınıf. Varsayılan sınıf nerdeyse tüm durumları ele alır, yani bu parametre nadiren kullanılır.

initialize()[kaynak]

Tüm yapılandırma değerlerini başlangıç ​​değerlerine (yapılandırma dosyalarında saklanan değerler) ayarlamanız gerekir. Bir “return” ifadesi isteğe bağlıdır. İletişim kutusunun gösterilmemesi durumunda False değerini döndürün.

commit(*args)[kaynak]

Değişen ayarları kaydet. Değişiklikler yeniden başlatma gerektiriyorsa True döndür, aksi halde False. Bir hata olduğunu belirtmek için bir AbortCommit istisnası yükselt. Hatanın ne olduğu ve nasıl düzeltileceğiyle ilgili kullanıcıya bilgi vermek sizin sorumluluğunuzdadır.

restore_defaults(*args)[kaynak]

Tüm yapılandırma değerlerini varsayılan değerlerine ayarlamalıdır.