API documentation for plugins

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.plugin_path: Stores path to the ZIP file that contains
    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 = u'Kesinlikle hi\xe7bir \u015fey yapmaz'

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

author = u'Bilinmiyor'

Eklentinin yazarı

priority = 1

When more than one plugin exists for a filetype, the plugins are run in order of decreasing priority. Plugins with higher priority will be run first. The highest possible priority is sys.maxsize. Default priority is 1.

minimum_calibre_version = (0, 4, 118)

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

can_be_disabled = True

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

type = u'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.

Perform any plugin specific initialization here, such as extracting resources from the plugin ZIP file. The path to the ZIP file is available as self.plugin_path.

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(tuple(self.load_resources(['images/icon.png']).values())[0])
icon = QIcon(pixmap)
Parametreler:names – List of paths to resources in the ZIP file using / as separator
Dönüş değeri::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.
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]

Bases: calibre.customize.Plugin

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

file_types = set([])

Set of file types for which this plugin should be run. Use ‘*’ for all file types. For example: {'lit', 'mobi', 'prc'}

on_import = False

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

on_postimport = False

If True, this plugin is run after books are added to the database. In this case the postimport and postadd methods of the plugin are called.

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.

run(path_to_ebook)[kaynak]

Run the plugin. Must be implemented in subclasses. It should perform whatever modifications are required on the e-book and return the absolute path to the modified e-book. If no modifications are needed, it should return the path to the original e-book. If an error is encountered it should raise an Exception. The default implementation simply return the path to the original e-book. Note that the path to the original file (before any file type plugins are run, is available as self.original_path_to_file).

The modified e-book file should be created with the temporary_file() method.

Parametreler:path_to_ebook – Absolute path to the e-book.
Dönüş değeri::Absolute path to the modified e-book.
postimport(book_id, book_format, db)[kaynak]

Called post import, i.e., after the book file has been added to the database. Note that this is different from postadd() which is called when the book record is created for the first time. This method is called whenever a new file is added to a book record. It is useful for modifying the book record based on the contents of the newly added file.

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]

Called post add, i.e. after a book has been added to the db. Note that this is different from postimport(), which is called after a single book file has been added to a book. postadd() is called only when an entire book record with possibly more than one book file has been created for the first time. This is useful if you wish to modify the book record in the database when the book is first added to calibre.

Parametreler:
  • book_id – Eklenen kitabın veri tabanı kimliği.
  • fmt_map – Map of file format to path from which the file format was added. Note that this might or might not point to an actual existing file, as sometimes files are added as streams. In which case it might be a dummy value or a non-existent path.
  • db – Library database

Metadata eklentileri

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

Bases: calibre.customize.Plugin

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

file_types = set([])

Set of file types for which this plugin should be run. For example: set(['lit', 'mobi', 'prc'])

get_metadata(stream, type)[kaynak]

Return metadata for the file represented by stream (a file like object that supports reading). Raise an exception when there is an error with the input data.

Parametreler:type – The type of file. Guaranteed to be one of the entries in file_types.
Dönüş değeri::A calibre.ebooks.metadata.book.Metadata object
class calibre.customize.MetadataWriterPlugin(*args, **kwargs)[kaynak]

Bases: calibre.customize.Plugin

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

file_types = set([])

Set of file types for which this plugin should be run. For example: set(['lit', 'mobi', 'prc'])

set_metadata(stream, mi, type)[kaynak]

Set metadata for the file represented by stream (a file like object that supports reading). Raise an exception when there is an error with the input data.

Parametreler:
  • type – The type of file. Guaranteed to be one of the entries in file_types.
  • mi – A calibre.ebooks.metadata.book.Metadata object

Katalog eklentileri

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

Bases: calibre.customize.Plugin

Bir katalog üreteci uygulayan eklenti.

file_types = set([])

Output file type for which this plugin should be run. For example: ‘epub’ or ‘xml’

cli_options = []

CLI parser options specific to this plugin, declared as namedtuple Option:

