API-dokumentation för insticksmoduler¶
Definiera diverse abstrakta grundklasser som kan vara underklasser för att skapa kraftfulla insticksmoduler. Dessa användbara klasser är:
Insticksmoduler¶
- class calibre.customize.Plugin(plugin_path)[source]¶
En calibre insticksmodul. Användbara medlemmar inkluderar:
self.installation_type
: Lagrar hur insticksmoudlen installerades.self.plugin_path
: Lagrar sökväg till ZIP-filen som innehållerdenna insticksmodul eller None om den är en inbyggd insticksmodul
self.site_customization
: Lagrar en anpassningssträng som har angettsav användaren.
Metoder som ska åsidosättas i underklasser:
Användbara metoder:
__enter__()
- supported_platforms = []¶
Lista över plattformar som den här insticksmodulen fungerar på. Till exempel:
['windows', 'osx', 'linux']
- name = 'Trivial Plugin'¶
Namnet på denna insticksmodul. Du måste ange något annan än Trivial Plugin för att den ska fungera.
- version = (1, 0, 0)¶
Versionen för denna insticksmodul är n 3-tupel (major, minor, revision)
- description = 'Gör absolut ingenting'¶
En kort sträng som beskriver vad denna insticksmodul gör
- author = 'Okänd'¶
Författare av denna insticksmodul
- priority = 1¶
När mer än en insticksmodul finns för en filtyp, kommer insticksmodulen att köras i fallande prioritet. Insticksmoduler med högre prioritet kommer att köras först. Det högsta möjliga prioriten är
sys.maxsize
. Standard prioritet är 1.
- minimum_calibre_version = (0, 4, 118)¶
Den tidigaste versionen av calibre som denna insticksmodul kräver
- installation_type = None¶
Sättet den här insticksmodulen installeras
- can_be_disabled = True¶
Om False, kommer inte användaren kunna deaktivera denna insticksmodul. Använd med försiktighet.
- type = 'Grund'¶
Typen av denna insticksmodul. Används för kategorisera insticksmodul i användargränssnittet
- initialize()[source]¶
Anropas när calibre-insticksmoduler initieras. Insticksmoduler är återinitierade varje gång en ny insticksmodul läggs till. Observera också att om insticksmodulen körs i en arbetsprocess, såsom att lägga till böcker, då kommer insticksmodulen att initieras för varje ny arbetsprocess.
Utför godtyckligt insticksmodul initialisering här, såsom att utvinna resurser från insticksmoduls ZIP-filen. Sökvägen till ZIP-filen är tillgänglig som
self.plugin_path
.Observera att
self.site_customization
är inte tillgänglig vid detta tillfälle.
- config_widget()[source]¶
Implementera denna metod och
save_settings()
i din insticksmodul för att använda en anpassad konfigurationsdialog, snarare än att förlita sig på en enkel strängbaserad standardanpassning.Den här metoden, om den implementeras, måste returnera en QWidget. Gränssnittskomponenten kan ha en alternativ metod validate() som inte tar några argument och anropas omedelbart efter användaren klickar OK. Ändringar tillämpas om och endast om metoden returnerar True.
Om du av någon anledning inte kan utföra konfigurationen vid denna tid, returnera en tupel av två strängar (meddelande, detaljer), kommer dessa att visas som en varningsdialogruta för användaren och processen avbryts.
- save_settings(config_widget)[source]¶
Spara inställningarna som anges av användaren med config_widget.
- Parametrar:
config_widget – Gränssnittskomponenten som returneras av
config_widget()
.
- do_user_config(parent=None)[source]¶
Denna metod visar en inställningsdialogruta för denna insticksmodul. Den returnerar True om användaren klickar på OK, annars False. Ändringarna tillämpas automatiskt.
- load_resources(names)[source]¶
Om denna insticksmodul kommer i en ZIP-fil (användartillagd insticksmodul), kommer denna metod tillåta dig läsa in resurser från ZIP-fil.
Till exempel att läsa in en bild:
pixmap = QPixmap() pixmap.loadFromData(self.load_resources(['images/icon.png'])['images/icon.png']) icon = QIcon(pixmap)
- Parametrar:
names – Förteckning över sökvägar till resurser i ZIP-filen som använder / som avskiljare
- Returnerar:
En ordbok av formen
{name:file_contents}
. Namn som inte finns i ZIP-filen kommer inte att vara närvarande i ordboken.
- customization_help(gui=False)[source]¶
Returnera en sträng som ger hjälp om hur du anpassar denna insticksmodul. Som standard upp en
NotImplementedError
, vilket tyder på att insticksmodulen inte kräver anpassning.Om du återimplementerar den här metoden i din underklass, kommer användaren att bli ombedd att skriva in en sträng som anpassning för denna insticksmodul. Den anpassning strängen kommer att finnas tillgänglig som
self.site_customization
.Platsanpassning skulle kunna vara vad som helst, till exempel vägen till en välbehövlig binär på användarens dator.
- Parametrar:
gui – Om True returneras HTML-hjälp, annars returneras oformaterad hjälptext.
- temporary_file(suffix)[source]¶
Returnera en fil-liknande objekt som är en temporär fil i filsystemet. Denna fil kommer att vara tillgänglig även efter nedstängning och kommer endast att tas bort på vid avstängning. Använd
name
medlem av den återgivna objektet för att komma åt den fullständiga sökvägen till den skapade temporärfilen.- Parametrar:
suffix – Suffixet att den temporära filen kommer att ha.
FileTypePlugin¶
- class calibre.customize.FileTypePlugin(plugin_path)[source]¶
Grunder:
Plugin
En insticksmodul som är associerad med en viss uppsättning filtyper.
- file_types = {}¶
Uppsättning av filtyper som denna insticksmodul ska köra. Använd ”*” för alla filtyper. Till exempel:
{'lit', 'mobi', 'prc'}
- on_import = False¶
Om True, körs denna insticksmodul när böcker läggs till i databasen
- on_postimport = False¶
Om True, körs denna insticksmodul efter att böcker läggs till i databasen. I detta fall anropas metoderna postimport och postadd av insticksmodulen.
- on_postconvert = False¶
Om True, körs denna insticksmodul efter att en bok har konverterats. I det här fallet anropas insticksmodulens postkonverteringsmetod.
- on_postdelete = False¶
Om True, körs denna insticksmodul efter att en bokfil har tagits bort från databasen. I det här fallet anropas insticksmodulens postborttagningsmetod.
- on_preprocess = False¶
Om True, körs denna insticksmodul alldeles innan en konvertering
- on_postprocess = False¶
Om True, körs denna insticksmodul efter konvertering på den slutliga filen som produceras av insticksmodulen för konverteringsutmatning.
- type = 'Filtyp'¶
Typen av denna insticksmodul. Används för kategorisera insticksmodul i användargränssnittet
- run(path_to_ebook)[source]¶
Kör insticksmodulen. Behöver implementeras i underklasser. Det ska utföra vilka som helst modifikationer som krävs på e-boken och returnera den absoluta sökvägen till den modifierade e-boken. Om inga modifikationer behövs, bör sökvägen återgå till den ursprungliga e-boken. Om ett fel uppstår, ska det framkalla ett undantag. Standard implementationen helt enkelt returnerar sökvägen till den ursprungliga e-boken. Observera att sökvägen till originalfilen (innan några filtyp insticksmodul körs, finns som self.original_path_to_file).
Den modifierade e-bokfilen ska skapas med
temporary_file()
metod.- Parametrar:
path_to_ebook – Absolut sökväg till e-boken.
- Returnerar:
Absolut sökväg till den modifierade e-boken.
- postimport(book_id, book_format, db)[source]¶
Anropas efter importering, dvs. efter bokfilen har lagts till i databasen. Observera att detta skiljer sig från
postadd()
som anropas när bokposten skapas för första gången. Denna metod anropas varje gång en ny fil läggs till i en bokpost. Det är användbart för att ändra bokposten baserat på innehållet i den nyligen tillagda filen.- Parametrar:
book_id – Databas id för tillagda boken.
book_format – Filtypen för boken som lades till.
db – Biblioteksdatabas.
- postconvert(book_id, book_format, db)[source]¶
Anropas efter konvertering, dvs. efter att konverteringsutmatningsboken har lagts till i databasen. Observera att den körs endast efter en konvertering, inte efter att en bok har lagts till. Det är användbart för att ändra bokposten baserat på innehållet i den nyligen tillagda filen.
- Parametrar:
book_id – Databas id för tillagda boken.
book_format – Filtypen för boken som lades till.
db – Biblioteksdatabas.
- postdelete(book_id, book_format, db)[source]¶
Anropas postborttagning, dvs. efter att bokfilen har tagits bort från databasen. Observera att den inte körs när en bokpost tas bort, endast när ett eller flera format från boken tas bort. Det är användbart för att ändra bokposten baserat på formatet på den borttagna filen.
- Parametrar:
book_id – Databas id för tillagda boken.
book_format – Filtypen för boken som lades till.
db – Biblioteksdatabas.
- postadd(book_id, fmt_map, db)[source]¶
Anropad efter posttilläggning, dvs. efter en bok har lagts till i databasen. Observera att detta skiljer sig från
postimport()
som anropas efter en enskild bokfil har lagts till en bok. postadd() anropas när en hel bokpost med mer än en möjlig bokfil har skapats för första gången. Det är användbart för att ändra bokposten i databasen när boken läggs till för första gången till calibre.- Parametrar:
book_id – Databas id för tillagda boken.
fmt_map – Lista över filformat till sökväg från vilken filformatet lades till. Observera att detta kan eller kanske inte hänvisar till en faktisk befintlig fil, eftersom filer ibland läggs till som strömmar. I så fall kan det vara ett skenvärde eller en obefintlig sökväg.
db – Biblioteksdatabas
Metadatainsticksmodul¶
- class calibre.customize.MetadataReaderPlugin(*args, **kwargs)[source]¶
Grunder:
Plugin
En insticksmodul som implementerar läsning av metadata från en uppsättning filtyper.
- file_types = {}¶
Uppsättning med filtyper som denna insticksmodul ska köra. Till exempel:
set(['lit', 'mobi', 'prc'])
- supported_platforms = ['windows', 'osx', 'linux']¶
Lista över plattformar som den här insticksmodulen fungerar på. Till exempel:
['windows', 'osx', 'linux']
- version = (7, 21, 100)¶
Versionen för denna insticksmodul är n 3-tupel (major, minor, revision)
- author = 'Kovid Goyal'¶
Författare av denna insticksmodul
- type = 'Metadataläsare'¶
Typen av denna insticksmodul. Används för kategorisera insticksmodul i användargränssnittet
- get_metadata(stream, type)[source]¶
Returnera metadata för filen som representeras av ström (ett filliknande objekt som stöder läsning). Markera ett undantag när det finns ett fel med inmatningen.
- Parametrar:
type – Filtypen. Garanterat en av posterna i
file_types
.- Returnerar:
Ett
calibre.ebooks.metadata.book.Metadata
objekt
- class calibre.customize.MetadataWriterPlugin(*args, **kwargs)[source]¶
Grunder:
Plugin
En insticksmodul som implementerar läsning av metadata från en uppsättning filtyper.
- file_types = {}¶
Uppsättning med filtyper som denna insticksmodul ska köra. Till exempel:
set(['lit', 'mobi', 'prc'])
- supported_platforms = ['windows', 'osx', 'linux']¶
Lista över plattformar som den här insticksmodulen fungerar på. Till exempel:
['windows', 'osx', 'linux']
- version = (7, 21, 100)¶
Versionen för denna insticksmodul är n 3-tupel (major, minor, revision)
- author = 'Kovid Goyal'¶
Författare av denna insticksmodul
- type = 'Metadataskrivare'¶
Typen av denna insticksmodul. Används för kategorisera insticksmodul i användargränssnittet
- set_metadata(stream, mi, type)[source]¶
Ställ metadata för filen som representeras av ström (en fil som objekt som stöder läsning). Markerar ett undantag när det finns ett fel med inmatning.
- Parametrar:
type – Filtypen. Garanterat en av posterna i
file_types
.mi – Ett
calibre.ebooks.metadata.book.Metadata
objekt
Katalog insticksmodul¶
- class calibre.customize.CatalogPlugin(plugin_path)[source]¶
Grunder:
Plugin
En insticksmodul som implementerar en kataloggenerator.
- file_types = {}¶
Utmatningsfiltyp som denna insticksmodul ska köra. Till exempel: ’epub’ eller ’xml’
- type = 'Kataloggenerator'¶
Typen av denna insticksmodul. Används för kategorisera insticksmodul i användargränssnittet
- cli_options = []¶
CLI-parseralternativ som är specifika för denna insticksmodul deklareras som namedtuple Option:
från uppsättningar importera namnsatta tupler 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 analyseras i calibre.db.cli.cmd_catalog:option_parser()
- initialize()[source]¶
Om insticksmodulen inte är ett inbyggt, kopiera insticksmodulens .ui- och .py-filer från ZIP-filen till $TMPDIR. Flik kommer att genereras dynamiskt och läggas till dialogrutan Katalogalternativ i calibre.gui2.dialogs.catalog.py:Catalog
- run(path_to_output, opts, db, ids, notification=None)[source]¶
Kör insticksmodulen. Måste implementeras i underklasser. Det ska generera katalogen i det format som anges i file_types, återvänder den absoluta sökvägen till den genererade katalogfilen. Om ett fel uppstår bör det signalera ett undantag.
Den genererade katalogfilen ska genereras med
temporary_file()
-metoden.- Parametrar:
path_to_output – Absoluta sökvägen till den genererade katalogfilen.
opts – En ordbok av nyckelordsargument
db – Ett LibraryDatabase2-objekt
Insticksmoduler för metadatahämtning¶
- class calibre.ebooks.metadata.sources.base.Source(*args, **kwargs)[source]¶
Grunder:
Plugin
- type = 'Metadatakälla'¶
Typen av denna insticksmodul. Används för kategorisera insticksmodul i användargränssnittet
- author = 'Kovid Goyal'¶
Författare av denna insticksmodul
- supported_platforms = ['windows', 'osx', 'linux']¶
Lista över plattformar som den här insticksmodulen fungerar på. Till exempel:
['windows', 'osx', 'linux']
- capabilities = frozenset({})¶
Uppsättning funktioner som stöds av denna insticksmodul. Användbara funktioner är: ”identify”, ”cover”
- touched_fields = frozenset({})¶
Lista med metadatafält som potentiellt kan hämtas av denna insticksmodul under identifieringsfasen
- has_html_comments = False¶
Ange detta som True om din insticksmodul returnerar HTML-formaterade kommentarer
- supports_gzip_transfer_encoding = False¶
Om detta ställs till True betyder det att webbläsarobjektet indikerar att det stöder gzip-överföringskodning. Detta kan hämtas snabbt, men se till att källan faktiskt stöder gzip-överföringskodningen korrekt först
- ignore_ssl_errors = False¶
Ställ in detta till True för att ignorera HTTPS-certifikatfel när du ansluter till den här källan.
- cached_cover_url_is_reliable = True¶
Cachade omslags-URL:er kan ibland vara opålitliga (dvs. hämtningen kan misslyckas eller den återgivna bilden kan vara falsk). Om så ofta är fallet med den här källan, ställ in den till False
- options = ()¶
En lista med
Alternativ
objekt. De kommer användas för automatiskt skapa konfigurationsgränssnittskomponenten för denna insticksmodul
- config_help_message = None¶
En sträng som visas högst upp på gränssnittskomponenten för denna insticksmodul
- can_get_multiple_covers = False¶
Om True kan denna källa returnera flera omslag för en viss förfråga
- auto_trim_covers = False¶
Om inställt till True beskärs hämtade omslag automatiskt med denna insticksmodul.
- prefer_results_with_isbn = True¶
Om värdet är True, och denna källa returnerar flera resultat för en förfråga, av vilka några har ISBN och av vilka en del inte, så ignoreras resultaten utan ISBN
- is_configured()[source]¶
Returnera False om din insticksmodul måste anpassas innan den kan användas. Till exempel kan den behöva ett användarnamn/lösenord/API-nyckel.
- customization_help()[source]¶
Returnera en sträng som ger hjälp om hur du anpassar denna insticksmodul. Som standard upp en
NotImplementedError
, vilket tyder på att insticksmodulen inte kräver anpassning.Om du återimplementerar den här metoden i din underklass, kommer användaren att bli ombedd att skriva in en sträng som anpassning för denna insticksmodul. Den anpassning strängen kommer att finnas tillgänglig som
self.site_customization
.Platsanpassning skulle kunna vara vad som helst, till exempel vägen till en välbehövlig binär på användarens dator.
- Parametrar:
gui – Om True returneras HTML-hjälp, annars returneras oformaterad hjälptext.
- config_widget()[source]¶
Implementera denna metod och
save_settings()
i din insticksmodul för att använda en anpassad konfigurationsdialog, snarare än att förlita sig på en enkel strängbaserad standardanpassning.Den här metoden, om den implementeras, måste returnera en QWidget. Gränssnittskomponenten kan ha en alternativ metod validate() som inte tar några argument och anropas omedelbart efter användaren klickar OK. Ändringar tillämpas om och endast om metoden returnerar True.
Om du av någon anledning inte kan utföra konfigurationen vid denna tid, returnera en tupel av två strängar (meddelande, detaljer), kommer dessa att visas som en varningsdialogruta för användaren och processen avbryts.
- save_settings(config_widget)[source]¶
Spara inställningarna som anges av användaren med config_widget.
- Parametrar:
config_widget – Gränssnittskomponenten som returneras av
config_widget()
.
- get_author_tokens(authors, only_first_author=True)[source]¶
Ta en lista över författare och returnera en lista med tokens som är användbara för en AND-sökförfråga. Denna funktion försöker returnera tokens i ordningen förnamn mellannamn efternamn, genom att anta att om ett kommatecken finns i författarnamnet, är namnet i efternamn, andra namnbildningar.
- get_title_tokens(title, strip_joiners=True, strip_subtitle=False)[source]¶
Ta en titel och returnera en lista med symboler som är användbara för en OCH sökförfrågan. Exkluderar connectives (valfritt) och skiljetecken.
- test_fields(mi)[source]¶
Återgå till det första fältet från self.touched_fields som är null på mi objektet
- clean_downloaded_metadata(mi)[source]¶
Anropa den här metoden i din insticksmodul för att identifiera metod att normalisera metadata innan metadataobjektet läggs i result_queue. Du kan naturligtvis använda en anpassad algoritm som matchar din metadatakälla.
- get_book_url(identifiers)[source]¶
Returnera en 3-tupel eller None. 3-tupeln har formen: (identifier_type, identifier_value, URL). URL:en är webbadressen till boken som identifierats av identifierare vid denna källa. identifier_type, identifier_value anger identifieraren som motsvarar URL:en. Den här webbadressen måste vara tillgänglig för en person med en webbläsare. Den är avsedd att tillhandahålla en klickbar länk för användaren att enkelt besöka bokens sida vid denna källa. Om ingen webbadress hittas, returneras None. Denna metod måste vara snabb och konsekvent, så implementera den bara om det är möjligt att konstruera webbadressen från ett känt schema med identifierare.
- get_book_url_name(idtype, idval, url)[source]¶
Returnera ett mänskligt läsbart namn från det återgivna värdet för get_book_url().
- get_book_urls(identifiers)[source]¶
Åsidosätt den här metoden om du vill returnera flera URL:er för den här boken. Returnera en lista med 3-tupler. Som standard anropar den här metoden helt enkelt
get_book_url()
.
- get_cached_cover_url(identifiers)[source]¶
Returnera cachade omslags-URL:er för boken som identifieras av identifierarordboken eller None om det inte finns någon sådan URL.
Observera att den här metoden endast får returnera validerade URL:er, dvs. inte URL:er som kan resultera i en generisk omslagsbild eller ett fel som inte hittades.
- id_from_url(url)[source]¶
Analysera en URL och returnera en tupel av formen: (identifier_type, identifier_value). Om URL:en inte matchar mönstret för metadatakällan, returnera None.
- identify_results_keygen(title=None, authors=None, identifiers={})[source]¶
Returnera en funktion som används för att skapa en nyckel som kan sortera metadataobjekt genom deras relevans givet en sökförfråga (titel, författare, kännetecken).
Dessa nycklar används för att sortera resultatet av ett anrop till
identify()
.För mer information om standardalgoritmen, se: klass
InternalMetadataCompareKeyGen
. Återimplementera denna funktion i din insticksmodul om standardalgoritmen inte är lämplig.
- identify(log, result_queue, abort, title=None, authors=None, identifiers={}, timeout=30)[source]¶
Identifiera en bok med dess titel/författare/ISBN/etc.
Om en eller flera identifierare anges och ingen träff hittas och den här metadatakällan inte lagrar alla relaterade identifierare (till exempel alla ISBN av en bok), bör den här metoden försökas igen med bara titel och författare (förutsatt att de specificerades).
Om den här metadatakällan också innehåller omslag, bör URL:en till omslaget cachas så att ett efterföljande anrop till skaffa omslags-API:et med samma ISBN/specialidentifiering inte behöver hämta omslags-URL:en igen. Använd cache-API:et för detta.
Varje metadataobjekt infört i result_queue med denna metod måste ha en source_relevance attribut som är ett heltal som anger i vilken ordning resultaten återgavs av metadatakällan för den här förfrågan. Detta heltal kommer att användas av
compare_identify_results()
. Om ordningen är oviktigt, sätt den till noll för varje resultat.Se till att all omslags-/ISBN-kartläggningsinformation cachelagras innan Metadata-objektet placeras i result_queue.
- Parametrar:
log – En loggpost, använd den för att mata ut felsökningsinformation/fel
result_queue – Ett resultat Kö, resultaten läggas in i den. Varje resultat är ett metadataobjekt
abort – Om abort.is_set() returnerar True, avbryt vidare bearbetning och återvända så snart som möjligt
title – Titeln på boken, kan vara None
authors – En lista med författare av boken, kan vara None
identifiers – En ordbok av andra identifieringsuppgifter oftast {’isbn’:’1234…’}
timeout – Tidsbegränsning i sekunder, ingen nätverksförfrågan ska dröja längre än tidsbegränsningen.
- Returnerar:
None om inga fel har inträffat, annars en Unicode-representation av felet som är lämplig för att visa för användaren
- download_cover(log, result_queue, abort, title=None, authors=None, identifiers={}, timeout=30, get_best_cover=False)[source]¶
Hämta ett omslag och sätta det i result_queue. Parametrarna alla har samma betydelse som för
identify()
. Put (jaget, cover_data) i result_queue.Den här metoden bör använda cachade omslags-URL:er för effektivitet när det är möjligt. När cachade data inte finns, anropar de flesta insticksmoduler helt enkelt identifiering och använder dess resultat.
Om parametern get_best_cover är True, och kan denna insticksmodul få flera omslag, det bör bara få det ”bästa”.
- class calibre.ebooks.metadata.sources.base.InternalMetadataCompareKeyGen(mi, source_plugin, title, authors, identifiers)[source]¶
Skapa en slags nyckel för jämförelse av relevansen av metadataobjekt, ges en sökförfråga. Detta används endast för att jämföra resultat från samma metadatakälla, inte mellan olika informationskällor.
Sorteringsnyckeln säkerställer att en stigande ordning sortera är en sortera fallande relevans.
Algoritmen är:
Föredra resultat som har åtminstone en identifierare som är samma som för förfrågan
Föredra resultat med en cachad omslags-URL
Föredra resultat med alla tillgängliga fält ifyllda
Föredra resultat med samma språk som aktuella användarens gränssnittsspråk
Föredra resultat som är en exakt titelmatchning på förfrågan
Föredra resultat med längre kommentarer (mer än 10% längre)
- Använd relevansen av resultatet som rapporterats av metadatakällans sökning
engine
Konvertering insticksmodul¶
- class calibre.customize.conversion.InputFormatPlugin(*args)[source]¶
Grunder:
Plugin
InputFormatPlugins ansvarar för att konvertera ett dokument till HTML+OPF+CSS+etc. Resultatet av konverteringen måste kodas i UTF-8. Den viktigaste åtgärden händer i
convert()
.- type = 'Konverteringsinmatning'¶
Typen av denna insticksmodul. Används för kategorisera insticksmodul i användargränssnittet
- can_be_disabled = False¶
Om False, kommer inte användaren kunna deaktivera denna insticksmodul. Använd med försiktighet.
- supported_platforms = ['windows', 'osx', 'linux']¶
Lista över plattformar som den här insticksmodulen fungerar på. Till exempel:
['windows', 'osx', 'linux']
- file_types = {}¶
Uppsättning med filtyper som denna insticksmodul ska köra Till exempel:
set(['azw', 'mobi', 'prc'])
- is_image_collection = False¶
Om True, denna inmatning insticksmodul skapar en samling bilder, en per HTML-fil. Detta kan ställas in dynamiskt, i konverteringsmetoden om inmatningsfilerna kan vara både bildsamlingar och icke-bildsamlingar. Om du ställer in detta till True måste du implementera get_images () som returnerar en lista med bilder.
- core_usage = 1¶
Antal CPU-kärnor som används av denna insticksmodul. Ett värde av -1 betyder att den använder alla tillgängliga kärnor
- for_viewer = False¶
Om värdet är True, kommer inmatning insticksmodulen specialbearbeta att göra sitt utmatning lämpligt för visning
- output_encoding = 'utf-8'¶
Kodningen som denna inmatning insticksmodul skapar filer i. Ett värde på None betyder att kodningen är odefinierad och måste upptäckas var för sig
- common_options = {<calibre.customize.conversion.OptionRecommendation object>}¶
Alternativ som delas av alla inmatningsformatsinsticksmoduler. Åsidostätt inte i underklasser. Använd
options
istället. Varje alternativ ska vara en instans avOptionRecommendation
.
- options = {}¶
Alternativ för att anpassa beteendet för denna insticksmodul. Varje alternativ ska vara en instans av
OptionRecommendation
.
- recommendations = {}¶
En uppsättning av 3-tupler av formen (option_name, recommended_value, recommendation_level)
- get_images()[source]¶
Returnera en lista med absoluta sökvägar till bilderna, om denna inmatning insticksmodul representerar en bildsamling. Listan med bilder är i samma ordning som bokryggen och innehållsförteckningen.
- convert(stream, options, file_ext, log, accelerators)[source]¶
Denna metod måste implementeras i underklasser. Den måste returnera sökvägen till den skapade OPF-filen eller en
OEBBook
-instans. All utmatning ska ingå i den aktuella mappen. Om denna insticksmodul skapar filer utanför den aktuella mappen måste de tas bort/markeras för borttagning innan denna metod avslutas.- Parametrar:
stream – En fil som objekt som innehåller inmatningsfilen.
options – Alternativ för att anpassa konverteringen. Garanterat att ha attribut som motsvarar alla de alternativ som deklarerats av denna insticksmodul. Dessutom kommer det att ha en utförlig attribut som tar intergralvärden från noll och uppåt. Högre siffror innebär att vara mer utförlig. En annan användbar egenskap är
input_profile
det är en instans avcalibre.customize.profiles.InputProfile
.file_ext – Filtypsändelsen (utan .) i inmatningsfilen. Det är garanterat att vara en av de file_types stöds av denna insticksmodul.
log – Ett
calibre.utils.logging.Log
objekt. All utmatning bör använda detta objekt.accelerators – En ordbok för olika uppgifter inmatning insticksmodul kan få lätt som skulle kunna påskynda de efterföljande stegen i konverteringen.
- postprocess_book(oeb, opts, log)[source]¶
Anropas för att tillåta inmatning insticksmodul för att utföra efterbehandling efter att boken har analyserats.
- specialize(oeb, opts, log, output_fmt)[source]¶
Anropas för att tillåta inmatning insticksmodul att specialisera den analyserade boken för en viss utmatning format. Anropas efter postprocess_book och innan några omvandlingar utförs på den analyserade boken.
- gui_configuration_widget(parent, get_option_by_name, get_option_help, db, book_id=None)[source]¶
Anropas för att skapa gränssnittskomponenten som används för att anpassa denna insticksmodul i calibre-användaregränssnittet. Gränssnittskomponenten måste vara en instans av klassen PluginWidget. Se inbyggda inmatningsinsticksmoduler för exempel.
- class calibre.customize.conversion.OutputFormatPlugin(*args)[source]¶
Grunder:
Plugin
OutputFormatPlugins är ansvariga för att konvertera ett OEB-dokument (OPF+HTML) till e-bokutmatning.
OEB-dokumentet kan antas vara kodade i UTF-8. Den viktigaste åtgärden händer i
convert()
.- type = 'Konverteringsutmatning'¶
Typen av denna insticksmodul. Används för kategorisera insticksmodul i användargränssnittet
- can_be_disabled = False¶
Om False, kommer inte användaren kunna deaktivera denna insticksmodul. Använd med försiktighet.
- supported_platforms = ['windows', 'osx', 'linux']¶
Lista över plattformar som den här insticksmodulen fungerar på. Till exempel:
['windows', 'osx', 'linux']
- file_type = None¶
Filtypen (ändelse utan främre punkt) att denna insticksmodul utmatning
- common_options = {<calibre.customize.conversion.OptionRecommendation object>}¶
Alternativ som delas av alla inmatningsformatsinsticksmoduler. Åsidostätt inte i underklasser. Använd
options
istället. Varje alternativ ska vara en instans avOptionRecommendation
.
- options = {}¶
Alternativ för att anpassa beteendet för denna insticksmodul. Varje alternativ ska vara en instans av
OptionRecommendation
.
- recommendations = {}¶
En uppsättning av 3-tupler av formen (option_name, recommended_value, recommendation_level)
- property description¶
str(object=’’) -> str str(bytes_or_buffer[, encoding[, errors]]) -> str
Skapa ett nytt strängobjekt från det givna objektet. Om kodning eller fel anges måste objektet exponera en databuffert som kommer att avkodas med den givna kodningen och felhanteraren. Annars returneras resultatet av object.__str__() ((om definierat)) eller repr(object). kodning är som standard sys.getdefaultencoding(). fel är som standard ’strict’.
- convert(oeb_book, output, input_plugin, opts, log)[source]¶
Återge innehållet i oeb_book (som är en instans av:
calibre.ebooks.oeb.OEBBook
) till filen som anges av utgång.- Parametrar:
output – Antingen en fil som ett objekt eller en sträng. Om det är en sträng är det sökvägen till en mapp som kanske eller kanske inte finns. Utmatningsinsticksmodulen ska skriva dess utmatning till den mappen. Om det är en fil som objekt ska utmatningsinsticksmodulen skriva dess utmatning till filen.
input_plugin – Inmatningsinsticksmodulen som användes i början av konverteringsprocessen.
opts – Konverteringsalternativ. Garanterat att ha attribut som motsvarar OptionRecommendations av denna insticksmodul.
log – Loggern. Skriv ut felsöknings/infomeddelanden etc. med hjälp av denna.
- specialize_options(log, opts, input_fmt)[source]¶
Kan användas för att ändra värdena för konverteringsalternativ, som används av konverteringsprocessen.
- specialize_css_for_output(log, opts, item, stylizer)[source]¶
Kan användas för att göra ändringar i CSS under CSS-utplattningsprocessen.
- Parametrar:
item – Elementet (HTML-fil) som bearbetas
stylizer – Ett stiliseringsobjekt som innehåller de utplattade stilarna för posten. Du kan få stilen för alla element av stylizer.style(element).
- gui_configuration_widget(parent, get_option_by_name, get_option_help, db, book_id=None)[source]¶
Anropas för att skapa gränssnittskomponenten för att anpassa denna insticksmodul i calibres användargranssnittet. Gränssnittskomponenten måste vara en instans av klassen PluginWidget. Se inbyggda utmatningsinsticksmoduler för exempel.
Enhetsdrivrutiner¶
Basklass för alla drivrutiner är DevicePlugin
. Men om din enhet exponerar sig som en USBMS-enhet till operativsystemet, bör du använda USBMS-klassen istället eftersom den genomför all logik som behövs för att stöda dessa typer av enheter.
- class calibre.devices.interface.DevicePlugin(plugin_path)[source]¶
Grunder:
Plugin
Definierar gränssnitt som ska implementeras av bakomliggande system som kommunicerar med en e-bokläsenhet.
- type = 'Enhetsgränssnitt'¶
Typen av denna insticksmodul. Används för kategorisera insticksmodul i användargränssnittet
- FORMATS = ['lrf', 'rtf', 'pdf', 'txt']¶
Ordnad lista med format som stöds
- VENDOR_ID = 0¶
VENDOR_ID kan vara antingen ett heltal, en lista med heltal eller ett ordbok om det är ett ordbok, måste det vara en ordbok av ordböcker, på formen:
{ integer_vendor_id : { product_id : [list of BCDs], ... }, ... }
- PRODUCT_ID = 0¶
Ett heltal eller en lista med heltal
- BCD = None¶
BCD kan vara antingen None att inte skilja mellan enheter baserade på BCD, eller det kan vara en lista med BCD-numren för alla enheter som stöds av denna drivrutin.
- THUMBNAIL_HEIGHT = 68¶
Höjd för omslagsminiatyrbilder på enheten
- THUMBNAIL_COMPRESSION_QUALITY = 75¶
Komprimeringskvalitet för miniatyrbilder. Ställ in detta till närmare 100 för att få bättre kvalitet på miniatyrbilder med färre komprimeringsartefakter. Naturligtvis, miniatyrbilden blir större också.
- WANTS_UPDATED_THUMBNAILS = False¶
Ändra den till True om enheten stödjer uppdatering av omslagsminiatyrbilder under sync_booklists. Ställ in den till True kommer att be device.py att uppdatera omslagsminiatyrbilder under bokmatchning
- CAN_SET_METADATA = ['title', 'authors', 'collections']¶
Huruvida metadata om böckerna kan ställas in via GUI.
- CAN_DO_DEVICE_DB_PLUGBOARD = False¶
Hurvida enheten kan hantera device_db-metadatapluggbrädor
- path_sep = '/'¶
Sökvägsavskiljare för sökvägar till böcker på enheten
- icon = 'reader.png'¶
Ikon för denna enhet
- UserAnnotation¶
alias of
Annotation
- OPEN_FEEDBACK_MESSAGE = None¶
Det grafiska användargränssnittet visar detta som ett meddelande om inte None i statusfältet. Användbart om öppning kan ta lång tid
- VIRTUAL_BOOK_EXTENSIONS = frozenset({})¶
Uppsättning av tillägg som är ”virtuella böcker” på enheten och kan därför inte ses/sparas/läggas till biblioteket. Till exempel:
frozenset(['kobo'])
- VIRTUAL_BOOK_EXTENSION_MESSAGE = None¶
Meddelande att visa för användare av virtuella boktillägg.
- NUKE_COMMENTS = None¶
I fall det ska förstöra kommentarer i kopian av boken som skickas till enheten. Om inte None bör detta vara kort sträng som kommentarerna kommer att ersättas av.
- MANAGES_DEVICE_PRESENCE = False¶
Om True indikerar att den här drivrutinen helt hanterar enhetsupptäckt, utmatning och så vidare. Om du ställer in detta till True, måste du implementera detect_managed_devices och debug_managed_device_detection metoder. En drivrutin med denna inställning som True är ansvarig för att upptäckt av enheter, hantering av en svartlista över enheter, en lista över utmatade enheter och så vidare. calibre kommer med jämna mellanrum att anropa metoden detect_managed_devices() och om det returnerar en upptäckt enhet kommer calibre att anropa open(). open() kommer att anropas varje gång en enhet returneras även om tidigare anrop till open() misslyckades, därför måste drivrutinen bibehålla sin egen svartlista över misslyckade enheter. Likaså vid utmatning, kommer calibre att anropa eject() och sedan anta att nästa anrop till detect_managed_devices() returnerar None, anropar den post_yank_cleanup().
- SLOW_DRIVEINFO = False¶
Om värder är True, kommer calibre att anropa
get_driveinfo()
metoden efter att boklistor har lästs för att få ”driveinfo”.
- ASK_TO_ALLOW_CONNECT = False¶
Om värdet är True, kommer calibre fråga användaren om de vill hantera enheten med calibre, första gången den upptäcktes. Om du ställer in detta till True måste du implementera
get_device_uid()
ochignore_connected_device()
ochget_user_blacklisted_devices()
ochset_user_blacklisted_devices()
- user_feedback_after_callback = None¶
Ställ in detta i en ordbok med formuläret {’title’:title, ’msg’:msg, ’det_msg’:detailed_msg} för att calibre ska få ett meddelande till användaren efter att några återanrop har körts (för närvarande endast upload_books). Var försiktig så att du inte skräppostar användaren med för många meddelanden. Denna variabel kontrolleras efter varje anrop, så ställ in den bara när du verkligen behöver.
- classmethod get_open_popup_message()[source]¶
Det grafiska användargränssnittet visar detta som en icke-modal popup. Bör vara en instans av OpenPopupMessage
- is_usb_connected(devices_on_system, debug=False, only_presence=False)[source]¶
Returnera True, device_info om en enhet som hanteras av denna insticksmodul är ansluten.
- Parametrar:
devices_on_system – Lista med för närvarande anslutna enheter
- detect_managed_devices(devices_on_system, force_refresh=False)[source]¶
Anropas bara om MANAGES_DEVICE_PRESENCE är True.
Skanna efter enheter som denna drivrutin kan hantera. Ska returnera en enhetsobjekt om en enhet hittas. Detta syfte kommer att vidarebefordras till open() metoden som connected_device. Om ingen enhet hittas, retruneras None. Den återgivna objektet kan vara vad som helst, calibre använder inte den, det skickas bara till open().
Denna metod anropas periodiskt av användargränssnittet, så se till att den inte är för resurskrävande. Använd en cache för att undvika att upprepade gånger skanna systemet.
- Parametrar:
devices_on_system – Uppsättning av USB-enheter hittade på systemet.
force_refresh – Om True och drivrutinen använder en cache för att förhindra upprepad skanning måste cachen tömmas.
- debug_managed_device_detection(devices_on_system, output)[source]¶
Anropas bara om MANAGES_DEVICE_PRESENCE är True.
Bör skriva information om enheterna som upptäckts på systemet till utmatning, vilket är en fil som objekt.
Ska returnera True om en enhet upptäcktes och öppnades, annars False.
- reset(key='-1', log_packets=False, report_progress=None, detected_device=None)[source]¶
- Parametrar:
key – Nyckeln för att låsa upp enheten
log_packets – Om True paketströmmen till/från enheten loggas
report_progress – Funktion som anropas med %-förlopp (tal mellan 0 och 100) för olika uppgifter. Om den anropas med -1 betyder det att uppgiften inte har någon förloppsinformation
detected_device – Enhetsinformation från enhetsskannaren
- can_handle_windows(usbdevice, debug=False)[source]¶
Valfri metod för att utföra ytterligare kontroller på en enhet för att se om den här drivrutinen kan hantera det. Om den inte är det ska den returnera False. Den här metoden anropas först efter att leverantören, produkt-ID:et och bcd:et har matchats, så det kan göra några relativt tidskrävande kontroller. Standardimplementeringen returnerar True. Den här metoden anropas bara på Windows. Se även
can_handle()
.Observera att för enheter baserade på USBMS denna metod delegerar som standard till
can_handle()
. Så du behöver bara åsidosättacan_handle()
i din underklass av USBMS.- Parametrar:
usbdevice – En USB-enhet som returneras av
calibre.devices.winusb.scan_usb_devices()
- can_handle(device_info, debug=False)[source]¶
Unix-version av
can_handle_windows()
.- Parametrar:
device_info – Är en tupel av (VID, pid, BCD, tillverkare, produkt, serienummer)
- open(connected_device, library_uuid)[source]¶
Utför specifik initiering på alla enheter. Anropas efter att enheten har upptäckts men innan några andra funktioner kommunicerar med enheten. Till exempel: För enheter som presenterar sig som USB-masslagringsenheter, skulle denna metod vara ansvarig för montering av enheten eller om enheten har en automatisk montering, för att ta reda på var det har monterats. Metoden
calibre.devices.usbms.device.Device.open()
har en implementering av denna funktion som bör tjäna som ett gott exempel för USB-masslagringsenheter.Denna metod kan indikera ett OpenFeedback-undantag för att visa ett meddelande till användaren.
- Parametrar:
connected_device – Enheten som vi försöker öppna. Det är en typ av (leverantörs-ID, produkt-id, bcd, tillverkarens namn, produktnamn, enhetens serienummer). Vissa enheter har emellertid inget serienummer och på Windows finns bara de tre första fälten, resten är None.
library_uuid – UUID:et för det aktuella calibre-biblioteket. Kan vara None om det inte finns något bibliotek (till exempel när det används från kommandoraden).
- eject()[source]¶
Avmontera/mata ut enheten från OS. Detta innebär inte kontroll om det finns väntande jobb som behöver kommuniceras med enheten.
OBS: Att denna metod inte kan anropas på samma tråd som resten av enhetsmetoderna.
- set_progress_reporter(report_progress)[source]¶
Ändra en funktion för att rapportera förloppsinformationen.
- Parametrar:
report_progress – Funktion som anropas med %-förlopp (tal mellan 0 och 100) för olika uppgifter. Om den anropas med -1 betyder det att uppgiften inte har någon förloppsinformation
- get_device_information(end_session=True)[source]¶
Fråga enheten efter enhetsinformation . Se L{DeviceInfoQuery}.
- Returnerar:
(enhetsnamn, enhetsversion, mjukvaruversion på enheten, MIME-typ) Tupeln kan valfritt ha ett femte element, som är en enhetsinformationsordbok. Se usbms.driver för ett exempel.
- get_driveinfo()[source]¶
Returnera driveinfo-ordboken. Anropas vanligtvis från get_device_information(), men om inläsningen av driveinfo är långsam för den här drivrutinen, bör den ställa in SLOW_DRIVEINFO. I det här fallet kommer den här metoden at anropas av calibre efter att boklistorna har lästs in. Observera att den inte anropas på enhetstråden, så drivrutinenbör cachelagra enhetsinformationen i metoden books() och den här funktionen bör returnera cachade data.
- card_prefix(end_session=True)[source]¶
Returnera en lista med 2 element med prefixet till sökvägar på korten. Om inget kort är förinställt ställs None in som kortets prefix. Till exempel (’/plats’, ’/plats2’) (None, ’plats2’) (’plats’, None) (None, None)
- total_space(end_session=True)[source]¶
- Få total utrymme på monteringspunkter:
Huvudminne
Minneskort A
Minneskort B
- Returnerar:
En 3-elementlista med totalt utrymme i oktetter av (1, 2, 3). Om en viss enhet inte har någon av dessa platser den ska visa 0.
- free_space(end_session=True)[source]¶
- Få ledigt utrymme på monteringspunkter:
Huvudminne
Kort A
Kort B
- Returnerar:
En 3-elementlista med fritt utrymme i oktetter av (1, 2, 3). Om en viss enhet inte har någon av dessa platser den ska returnera -1.
- books(oncard=None, end_session=True)[source]¶
Returnera en lista med e-böcker på enheten.
- Parametrar:
oncard – Om ”carda” eller ”cardb” returnerar en lista med e-böcker på det specifika minneskortet, annars returneras en lista med e-böcker i huvudminnet av enheten. Om ett kort är specificerad och inga böcker finns på kortet returneras en tomma listan.
- Returnerar:
En BookList.
- upload_books(files, names, on_card=None, end_session=True, metadata=None)[source]¶
Överför en lista med böcker till enheten. Om en fil redan finns på enheten, ska den ersättas. Denna metod bör signalera ett
FreeSpaceError
om det inte finns tillräckligt med ledigt utrymme på enheten. Texten till FreeSpaceError måste innehålla ordet ”kort” omon_card
inte None annars måste innehålla ordet ”minne”.- Parametrar:
files – En lista med sökvägar
names – En lista med filnamn som böckerna skulle ha när väl överförda till enheten. len(names) == len(files)
metadata – Om inte None, det är en lista med
Metadata
objekt. Tanken är att använda metadata för att avgöra var på enheten att lägga boken. len(metadata) == len(files). Bortsett från det vanliga omslaget (sökväg för omslaget), kan det också finnas ett omslagsminiatyrbildattribut, som ska användas istället. Omslagsminiatyrbildattributet är på formen (bredd, höjd, cover_data som jpeg).
- Returnerar:
En lista med 3-elements tupler. Listan är tänkt att skickas till
add_books_to_metadata()
.
- classmethod add_books_to_metadata(locations, metadata, booklists)[source]¶
Lägg till platser i boklistorna. Denna funktion får inte kommunicera med enheten.
- Parametrar:
locations – Resultat av ett anrop till L{upload_books}
metadata – Lista med
Metadata
objekt, samma som förupload_books()
.booklists – En tupel innehåller resultatet av anrop till (
books(oncard=None)()
,books(oncard='carda')()
, :meth`books(oncard=’cardb’)`).
- classmethod remove_books_from_metadata(paths, booklists)[source]¶
Ta böcker från metadatalistan. Denna funktion får inte kommunicera med enheten.
- Parametrar:
paths – sökvägar till böcker på enheten.
booklists – En tupel innehåller resultatet av anrop till (
books(oncard=None)()
,books(oncard='carda')()
, :meth`books(oncard=’cardb’)`).
- sync_booklists(booklists, end_session=True)[source]¶
Uppdatera metadata på enheten.
- Parametrar:
booklists – En tupel innehåller resultatet av anrop till (
books(oncard=None)()
,books(oncard='carda')()
, :meth`books(oncard=’cardb’)`).
- get_file(path, outfile, end_session=True)[source]¶
Läs filen på
sökväg
på enheten och skriva den till utfil.- Parametrar:
outfile – filobjekt som
sys.stdout
eller resultatet av ettopen()
anrop.
- classmethod config_widget()[source]¶
Bör returnera en QWidget-gränssnittskomponent. QWidget-gränssnittskomponent innehåller inställningarna för enhetens gränssnitt
- classmethod save_settings(settings_widget)[source]¶
Ska spara inställningarna på disken. Tar gränssnittskomponenten skapad i
config_widget()
och sparar alla inställningar på disken.
- classmethod settings()[source]¶
Ska returnera ett opts objekt. Den opts-objektet bör ha minst ett attribut format_map vilket är en ordnad lista med format för enheten.
- set_plugboards(plugboards, pb_func)[source]¶
tillhandahåll drivrutinen den aktuella uppsättningen av pluggbrädor och en funktion för att välja pluggbräda. Denna metod anropas omedelbart före add_books och sync_booklists.
- pb_func är anropbar med följande signatur:
def pb_func(device_name, format, pluggbrädor)
Du ger den det aktuella enhetsnamnet (antingen klassnamnet eller DEVICE_PLUGBOARD_NAME), formatet du är intresserad av (ett ”riktigt” format eller ”device_db”) och de pluggbrädor (du fick dem av set_plugboards, på samma plats som du fick den här metoden).
- Returnerar:
Ingen eller en pluggbrädsinstans.
- set_driveinfo_name(location_code, name)[source]¶
Ange enhetens namn i driveinfo-filen till ”namn”. Inställningen kvarstår tills filen återskapas eller namnet ändras igen.
Icke-diskenheter bör genomföra denna metod baserad på platskoder som returneras av get_device_information() metoden.
- prepare_addable_books(paths)[source]¶
Genom att få en lista med sökvägar, returneras en annan lista med sökvägar. Dessa sökvägar hänvisar till tilläggningsbara versioner av böckerna.
Om det finns ett fel vid förberedning av en bok, så i stället för en sökväg, den position i den återgivna listan för att boken ska vara en tre tupel: (original_path, undantaget instans, återsöknings)
- startup()[source]¶
Anropas när calibre starar enheten. Gör godtycklig initiering som krävs. Observera att flera instanser av klassen kan instansieras, och därför kan __init__ anropas flera gånger, men bara en instans kommer att anropa denna metod. Denna metod anropas på enhetens processtråd, inte på tråden för det grafiska gränssnittet.
- shutdown()[source]¶
Anropas när calibre stängs, antingen för gott eller under förberedelser för omstart. Gör den sanering som krävs. Denna metod anropas på enhetens processtråd, inte tråden för det grafiska gränssnittet.
- get_device_uid()[source]¶
Måste returnera ett unikt id för den för närvarande anslutna enheten (detta anropas omedelbart efter ett lyckat anrop till open()). Du måste implementera den här metoden om du ställer in ASK_TO_ALLOW_CONNECT = True
- ignore_connected_device(uid)[source]¶
Borde ignorera enheten som identifieras av uid (resultatet av ett anrop till get_device_uid()) i framtiden. Du måste implementera denna metod om du ställer in ASK_TO_ALLOW_CONNECT = True. Observera att denna funktion anropas direkt efter open(), så om open() buffrar vissa tillstånd, bör drivrutinen återställa det tillståndet.
- get_user_blacklisted_devices()[source]¶
Returnera karta över enhet uid till kortnamn för alla enheter som användaren har begärt att få ignorerade.
- set_user_blacklisted_devices(devices)[source]¶
Ställ in listan med enheters uid:er som ska ignoreras av denna drivrutin.
- specialize_global_preferences(device_prefs)[source]¶
Implementera denna metod om din enhet vill åsidosätta en viss preferens. Du måste se till att alla anrops platser som vill ha en inställning som kan åsidosättas använder device_prefs [’något’] istället för prefs[’något’]. Din metod ska anropa device_prefs.set_overrides(pref = val, pref = val, …). För närvarande används för: metadata management (prefs[’manage_device_metadata’])
- set_library_info(library_name, library_uuid, field_metadata)[source]¶
Implementera den här metoden om du vill ha information om det aktuella calibre-biblioteket. Denna metod anropas vid start och när calibre-biblioteket ändras medan det är anslutet.
- is_dynamically_controllable()[source]¶
Anropas av enhetshanteraren vid start av insticksmodul. Om den här metoden returnerar en sträng, då a) den stödjer enhetshanteraren dynamiska kontroll gränssnitt, och b) det namnet ska användas när man talar med insticksmodulen.
Den här metoden kan anropas i GUI-processtråden. En drivrutin som implementerar den här metoden måste vara trådsäkert.
- start_plugin()[source]¶
Denna metod anropas för att starta insticksmodulen. Insticksmodulen ska börja acceptera enhetsanslutningar men det gör det. Om insticksmodulen redan acceptera anslutningar, så görs ingenting.
Den här metoden kan anropas i GUI-processtråden. En drivrutin som implementerar den här metoden måste vara trådsäkert.
- stop_plugin()[source]¶
Denna metod anropas för att stoppa insticksmodulen. Insticksmodulen ska inte längre acceptera anslutningar och bör städa upp efter sig. Det är troligt att denna metod ska anropa avstängning. Om insticksmodulen redan inte accepterar anslutningar, görs ingenting.
Den här metoden kan anropas i GUI-processtråden. En drivrutin som implementerar den här metoden måste vara trådsäkert.
- get_option(opt_string, default=None)[source]¶
Returnera värdet av optionen indikerad av opt_string. Den här metoden kan anropas när insticksmodulen inte startats. Returnera None om alternativet inte finns.
Den här metoden kan anropas i GUI-processtråden. En drivrutin som implementerar den här metoden måste vara trådsäkert.
- set_option(opt_string, opt_value)[source]¶
Ange värdet av alternativ som indikeras av opt_string. Den här metoden kan anropas när insticksmodulen inte startats.
Den här metoden kan anropas i GUI-processtråden. En drivrutin som implementerar den här metoden måste vara trådsäkert.
- is_running()[source]¶
Returnera True om insticksmodulen startas, annars falsk
Den här metoden kan anropas i GUI-processtråden. En drivrutin som implementerar den här metoden måste vara trådsäkert.
- synchronize_with_db(db, book_id, book_metadata, first_call)[source]¶
Anropas vid bokmatchning när en bok på enheten matchar en bok i calibres databas. Metoden ansvarar för att synkronisera data från enheten till calibres databas (om det behövs).
Metoden ska returnera en tvåvärdig tupel. Det första värdet är en uppsättning av calibre-bok-id:et som ändras om calibres databas ändrades eller None om databasen inte ändrades. Om det första värdet är en tom uppsättning uppdateras metadata för boken på enheten med calibres metadata och ges tillbaka till enheten, men ingen grafisktgränsnittsuppdatering av den boken sker. Detta är användbart när calibre-data är korrekt men måste skickas till enheten.
Det andra värdet är i sig en 2-värde tupel. Det första värdet i tupeln anger om ett bokformat ska skickas till enheten. Syftet är att tillåta verifiering av att boken på enheten är densamma som boken i calibre. Detta värde måste vara ”None” om ingen bok ska skickas, annars returnera basfilnamnet på enheten (en sträng som foobar.epub). Se till att inkludera ändelsen i namnet. Enhetsundersystemet kommer att skapa ett send_books-jobb för alla böcker med ”not-None” återgivna värden. Observera: Förutom att senare hämta tillägget ignoreras namnet i fall där enheten använder en mall för att skapa filnamnet, vilket de flesta gör. Det andra värdet i den återgivna tupeln indikerade om formatet är framtidsdaterat. Returnera True om det är, annars returnera False. calibre visar en dialogruta för användaren som listar alla framtidsdaterade böcker.
Extremt viktigt: den här metoden anropas på GUI-processtråden. Den måste vara trådsäker i förhållande till enhetens huvudtråd.
book_id: calibre id för boken i databasen. book_metadata: Metadataobjektet för boken som kommer från enheten. first_call: True om det är första anropet under en synkronisering, False annars
- class calibre.devices.interface.BookList(oncard, prefix, settings)[source]¶
Grunder:
list
En lista med böcker. Varje bokpost måste ha fälten
titel
författare
storlek (filstorlek av boken)
datumtid (en UTC-tids tupel)
sökväg (sökväg på enheten till boken)
omslagsminiatyrbild (kan vara None) omslagsminiatyrbild är antingen ett str/byte-objekt med bilddata eller det borde ha ett attribut image_path som lagrar en absolut (plattformsberoende) sökvägen till bilden
taggar (en lista med strängar, kan vara tom).
- add_book(book, replace_metadata)[source]¶
Lägg boken i boklistan. Avsikten är att behålla alla enheters interna metadata. Returnera True om boklistor måste synkroniseras
- get_collections(collection_attributes)[source]¶
Returnera en ordbok med samlingar som skapats från collection_attributes. Varje post i ordboken är på formen kollektionsnamn:[lista med böcker]
Listan med böcker sorterad efter boktitel, förutom samlingar som skapats från serien, i vilket fall series_index används.
- Parametrar:
collection_attributes – En lista med attribut av bokpost
USB-masslagringsbaserade enheter¶
Basklass för sådan enhet är calibre.devices.usbms.driver.USBMS
. Denna klass ärver i sin tur en del av dess funktioner från sina baser, dokumenterad nedan. En typisk grund USBMS baserad drivrutin ser ut så här:
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)[source]¶
Grunder:
DeviceConfig
,DevicePlugin
Denna klass ger logik som är gemensam för alla drivrutiner för enheter som exporterar själva som USB-masslagringsenheter. Ger implementationer för montering/utmatning av USBMS-enheter på alla plattformar.
- VENDOR_ID = 0¶
VENDOR_ID kan vara antingen ett heltal, en lista med heltal eller ett ordbok om det är ett ordbok, måste det vara en ordbok av ordböcker, på formen:
{ integer_vendor_id : { product_id : [list of BCDs], ... }, ... }
- PRODUCT_ID = 0¶
Ett heltal eller en lista med heltal
- BCD = None¶
BCD kan vara antingen None att inte skilja mellan enheter baserade på BCD, eller det kan vara en lista med BCD-numren för alla enheter som stöds av denna drivrutin.
- WINDOWS_MAIN_MEM = None¶
Sträng som identifierar enhetens huvudminne i Windows PnP-id-strängarna Detta kan vara Inga, sträng, lista över strängar eller kompilerad regex
- WINDOWS_CARD_A_MEM = None¶
Sträng som identifierar enhetens första kort i Windows PnP-id-strängarna Detta kan vara None, sträng, lista över strängar eller kompilerad regex
- WINDOWS_CARD_B_MEM = None¶
Sträng som identifierar enhetens andra kort i Windows PnP-id-strängarna Detta kan vara Inga, sträng, lista över strängar eller kompilerad regex
- OSX_MAIN_MEM_VOL_PAT = None¶
Används av den nya drivrutinens upptäckaren för att klargöra huvudminnet från minneskort. Bör vara ett reguljärt uttryck som matchar huvudminnets monteringspunkt tilldelad av macOS
- BACKLOADING_ERROR_MESSAGE = None¶
- MAX_PATH_LEN = 250¶
Största längd av sökvägar som skapas på enheten
- NEWS_IN_FOLDER = True¶
Lägg nyheter i sin egen mapp
- reset(key='-1', log_packets=False, report_progress=None, detected_device=None)[source]¶
- Parametrar:
key – Nyckeln för att låsa upp enheten
log_packets – Om True paketströmmen till/från enheten loggas
report_progress – Funktion som anropas med %-förlopp (tal mellan 0 och 100) för olika uppgifter. Om den anropas med -1 betyder det att uppgiften inte har någon förloppsinformation
detected_device – Enhetsinformation från enhetsskannaren
- set_progress_reporter(report_progress)[source]¶
Ändra en funktion för att rapportera förloppsinformationen.
- Parametrar:
report_progress – Funktion som anropas med %-förlopp (tal mellan 0 och 100) för olika uppgifter. Om den anropas med -1 betyder det att uppgiften inte har någon förloppsinformation
- card_prefix(end_session=True)[source]¶
Returnera en lista med 2 element med prefixet till sökvägar på korten. Om inget kort är förinställt ställs None in som kortets prefix. Till exempel (’/plats’, ’/plats2’) (None, ’plats2’) (’plats’, None) (None, None)
- total_space(end_session=True)[source]¶
- Få total utrymme på monteringspunkter:
Huvudminne
Minneskort A
Minneskort B
- Returnerar:
En 3-elementlista med totalt utrymme i oktetter av (1, 2, 3). Om en viss enhet inte har någon av dessa platser den ska visa 0.
- free_space(end_session=True)[source]¶
- Få ledigt utrymme på monteringspunkter:
Huvudminne
Kort A
Kort B
- Returnerar:
En 3-elementlista med fritt utrymme i oktetter av (1, 2, 3). Om en viss enhet inte har någon av dessa platser den ska returnera -1.
- windows_sort_drives(drives)[source]¶
Anropas för att klargöra huvudminnet och minneskortet för enheter som inte skiljer mellan dem på grundval av WINDOWS_CARD_NAME. Till exempel: EB600
- can_handle_windows(usbdevice, debug=False)[source]¶
Valfri metod för att utföra ytterligare kontroller på en enhet för att se om den här drivrutinen kan hantera det. Om den inte är det ska den returnera False. Den här metoden anropas först efter att leverantören, produkt-ID:et och bcd:et har matchats, så det kan göra några relativt tidskrävande kontroller. Standardimplementeringen returnerar True. Den här metoden anropas bara på Windows. Se även
can_handle()
.Observera att för enheter baserade på USBMS denna metod delegerar som standard till
can_handle()
. Så du behöver bara åsidosättacan_handle()
i din underklass av USBMS.- Parametrar:
usbdevice – En USB-enhet som returneras av
calibre.devices.winusb.scan_usb_devices()
- open(connected_device, library_uuid)[source]¶
Utför specifik initiering på alla enheter. Anropas efter att enheten har upptäckts men innan några andra funktioner kommunicerar med enheten. Till exempel: För enheter som presenterar sig som USB-masslagringsenheter, skulle denna metod vara ansvarig för montering av enheten eller om enheten har en automatisk montering, för att ta reda på var det har monterats. Metoden
calibre.devices.usbms.device.Device.open()
har en implementering av denna funktion som bör tjäna som ett gott exempel för USB-masslagringsenheter.Denna metod kan indikera ett OpenFeedback-undantag för att visa ett meddelande till användaren.
- Parametrar:
connected_device – Enheten som vi försöker öppna. Det är en typ av (leverantörs-ID, produkt-id, bcd, tillverkarens namn, produktnamn, enhetens serienummer). Vissa enheter har emellertid inget serienummer och på Windows finns bara de tre första fälten, resten är None.
library_uuid – UUID:et för det aktuella calibre-biblioteket. Kan vara None om det inte finns något bibliotek (till exempel när det används från kommandoraden).
- eject()[source]¶
Avmontera/mata ut enheten från OS. Detta innebär inte kontroll om det finns väntande jobb som behöver kommuniceras med enheten.
OBS: Att denna metod inte kan anropas på samma tråd som resten av enhetsmetoderna.
- sanitize_callback(path)[source]¶
Tillbakaanrop för att låta enskilda drivrutiner åsidosätta sökvägens sanering som används av
create_upload_path()
.
- filename_callback(default, mi)[source]¶
Tillbakaanrop för att låta enskilda drivrutiner ändra standard filnamnet fastställt av
create_upload_path()
.
- class calibre.devices.usbms.driver.USBMS(plugin_path)[source]¶
-
Basklass för alla USBMS-enheter. Implementerar logiken för att skicka/få/uppdatera metadata/buffra metadata/etc.
- description = 'Kommunicera med en läsenhet.'¶
En kort sträng som beskriver vad denna insticksmodul gör
- author = 'John Schember'¶
Författare av denna insticksmodul
- supported_platforms = ['windows', 'osx', 'linux']¶
Lista över plattformar som den här insticksmodulen fungerar på. Till exempel:
['windows', 'osx', 'linux']
- booklist_class¶
alias of
BookList
- book_class¶
alias of
Book
- FORMATS = []¶
Ordnad lista med format som stöds
- CAN_SET_METADATA = []¶
Huruvida metadata om böckerna kan ställas in via GUI.
- get_device_information(end_session=True)[source]¶
Fråga enheten efter enhetsinformation . Se L{DeviceInfoQuery}.
- Returnerar:
(enhetsnamn, enhetsversion, mjukvaruversion på enheten, MIME-typ) Tupeln kan valfritt ha ett femte element, som är en enhetsinformationsordbok. Se usbms.driver för ett exempel.
- set_driveinfo_name(location_code, name)[source]¶
Ange enhetens namn i driveinfo-filen till ”namn”. Inställningen kvarstår tills filen återskapas eller namnet ändras igen.
Icke-diskenheter bör genomföra denna metod baserad på platskoder som returneras av get_device_information() metoden.
- books(oncard=None, end_session=True)[source]¶
Returnera en lista med e-böcker på enheten.
- Parametrar:
oncard – Om ”carda” eller ”cardb” returnerar en lista med e-böcker på det specifika minneskortet, annars returneras en lista med e-böcker i huvudminnet av enheten. Om ett kort är specificerad och inga böcker finns på kortet returneras en tomma listan.
- Returnerar:
En BookList.
- upload_books(files, names, on_card=None, end_session=True, metadata=None)[source]¶
Överför en lista med böcker till enheten. Om en fil redan finns på enheten, ska den ersättas. Denna metod bör signalera ett
FreeSpaceError
om det inte finns tillräckligt med ledigt utrymme på enheten. Texten till FreeSpaceError måste innehålla ordet ”kort” omon_card
inte None annars måste innehålla ordet ”minne”.- Parametrar:
files – En lista med sökvägar
names – En lista med filnamn som böckerna skulle ha när väl överförda till enheten. len(names) == len(files)
metadata – Om inte None, det är en lista med
Metadata
objekt. Tanken är att använda metadata för att avgöra var på enheten att lägga boken. len(metadata) == len(files). Bortsett från det vanliga omslaget (sökväg för omslaget), kan det också finnas ett omslagsminiatyrbildattribut, som ska användas istället. Omslagsminiatyrbildattributet är på formen (bredd, höjd, cover_data som jpeg).
- Returnerar:
En lista med 3-elements tupler. Listan är tänkt att skickas till
add_books_to_metadata()
.
- upload_cover(path, filename, metadata, filepath)[source]¶
Överför bokomslag till enheten. Standard implementationen gör ingenting.
- Parametrar:
path – Den fullständiga sökvägen till mappen där den tillhörande boken är placerad.
filename – Namnet på bokfilen utan ändelse.
metadata – metadata som hör till boken. Använd metadata.thumbnail för omslag
filepath – Fullständig sökväg till e-bokfilen
- add_books_to_metadata(locations, metadata, booklists)[source]¶
Lägg till platser i boklistorna. Denna funktion får inte kommunicera med enheten.
- Parametrar:
locations – Resultat av ett anrop till L{upload_books}
metadata – Lista med
Metadata
objekt, samma som förupload_books()
.booklists – En tupel innehåller resultatet av anrop till (
books(oncard=None)()
,books(oncard='carda')()
, :meth`books(oncard=’cardb’)`).
- remove_books_from_metadata(paths, booklists)[source]¶
Ta böcker från metadatalistan. Denna funktion får inte kommunicera med enheten.
- Parametrar:
paths – sökvägar till böcker på enheten.
booklists – En tupel innehåller resultatet av anrop till (
books(oncard=None)()
,books(oncard='carda')()
, :meth`books(oncard=’cardb’)`).
Användargränssnittsåtgärder¶
Om du lägger till din egen insticksmodul i en ZIP-fil, bör du underklassa både InterfaceActionBase och InterfaceAction. load_actual_plugin()
-metoden för din InterfaceActionBase-underklass måste returnera ett exemplifierat objekt för din InterfaceBase underklass.
- class calibre.gui2.actions.InterfaceAction(parent, site_customization)[source]¶
Baser:
QObject
En insticksmodul som representerar en ”åtgärd” som kan tas i grafiska användargränssnittet. Alla post i verktygsfältet och snabbmenyer implementerar av dessa insticksmodul.
Observera att den här klassen är basklassen för dessa insticksmodul, dock att integrera insticksmodulen med calibres insticksmodul system, måste du göra en omslagsklass som refererar till den faktiska insticksmoduln. Se
calibre.customize.builtins
modul för exempel.Om två
InterfaceAction
objekt har samma namn, tar den med högre prioritet företräde.Underklasser bör implementera
genesis()
,library_changed()
,location_selected()
,shutting_down()
,initialization_complete()
ochtag_browser_context_action()
metoder.När initierats, har denna insticksmodul tillgång till calibres huvudanvändargränssnitt via
gui
medlem. Du kan komma åt andra insticksmodul med namn, till exempel:self.gui.iactions['Save To Disk']
För att få åktomst till själva insticksmodulen, använd attributet
interface_action_base_plugin
, detta attribut blir först tillgänglig efter att insticksmodulen har initierats. Användbart om du vill använda metoder från insticksmodulsklassen som do_user_config().QAction anges av
action_spec
skapas automatiskt och blir tillgänglig viaself.qaction
.- name = 'Implement me'¶
Insticksmodulnamnet. Om två insticksmodul med samma namn är närvarande, tar en med högre prioritet företräde.
- priority = 1¶
Insticksmodulsprioritet. Om två insticksmodul med samma namn är närvarande, tar den med högre prioritet företräde.
- popup_type = 1¶
Menypopuptypen för när denna insticksmodul läggs till i ett verktygsfält
- auto_repeat = False¶
Huruvida denna åtgärd ska upprepas automatiskt när dess genvägsknapp hålls nedtryckt.
- action_spec = ('text', 'icon', None, None)¶
Av formen: (text, icon_path, tooltip, keyboard shortcut). ikon, verktygstips och kortkommandon kan vara None. kortkommandon måste vara antingen en sträng, None eller en rad genvägar. Om None, en kortkommando som motsvarar åtgärden registreras inte. Om du passerar en tom tuppel, registreras genvägen utan någon förinställd tangentbindning.
- action_shortcut_name = None¶
Om inte None, används för namnet som visas för användaren när man anpassar kortkommandon för ovanstående åtgärdsspecifikation istället för action_spec[0]
Om True, skapas en meny automatiskt och läggs till i self.qaction
Om True, läggs en klon av self.qaction till menyn för self.qaction Om du vill att texten i den här åtgärden ska vara annorlunda än self.qaction, ställ in den här variabeln till den nya texten
- dont_add_to = frozenset({})¶
Uppsättning av platser som denna åtgärd får inte tilläggas. Se
all_locations
för en lista med möjliga platser
- dont_remove_from = frozenset({})¶
Uppsättning av platser som denna åtgärd inte får ta bort. Se
all_locations
för en lista med möjliga platser
- action_type = 'global'¶
Typ av åtgärd ”aktuell” innebär, agerar på den aktuella vyn ”global”: en åtgärd som inte verkar på den aktuella vyn, utan snarare på calibre som helhet
- accepts_drops = False¶
Om True, kommer detta InterfaceAction att ha möjlighet att interagera med dra och släpp händelser. Se de metoder,
accept_enter_event()
, :meth`:accept_drag_move_event`,drop_event()
för mer information.
- accept_enter_event(event, mime_data)[source]¶
Metoden ska returnera True om och endast detta gränssnitt åtgärd kan hantera dra händelsen. Anropa inte acceptera/ignorera vid händelsen, som kommer att tas om hand av den calibre UI.
- accept_drag_move_event(event, mime_data)[source]¶
Metoden ska returnera True om och endast detta gränssnitt åtgärd kan hantera dra händelsen. Anropa inte acceptera/ignorera vid händelsen, som kommer att tas om hand av den calibre UI.
- drop_event(event, mime_data)[source]¶
Denna metod bör utföra några användbara åtgärder och returnera True om endast om denna gränssnittsåtgärd kan hantera händelsen ”drop”. Anropa inte acceptera/ignorera vid händelsen, som kommer att tas om hand av calibre-användargränssnittet. Du bör inte utföra blockerade/långa operationer i denna funktion. Sänd istället en signal eller använd QTimer.singleShot och återvänd snabbt. Se de inbyggda åtgärderna för exempel.
Bekväm metod för att enkelt lägga handlingar till en QMenu. returnerar den skapade QAction. Denna åtgärd har ett extra attribut calibre_shortcut_unique_name som om den inte None avser det unika namn under vilket denna åtgärd är registrerad med tangentbordsansvarig.
- Parametrar:
menu – Den QMenu som den nyligen skapade åtgärden läggs till i
unique_name – Ett unikt namn för den här åtgärden, det måste vara globalt unikt, så gör det så beskrivande som möjligt. Om du är osäker, lägg till ett uuid i den.
text – Texten för denna åtgärd.
icon – Antingen en QIcon eller ett filnamn. Filnamnet skickas till QIcon.ic() inbyggda, så du behöver inte ange den fullständiga sökvägen till bildmappen.
shortcut – En sträng, en lista med strängar, None eller False. Om False har ingen tangentbordsgenväg registrerats för denna åtgärd. Om None har ett tangentbordsgenväg med ingen standardtangentbindning registrerats. Sträng och lista med strängar registrerar en genväg med standardtangentbindning som angetts.
description – En beskrivning för denna åtgärd. Används för att ställa in verktygstips.
triggered – En anropbar som är ansluten till den utlösta signalen i den skapade åtgärden.
shortcut_name – Texten som visas för användaren när man anpassar tangentbordsgenvägar för denna åtgärd. Som standard är den inställd på värdet
text
.persist_shortcut – Genvägar för åtgärder som inte alltid visas, eller som är biblioteksberoende, kan försvinna när andra tangentbordsgenvägar redigeras om inte
`persist_shortcut`
är inställt på True.
- load_resources(names)[source]¶
Om denna insticksmodul kommer i en ZIP-fil (användartillagd insticksmodul), kommer denna metod tillåta dig läsa in resurser från ZIP-fil.
Till exempel att läsa in en bild:
pixmap = QPixmap() pixmap.loadFromData(tuple(self.load_resources(['images/icon.png']).values())[0]) icon = QIcon(pixmap)
- Parametrar:
names – Förteckning över sökvägar till resurser i ZIP-filen som använder / som avskiljare
- Returnerar:
En ordbok med formen
{name : file_contents}
. Namn som inte finns i ZIP-filen kommer inte att vara närvarande i ordboken.
- genesis()[source]¶
Ställ in denna insticksmodul. Endast anropas en gång under initieringen. self.gui är tillgänglig. Den funktion som specificerats
action_spec
finns somself.qaction
.
- location_selected(loc)[source]¶
Anropas när boklistan som visas i calibre ändras. För närvarande är värden för loc:
library, main, card och cardb
.Denna metod bör aktivera/inaktivera denna åtgärd och dess underåtgärder som är lämpliga för platsen.
- library_about_to_change(olddb, db)[source]¶
Anropas var gång det aktuella biblioteket är ändrat.
- Parametrar:
olddb – LibraryDatabasen som motsvarar det förra biblioteket.
db – LibraryDatabasen som motsvarar det nya biblioteket.
- library_changed(db)[source]¶
Anropas var gång det aktuella biblioteket är ändrat.
- Parametrar:
db – LibraryDatabase motsvarar det aktuella biblioteket.
- gui_layout_complete()[source]¶
Anropas en gång per åtgärd när layouten för huvudgränssnittet är klar. Om din åtgärd behöver göra ändringar i layouten bör de göras här snarare än i
initialization_complete()
.
- initialization_complete()[source]¶
Anropas en gång per åtgärd när installationen av huvud-GUI är färdigt.
- tag_browser_context_action(index)[source]¶
Anropas när snabbmenyn visas i taggbläddraren.
index
är QModelIndex som hänvisar till taggbläddrarposterna som högerklickades. Testa giltigheten med index.valid() och få den underliggande TagTreeItem-posten med index.data(Qt.ItemDataRole.UserRole). Eventuella åtgärdsobjekt som ges av denna metod läggs till i snabbmenyn.
- class calibre.customize.InterfaceActionBase(*args, **kwargs)[source]¶
Grunder:
Plugin
- supported_platforms = ['windows', 'osx', 'linux']¶
Lista över plattformar som den här insticksmodulen fungerar på. Till exempel:
['windows', 'osx', 'linux']
- author = 'Kovid Goyal'¶
Författare av denna insticksmodul
- type = 'Användargränssnittsåtgärd'¶
Typen av denna insticksmodul. Används för kategorisera insticksmodul i användargränssnittet
- can_be_disabled = False¶
Om False, kommer inte användaren kunna deaktivera denna insticksmodul. Använd med försiktighet.
Inställningar insticksmodul¶
- class calibre.customize.PreferencesPlugin(plugin_path)[source]¶
Grunder:
Plugin
En insticksmodul som representerar en gränssnittskomponent som visas i dialogrutan Inställningar.
Denna insticksmodul har bara en viktig metod
create_widget()
. De olika fälten i insticksmodulen bestämmer hur den kategoriseras i användargränssnittet.- supported_platforms = ['windows', 'osx', 'linux']¶
Lista över plattformar som den här insticksmodulen fungerar på. Till exempel:
['windows', 'osx', 'linux']
- author = 'Kovid Goyal'¶
Författare av denna insticksmodul
- type = 'Inställningar'¶
Typen av denna insticksmodul. Används för kategorisera insticksmodul i användargränssnittet
- can_be_disabled = False¶
Om False, kommer inte användaren kunna deaktivera denna insticksmodul. Använd med försiktighet.
- config_widget = None¶
Importera sökväg till modul som innehåller en klass som heter ConfigWidget vilken implementerar ConfigWidgetInterface. Används av
create_widget()
.
- category = None¶
Kategorin för denna insticksmodul bör vara i
- gui_category = None¶
Kategorinamnet som visas till användaren för denna insticksmodul
- gui_name = None¶
Namnet som visar till användaren för denna insticksmodul
- icon = None¶
Ikonen för denna insticksmodul bör vara en absolut sökväg
- description = None¶
Beskrivning som används för verktygstips och liknande
- create_widget(parent=None)[source]¶
Skapa och returnerar den faktiska Qt-gränssnittskomponenten som används för ställa in denna grupps inställningar. Gränssnittskomponenten måste implementera
calibre.gui2.preferences.ConfigWidgetInterface
.Standard implementationen använder
config_widget
för att instansiera gränssnittskomponenten.
- class calibre.gui2.preferences.ConfigWidgetInterface[source]¶
Denna klass definierar gränssnittet som alla gränssnittskomponenter som visas i dialogrutan Inställningar måste implementeras. Se
ConfigWidgetBase
för en basklass som implementerar detta gränssnitt och definierar olika bekvämlighetsmetoder också.- changed_signal = None¶
Denna signal ska sändas när användaren ändrar ett värde i den här gränssnittskomponenten
- supports_restoring_to_defaults = True¶
Ändra till True om och endast om metoden
restore_to_defaults()
är implementerad.
- restore_defaults_desc = 'Återställ inställningar till standardvärden. Du måste klicka på Tillämpa för att verkligen spara standardinställningarna.'¶
Verktygstipset för knappen ”Återställ till standardvärden”
- restart_critical = False¶
Om True tillåter inte Inställningsdialogrutan inte användaren att ställa in några fler inställningar. Endast har verkan om
commit()
returnerar True.
- genesis(gui)[source]¶
Anropas en gång innan gränssnittskomponenten visas, bör utföra alla nödvändiga inställningar.
- Parametrar:
gui – calibres huvudanvändargränssnitt
- initialize()[source]¶
Bör ställa in alla konfigurationsvärden till sina ursprungliga värden (värdena lagras i konfigurationsfilerna). Ett ”återgå”-sats är valfritt. Returnera False om dialogrutan inte ska visas.
- commit()[source]¶
Spara eventuella ändrade inställningar. Returnera True om ändringarna kräver omstart, annars False. Höj ett
AbortCommit
-undantag för att indikera att ett fel har uppstod. Du är ansvarig för att ge användaren återkoppling om vad felet är och hur man åtgärdar det.
- refresh_gui(gui)[source]¶
Anropas en gång efter att den här gränssnittskomponenten har lagts in. Ansvarig för att få det grafiska gränssnittet att läsa om eventuella ändrade inställningar. Observera att som standard återinitierar det grafiska gränssnittets olika element ändå, så de flesta gränssnittskomponenter behöver inte använda den här metoden.
- class calibre.gui2.preferences.ConfigWidgetBase(parent=None)[source]¶
Basklass som innehåller kod för att enkelt lägga till standard konfigureringsgränssnittskomponenter som kryssrutor, kombinationsrutor, textfält och så vidare. se metoden
register()
.Den här klassen hanterar automatiskt ändringsmeddelande, återställning till standard, översättning mellan objekt i det grafiska gränssnittet och konfigurationsobjekt etc. för registrerade inställningar.
Om din konfigureringsgränssnittskomponent ärver från denna klass men inkluderar inställning som inte är registrerad, bör du åsidosätta
ConfigWidgetInterface
-metoder och anropa basklassmetoder inuti åsidosättningarna.- changed_signal¶
Denna signal ska sändas när användaren ändrar ett värde i den här gränssnittskomponenten
- supports_restoring_to_defaults = True¶
Ändra till True om och endast om metoden
restore_to_defaults()
är implementerad.
- restart_critical = False¶
Om True tillåter inte Inställningsdialogrutan inte användaren att ställa in några fler inställningar. Endast har verkan om
commit()
returnerar True.
- register(name, config_obj, gui_name=None, choices=None, restart_required=False, empty_string_is_None=True, setting=<class 'calibre.gui2.preferences.Setting'>)[source]¶
Registrera en inställning.
- Parametrar:
name – Namnet på inställningen
config_obj – Konfigureringsobjektet som läser/skriver instälningen
gui_name – Namnet på det grafiska objekt som presenterar ett gränssnitt för att ändra inställningen. Som standard antas vara
'opt_' + name
.choices – Om inställningen är en flervals (ComboBox) baserad inställning, listan med alternativ. Listan är en lista på två-elements tupler av formen:
[(gui name, value), ...]
setting – Klassen ansvarar för att hantera den här inställningen. Standard klassen hanterar nästan alla fall, så den här param används sällan.
- initialize()[source]¶
Bör ställa in alla konfigurationsvärden till sina ursprungliga värden (värdena lagras i konfigurationsfilerna). Ett ”återgå”-sats är valfritt. Returnera False om dialogrutan inte ska visas.