from collections import namedtuple Option = namedtuple(‘Option’, ‘option, default, dest, help’) cli_options = [Option(‘–catalog-title’, default = ‘My Catalog’, dest = ‘catalog_title’, help = (_(‘Title of generated catalog. nDefault:’) + ” ‘” + ‘%default’ + “’”))] cli_options parsed in calibre.db.cli.cmd_catalog:option_parser()

initialize()[kaynak]

If plugin is not a built-in, copy the plugin’s .ui and .py files from the ZIP file to $TMPDIR. Tab will be dynamically generated and added to the Catalog Options dialog in calibre.gui2.dialogs.catalog.py:Catalog

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]

Bases: calibre.customize.Plugin

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

Setting this to True means that the browser object will indicate that it supports gzip transfer encoding. This can speedup downloads but make sure that the source actually supports gzip transfer encoding correctly first

ignore_ssl_errors = False

Set this to True to ignore HTTPS certificate errors when connecting to this source.

cached_cover_url_is_reliable = True

Zulalanan kapak URL’leri bazen güvenilmez olabilir (örn. indirme başarısız olabilir veya döndürülen resim sahte olabilir). Bu kaynak için durum genellikle buysa False 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]

Bir 3-demet veya None döndür. 3-demet şu biçimdedir: (tanımlayıcı_türü, 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ğeri URL ile ilişkili tanımlayıcıya karşılık gelir. Bu URL bir insanın tarayıcıyla gezebileceği bir URL olmalıdır. Kullanıcı için bu kaynaktaki kitapların sayfalarını kolayca gezebileceği bir bağlantı olması amacını taşır. URL bulunamazsa, None döndürür. Bu metod hızlı, tutarlı olmalıdır, yani yalnızca URL’yi tanımlayıcıları verilen bilinen bir plandan oluşturulacaksa 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 isterseniz bu metodun üzerine yazın. 3’lü demet listesi döndürür. Varsayılan olarak bu metod basitçe get_book_url() çağırır.

get_cached_cover_url(identifiers)[kaynak]

Tanımlayıcılar sözlüğünce tanımlanan kitap için zulalanmış kapak URL’sini veya böyle bir URL yoksa None döndür.

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]

Parse a URL and return a tuple of the form: (identifier_type, identifier_value). If the URL does not match the pattern for the metadata source, return None.

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ık/yazar/isbn/vs. özelliğine göre tanımla

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’ya konmadan önce tüm kapak/isbn haritalama bilgisinin zulalandığından emin ol.

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üş değeri::

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]

Bases: calibre.customize.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.

file_types = set([])

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

Number of CPU cores used by this plugin. A value of -1 means that it uses all available cores

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 = set([<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 = set([])

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

recommendations = set([])

(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 metod alt sınıflarda uygulanmalıdır. Oluşturulan OPF dosyasına yolu veya bir OEBBook örneği döndürmelidir. Tüm çıktı mevcut dizinde içerilmelidir. Bu eklenti mevcut dizin dışında bir yerde dosya oluşturuyorsa bunların metod dönmeden önce silinmesi/silme için 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ı.
  • accelarators – 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]

Bases: calibre.customize.Plugin

OutputFormatPlugins are responsible for converting an OEB document (OPF+HTML) into an output e-book.

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

file_type = None

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

common_options = set([<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 = set([])

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

recommendations = set([])

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

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

Render the contents of oeb_book (which is an instance of calibre.ebooks.oeb.OEBBook) to the file specified by output.

Parametreler:
  • output – Dosya benzeri bir nesne veya karakter dizisi. Karakter dizisi ise var olan veya olmayan bir dizine yoldur. Çıktı eklentisi çıktıyı bu dizine yazmalıdır. Dosya benzeri 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]

Can be used to change the values of conversion options, as used by the conversion pipeline.

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

CSS düzleme işleminden sonra css’e 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.

Device drivers

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]

Bases: calibre.customize.Plugin

Defines the interface that should be implemented by backends that communicate with an e-book reader.

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

Compression quality for thumbnails. Set this closer to 100 to have better quality thumbnails with fewer compression artifacts. Of course, the thumbnails get larger as well.

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 = '/home/kovid/work/calibre/resources/images/reader.png'

Bu aygıt için simge

UserAnnotation

şunun takma adı: Annotation

OPEN_FEEDBACK_MESSAGE = None

GUI bunu None değilse bir ileti olarak gösterir. Açma uzun sürüyorsa 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

Message to display to user for virtual book extensions.

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.

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 – % süreciyle çeşitli işler için çağrılan fonksiyon (sayı 0 ve 100 arasında) -1 ile çağrılırsa işin süreç bilgisi olmadığı anlamına gelir
  • 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 – Açmaya çalıştığımız aygıt. (satıcı kimliği, ürün kimliği, bcd, üretici ismi, ürün ismi, aygıt seri numarası) demeti. Ancak bazı aygıtların seri numarası yoktur ve windows üstünde yalnızca ilk üç alan mevcuttur, geri kalanı None’dir.
  • 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 – % süreciyle çeşitli işler için çağrılan fonksiyon (sayı 0 ve 100 arasında) -1 ile çağrılırsa işin süreç bilgisi olmadığı anlamına gelir
get_device_information(end_session=True)[kaynak]

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

Dönüş değeri::(aygıt ismi, aygıt sürümü, aygıttaki yazılım sürümü, mime türü) Demet isteğe bağlı olarak beşinci bir sürücü bilgisi demeti alabilir. Örnek için usbms.driver’a göz atın.
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üş değeri::(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üş değeri::(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üş değeri::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üş değeri::

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üş değeri::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]

Aygıttaki bir kitap calibre veri tabanındaki bir kitapla eşleşince kitap eşleştirme sırasında çağrılır. Bu metod aygıttan calibre veri tabanına (gerekliyse) veri eşzamanlamakla yükümlüdür.

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]

Tabanlar: 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]

Tabanları: calibre.devices.usbms.deviceconfig.DeviceConfig, calibre.devices.interface.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.

WINDOWS_MAIN_MEM = None

Windows PnP kimlik karakter dizilerinde aygıtın ana belleğini tanımlayan karakter dizisi. Bu None, karakter dizisi, karakter dizisi listesi veya derlenmiş düzenli ifade olabilir

WINDOWS_CARD_A_MEM = None

Windows PnP kimlik karakter dizisinde aygıtın ilk kartını tanımlayan karakter dizisi. Bu None, karakter dizisi, karakter dizisi listesi veya derlenmiş düzenli ifade olabilir

WINDOWS_CARD_B_MEM = None

Windows PnP kimlik karakter dizisinde aygıtın ikinci kartını tanımlayan karakter dizisi. Bu None, karakter dizisi, karakter dizisi listesi veya derlenmiş düzenli ifade olabilir

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

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 – % süreciyle çeşitli işler için çağrılan fonksiyon (sayı 0 ve 100 arasında) -1 ile çağrılırsa işin süreç bilgisi olmadığı anlamına gelir
  • 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 – % süreciyle çeşitli işler için çağrılan fonksiyon (sayı 0 ve 100 arasında) -1 ile çağrılırsa işin süreç bilgisi olmadığı anlamına gelir
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üş değeri::(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üş değeri::(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]

WINDOWS_CARD_NAME temelinde ayrım yapamayan aygıtlar için ana bellek ve hafıza kartı ayrımı yapmak için çağrılır. Örn.: 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 – Açmaya çalıştığımız aygıt. (satıcı kimliği, ürün kimliği, bcd, üretici ismi, ürün ismi, aygıt seri numarası) demeti. Ancak bazı aygıtların seri numarası yoktur ve windows üstünde yalnızca ilk üç alan mevcuttur, geri kalanı None’dir.
  • 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]

Tabanlar: calibre.devices.usbms.cli.CLI, calibre.devices.usbms.device.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

booklist_class

şunun takma adı: calibre.devices.usbms.books.BookList

book_class

şunun takma adı: calibre.devices.usbms.books.Book

get_device_information(end_session=True)[kaynak]

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

Dönüş değeri::(aygıt ismi, aygıt sürümü, aygıttaki yazılım sürümü, mime türü) Demet isteğe bağlı olarak beşinci bir sürücü bilgisi demeti alabilir. Örnek için usbms.driver’a göz atın.
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üş değeri::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üş değeri::

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 – İlişkili kitabın bulunduğu dizinin tam yolu.
  • filename – Kitap dosyasının uzantısız ismi.
  • metadata – kitaba ait metadata. Kapak için metadata.thumbnail kullanın
  • filepath – The full path to the e-book file
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]

Tabanlar: PyQt5.QtCore.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.

Alt-sınıflar genesis(), library_changed(), location_selected() shutting_down() ve initialization_complete() metodlarını uygulamalıdırlar.

İ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)

Şu biçimde: (metin, simge_yolu, araç ipucu, klavye kısayolu) simge, araç ipucu ve klavye kısayolu None olabilir, kısayol karakter dizisi, None veya kısa yollar demeti olmalı. None ise, bu eylemle ilişkili bir klavye kısayolu kaydedilmez. Boş bir demet yollarsanız, kısayol varsayılan bir tuş bağı olmadan kaydedilir.

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)[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 – Bu eylem için benzersiz bir isim, bu program genelinde benzersiz olmalıdır, yani olabildiğince açıklayıcı. Kararsızsanız bir uuid ekleyebilirsiniz.
  • text – Eylem metni.
  • icon – Bir QIcon veya dosya adı. Dosya adı I() dahilisine geçirilir, yani resim dizininin tam yolunu girmenize gerek yoktur.
  • 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.
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 – List of paths to resources in the ZIP file using / as separator
Dönüş değeri::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_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.

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.

Dönüş değeri::Kapatmayı durdurmak için False. Kapatmanın neden durdurulduğunu kullanıcıya söylemek sizin sorumluluğunuzda.
class calibre.customize.InterfaceActionBase(*args, **kwargs)[kaynak]

Bases: calibre.customize.Plugin

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]

Bases: calibre.customize.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.

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 = u"Varsay\u0131lan ayarlar\u0131 y\xfckle. Bu i\u015flemi tamamlamak i\xe7in Tamam'a t\u0131klamal\u0131s\u0131n\u0131z."

The tooltip for the “Restore defaults” button

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 ayarlamalıdır (yapılandırma dosyalarında saklı değerler).

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.

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.

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 – 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 ayarlamalıdır (yapılandırma dosyalarında saklı değerler).

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.

Görüntüleme eklentileri

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

Bases: calibre.customize.Plugin

type = u'G\xf6r\xfcnt\xfcleyici'

These plugins are used to add functionality to the calibre E-book viewer.

load_fonts()[kaynak]

Bu metod görüntüleyici açılışında bir kere çağrılır. Kullanılabilir olmasını istediği tüm yazı tiplerini yüklemelidir. Örneğin:

def load_fonts():
    from PyQt5.Qt import QFontDatabase
    font_data = get_resources(['myfont1.ttf', 'myfont2.ttf'])
    for raw in font_data.values():
        QFontDatabase.addApplicationFontFromData(raw)
load_javascript(evaljs)[kaynak]

Bu metod görüntüleyicide yeni bir HTML belgesi yüklendiğinde çağrılır. Javascript kitaplıklarını görüntüleyiciye yüklemek için kullanın. Örneğin:

def load_javascript(self, evaljs):
    js = get_resources('myjavascript.js')
    evaljs(js)
run_javascript(evaljs)[kaynak]

Bu metod bir belgenin yüklenmesi her bittiğinde çağrılır. load_javascript() kullanımı şeklinde kullanabilirsiniz.

customize_ui(ui)[kaynak]

Bu metod görüntüleyici oluşturulduğunda bir kere çağrılır. Görüntüleyicinin kullanıcı arayüzünde yapmak istediğiniz özelleştirmeler için kullanın. Örneğin, araç çubuklarını ui.tool_bar ve ui.tool_bar2 ile değiştirebilirsiniz.

customize_context_menu(menu, event, hit_test_result)[kaynak]

Bu metod içerik menüsü (sağ-tık) gösterildiğinde çağrılır. İçerik menüsünü özelleştirmek için kullanabilirsiniz. event içerik menüsü olayıdır ve hit_test_result yüklenmiş mevcut belgedeki bu olay için QWebHitTestResult’dur.