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.plugin_path: Lagrar sökväg till ZIP-filen som innehåller
    denna insticksmodul eller None om den är en inbyggd insticksmodul
  • self.site_customization: Lagrar en anpassad inmatad sträng
    av användaren.

Metoder som ska åsidosättas i underklasser

Användbara metoder:

supported_platforms = []

Lista med platformar som detta insticksmodul fungerar på. Till exempel: ['windows', 'osx', 'linux']

name = 'Trivial Plugin'

Namnet på detta insticksmodul. Du måste ange något annan än Trivial Plugin för att den ska fungera.

version = (1, 0, 0)

Versionen för detta insticksmodul är n 3-tupel (major, minor, revision)

description = u'G\xf6r absolut ingenting'

En kort sträng som beskriver vad detta insticksmodul gör

author = u'Ok\xe4nd'

Författare av detta 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.maxint. Standard prioritet är 1.

minimum_calibre_version = (0, 4, 118)

Den tidigaste versionen av calibre som detta insticksmodul kräver

can_be_disabled = True

Om False, kommer inte användaren kunna deaktivera detta insticksmodul. Använd med försiktighet.

type = u'Grund'

Typen av detta insticksmodul. Används för kategorisera insticksmodul i användargränsnittet

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 ditt insticksmodul för att anpassa en konfigurationsdialog, snarare än att förlita sig på en enkel strängbaserad standard anpassning.

Denna metod, om implementerad, måste återge en QWidget. Denna grej kan ha en alternativ metod validate() som inte tar några argument och anropas omedelbart efter användaren klickat OK. Förändringar tillämpas om och bara om metoden återger True.

Om du av någon anledning inte kan utföra konfigurationen vid denna tid, återge 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 återges av config_widget().
do_user_config(parent=None)[source]

Denna metod visar en inställningsdialogruta för detta insticksmodul. Den återger True om användaren klickar på OK, annars False. Ändringarna tillämpas automatiskt.

load_resources(names)[source]

Om detta 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']).itervalues().next())
icon = QIcon(pixmap)
Parametrar:names – Förteckning över sökvägar till resurser i ZIP-filen som använder / som avskiljare
Returnerar:En ordlista av formen {name:file_contents}. Namn som inte finns i ZIP-filen kommer inte att vara närvarande i ordlistan.
customization_help(gui=False)[source]

Återge en sträng som ger hjälp om hur du anpassar detta insticksmodul. Som standard upp en NotImplementedError, vilket tyder på att insticksmodulen inte kräver anpassning.

Om du åter-implementera den här metoden i din underklass, kommer användaren att bli ombedd att skriva in en sträng som anpassning för detta 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 återgerHTML-hjälp, annars återges enkel hjälptext.
temporary_file(suffix)[source]

Återge 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.
cli_main(args)[source]

Denna metod är den viktigaste inkörsporten för dina insticksmoduls kommandoradsgränssnitt. Det kallas när användaren utför calibre-debug -r ”Namn för insticksmodul”. Alla argument som skickas finns i variabeln args.

FileTypePlugin

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

Bas: calibre.customize.Plugin

En insticksmodul som är associerad med en viss uppsättning filtyper.

file_types = set([])

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 postimport- och postadd-metoderna av insticksmodulen.

on_preprocess = False

Om True, körs denna insticksmodul alldeles innan en konvertering

on_postprocess = False

Om True, körs detta insticksmodul efter konvertering på den sista filen som produceras av konvertering utdatainsticksmodulen.

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 återge 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 återger 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]

Anropad efterimportering (post import), d.v.s. efter att boken fil har lagts till i databasen. Observera att detta skiljer sig från: meth: postadd som kallas när boken posten skapas för första gången. Denna metod kallas varje gång en ny fil läggs till i en bokpost. Det är användbart för att modifiera bokenposten baserat på innehållet i den nyligen tillagda filen.

Parametrar:
  • book_id – Databas id för tillagda boken.
  • book_format – Den filtyp av boken som lades till.
  • db – Biblioteksdatabas.
postadd(book_id, fmt_map, db)[source]

Anropad posttillägg (post add), d.v.s. efter att en bok har lagts till i databasen. Observera att detta skiljer sig från: meth:postimport som kallas 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 modifiera 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 med filformat till sökväg från vilken filformatet tillsattes. Observera att detta kan eller kan inte kunna peka på en verklig befintlig fil, eftersom ibland läggs filer till som strömmar. I vilket fall kan det vara ett skenvärde eller en icke-befintlig sökväg.
  • db – Biblioteksdatabas

Metadata insticksmodul

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

Bas: calibre.customize.Plugin

En insticksmodul som implementerar läsning av metadata från en uppsättning filtyper.

file_types = set([])

Uppsättning med filtyper som detta insticksmodul ska köra. Till exempel: set(['lit', 'mobi', 'prc'])

get_metadata(stream, type)[source]

Returnera 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 indata.

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]

Bas: calibre.customize.Plugin

En insticksmodul som implementerar läsning av metadata från en uppsättning filtyper.

file_types = set([])

Uppsättning med filtyper som detta insticksmodul ska köra. Till exempel: set(['lit', 'mobi', 'prc'])

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 indata.

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]

Bas: calibre.customize.Plugin

En insticksmodul som implementerar en kataloggenerator.

file_types = set([])

Utdatafiltyp som denna insticksmodul ska köra. Till exempel: ’epub’ eller ’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()[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 inträffar bör det signalera ett undantag.

Den genererade katalogfilen ska skapas med temporary_file()-metoden.

Parametrar:
  • path_to_output – Absoluta sökvägen till den genererade katalogfilen.
  • opts – En ordlista av nyckelordsargument
  • db – Ett LibraryDatabase2 objekt

Metadatahämtning insticksmodul

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

Bas: calibre.customize.Plugin

capabilities = frozenset([])

Uppsättning funktioner som stöds av detta insticksmodul. Användbara funktioner är: ”identify”, ”cover”

touched_fields = frozenset([])

Lista med metadatafält som potentiellt kan hämtas av detta insticksmodul under identifieringsfasen

has_html_comments = False

Ange detta som True om ditt insticksmodul återger 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 på True för att ignorera HTTPS-certifikatfel när du ansluter till den här källan.

cached_cover_url_is_reliable = True

Cachade omslagsadresser kan ibland vara otillförlitliga (d.v.s. hämtningen kan misslyckas eller återgiven binär kan vara falsk. Om så är ofta fallet med denna källa sätt till False

options = ()

En lista med Alternativ objekt. De kommer användas för automatiskt skapa konfigurationsgränssnittskomponenten för detta insticksmodul

config_help_message = None

En sträng som visas högst upp på gränssnittskomponenten för detta insticksmodul

can_get_multiple_covers = False

Om True kan denna källa återge 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 detta insticksmodul.

prefer_results_with_isbn = True

Om värdet är True, och denna källa återger 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]

Återge False om ditt insticksmodul måste anpassas innan det kan användas. Till exempel kan det behöva ett användarnamn/lösenord/API-nyckel.

customization_help()[source]

Återge en sträng som ger hjälp om hur du anpassar detta insticksmodul. Som standard upp en NotImplementedError, vilket tyder på att insticksmodulen inte kräver anpassning.

Om du åter-implementera den här metoden i din underklass, kommer användaren att bli ombedd att skriva in en sträng som anpassning för detta 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 återgerHTML-hjälp, annars återges enkel hjälptext.
config_widget()[source]

Implementera denna metod och save_settings() i ditt insticksmodul för att anpassa en konfigurationsdialog, snarare än att förlita sig på en enkel strängbaserad standard anpassning.

Denna metod, om implementerad, måste återge en QWidget. Denna grej kan ha en alternativ metod validate() som inte tar några argument och anropas omedelbart efter användaren klickat OK. Förändringar tillämpas om och bara om metoden återger True.

Om du av någon anledning inte kan utföra konfigurationen vid denna tid, återge 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 återges av config_widget().
get_author_tokens(authors, only_first_author=True)[source]

Ta en lista med författare och återge en lista med symboler som är användbara för en OCH sökförfrågan. Denna funktion försöker återge stafettpinnar i ordningen mellannamn förnamn efternamn, genom att anta att om ett komma är i författarens namn, är namnet i efternamn, andra namn bildningar.

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

Ta en titel och återge en lista med symboler som är användbara för en OCH sökförfrågan. Utesluter konnektiva (valfritt) och skiljetecken.

split_jobs(jobs, num)[source]

Dela upp en lista med jobb i högst num grupper, så jämnt som möjligt

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 ditt 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]

Återge en 3-tupel eller None. 3-tupeln har formen: (identifier_type, identifier_value, URL). URLn är webbadressen till boken som identifieras av identifierare vid denna källa. identifier_type, identifier_value anger identifierare som motsvarar URL. Den här URLn måste vara bläddringsbar av en människa med en webbläsare. Det är tänkt att ge en klickbar länk för användaren att enkelt besöka sidan böcker vid denna källa. Om ingen URL hittas återges None. Denna metod måste vara snabb, och konsekvent, så att bara genomföra det om det är möjligt att konstruera URLn från ett känt schema av givna identifierare.

get_book_url_name(idtype, idval, url)[source]

Återge ett läsbart namn från returvärdet för get_book_url().

get_book_urls(identifiers)[source]

Åsidosätta denna metod om du vill återvända flera webbadresser för den här boken. Återge en lista med 3-tupler. Som standard kallar metoden helt enkelt get_book_url().

get_cached_cover_url(identifiers)[source]

Återge cachade omslagsadresser för boken som identifieras av identifierare dict eller None om ingen sådan URL finns.

Observera att den här metoden bara måste återvända validerade URL:er, d.v.s. inte webbadresser som kan resultera i en generisk omslagsbild eller inte hittat felet.

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

Återge en funktion som används för att generera 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().

Mer information om standardalgoritmen, se: klass InternalMetadataCompareKeyGen. Åter implementera denna funktion i ditt 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/o.s.v.

Om identifierare anges och ingen matchning hittas och detta metadatakälla inte lagrar alla relaterade identifierare (till exempel alla ISBN i en bok), bör denna metod försöka igen med bara titel och författare (förutsatt att de specificerades).

Om denna metadatakälla också ger omslag, ska den webbadress till omslaget cachas så att ett efterföljande anrop till get omslags-API med samma ISBN/special identifierare inte behöver få omslagsadresser igen. Använd cachnings-API 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 alla omslag/isbn korsreferensinformation lagras i cache innan metadataobjektet läggs i result_queue.

Parametrar:
  • log – Ett logg-objekt, använd det för att överföra felsökningsinformation/fel
  • result_queue – Ett resultat Kö, resultaten läggas in i den. Varje resultat är ett metadataobjekt
  • abort – Om abort.is_set() återger 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 ordlista av andra identifieringsuppgifter oftast {’isbn’:’1234…’}
  • timeout – Tidsbegränsning i sekunder bör ingen nätverksbegäran dröja längre än timeout
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.

Denna metod bör använda cachade omslagsadresser för effektivitet när det är möjligt. När buffrad data inte är närvarande, de flesta insticksmodul anropar helt enkelt identifiera och använda dess resultat.

Om parametern get_best_cover är True, och kan detta 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]

Generera 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 omslagsadresser
  • 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]

Bas: calibre.customize.Plugin

InputFormatPlugins ansvarar för att konvertera ett dokument till HTML+OPF+CSS+o.s.v. Resultatet av konverteringen måste kodas i UTF-8. Den viktigaste åtgärden händer i convert().

file_types = set([])

Uppsättning med filtyper som detta insticksmodul ska köra Till exempel: set(['azw', 'mobi', 'prc'])

is_image_collection = False

Om True, denna indata insticksmodul genererar en samling bilder, en per HTML-fil. Detta kan ställas in dynamiskt, i konverteringsmetoden om indatafilerna kan vara både bildsamlingar och icke-bildsamlingar. Om du ställer in detta till True måste du implementera get_images () som återger 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 indata insticksmodulen specialbearbeta att göra sitt utdata lämpligt för visning

output_encoding = 'utf-8'

Kodningen som denna indata 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 = set([<calibre.customize.conversion.OptionRecommendation object>])

Alternativ som delas av alla indata format insticksmodul. Överrids inte i underklasser. Användning options istället. Varje alternativ ska vara en instans av OptionRecommendation.

options = set([])

Alternativ för att anpassa beteendet hos detta insticksmodul. Varje alternativ ska vara en instans av OptionRecommendation.

recommendations = set([])

En uppsättning av 3-tupler av formen (option_name, recommended_value, recommendation_level)

get_images()[source]

Återge en lista med absoluta sökvägar till bilderna, om denna indata 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 återge sökvägen till den skapade OPF-filen eller en OEBBook instans. All utdata ska ingå i den aktuella katalogen. Om detta insticksmodul skapar filer utanför den aktuella katalogen som de måste raderas/markeras för borttagning innan denna metod avslutas.

Parametrar:
  • stream – En fil som objekt som innehåller indatafilen.
  • options – Alternativ för att anpassa konverteringen. Garanterat att ha attribut som motsvarar alla de alternativ som deklarerats av detta 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 av calibre.customize.profiles.InputProfile.
  • file_ext – Filtypsändelsen (utan .) i indatafilen. Det är garanterat att vara en av de file_types stöds av detta insticksmodul.
  • log – Ett calibre.utils.logging.Log objekt. All utdata bör använda detta objekt.
  • accelarators – En ordlista för olika uppgifter indata 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 indata insticksmodul för att utföra efterbehandling efter att boken har tolkats.

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

Anropas för att tillåta indata insticksmodul att specialisera den analyserade boken för en viss utdata format. Anropas efter postprocess_book och innan några transformer utförs på den analyserade boken.

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

Kallas för att skapa gränssnittskomponenten som används för att anpassa detta insticksmodul i calibre användaregränssnittet. Gränssnittskomponenten måste vara en instans av PluginWidget klassen. Se inbyggda indata insticksmodul för exempel.

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

Bas: calibre.customize.Plugin

UtdataFormatPlugins är ansvariga för att konvertera ett OEB-dokument (OPF+HTML) till e-bokutdata.

OEB-dokumentet kan antas vara kodade i UTF-8. Den viktigaste åtgärden händer i convert().

file_type = None

Filtypen (ändelse utan främre punkt) att denna insticksmodul utdata

common_options = set([<calibre.customize.conversion.OptionRecommendation object>])

Alternativ som delas av alla indata format insticksmodul. Överrids inte i underklasser. Användning options istället. Varje alternativ ska vara en instans av OptionRecommendation.

options = set([])

Alternativ för att anpassa beteendet hos detta insticksmodul. Varje alternativ ska vara en instans av OptionRecommendation.

recommendations = set([])

En uppsättning av 3-tupler av formen (option_name, recommended_value, recommendation_level)

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 sökvägen till en katalog som kan eller inte kan existera. Utdata insticksmodulen ska skriva utdata till den katalogen. Om det är en fil som objekt, bör utdata insticksmodulen skriva utdata i filen.
  • input_plugin – Indata insticksmodulen som användes i början av konverteringen.
  • opts – Konverteringsalternativ. Garanterat att ha attribut som motsvarar OptionRecommendations av detta insticksmodul.
  • log – Loggern. Skriv ut felsöknings/infomeddelanden o.s.v. med hjälp av denna.
specialize_options(log, opts, input_fmt)[source]

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

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

Kan användas för att göra ändringar i css under CSS tillplattningsprocessen.

Parametrar:
  • item – Elementet (HTML-fil) som bearbetas
  • stylizer – Ett stiliseringsobjekt som innehåller de tillplattade stilarna för objektet. 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änssnittskomponent som används för att anpassa detta insticksmodul i calibre användargranssnittet. Gränssnittskomponenten måste vara en instans av PluginWidget klass. Se inbyggda utdata insticksmodul 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]

Bas: calibre.customize.Plugin

Definierar gränssnitt som ska implementeras av bakomliggande system som kommunicerar med en e-bokläsplatta.

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 ordlista om det är ett ordlista, måste det vara en ordlista av ordlistor, 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 metadatakontrollpaneler

path_sep = '/'

Sökvägsseparator för sökvägar till böcker på enheten

icon = '/home/kovid/work/calibre/resources/images/reader.png'

Ikon för denna enhet

UserAnnotation

alias för Annotation

OPEN_FEEDBACK_MESSAGE = None

Gränssnittet visar detta som ett meddelande om inte None. 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 denna drivrutin helt hanterar enhetsupptäckt, utmatning och så vidare. Om du ställer in detta till True, måste du implmentera detect_managed_devices och debug_managed_device_detection metoder. En drivrutin med denna uppsättning till True är ansvarig för upptäckt av enheter, hantering av en svartlista med enheter, en förteckning över de utmatade enheter och så vidare. calibre kommer regelbundet kalla detect_managed_devices() metoden och om det återger en detekterad enhet, kommer calibre anropa open(). open() kommer att anropas varje gång en enhet återges även om tidigare anrop för att open() misslyckades, därför måste drivrutin bibehålla sin egen svartlista med misslyckade enheter. Likaså vid utmatning, kommer calibre anropa eject() och sedan antar nästa anrop till detect_managed_devices() återger None, kommer det att anropa 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() och ignore_connected_device() och get_user_blacklisted_devices() och set_user_blacklisted_devices()

user_feedback_after_callback = None

Ändra den till en ordlista av formen {’title’:title, ’msg’:msg, ’det_msg’:detailed_msg} låta calibre ta fram ett meddelande till användaren efter några återanrop körs (för närvarande endast upload_books). Var noga med att inte spamma användaren med för många meddelanden. Denna variabel kontrolleras efter varje anrop, så att bara den sätts när du verkligen behöver.

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

Återge True, device_info om en enhet som hanteras av detta 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.

Sök efter enheter som denna drivrutin kan hantera. Ska återge 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 kallas periodiskt av användargränssnittet, så se till att den inte är för resurskrävande. Använd en buffert för att inte behöva genomsöka systemet.

Parametrar:
  • devices_on_system – Uppsättning av USB-enheter hittade på systemet
  • force_refresh – Om True och drivrutinen använder en buffert för att förhindra upprepad genomsökning måste bufferten vara tömd.
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 utdata, vilket är en fil som objekt.

Ska återge 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 – Nyckel för att låsa upp enhet
  • log_packets – Om True paketströmmen till/från enheten loggas
  • report_progress – Funktion som anropas med en procent (%) förlopp (tal mellan 0 och 100) för olika uppgifter om det kallas med -1 som innebär att uppgiften inte har någon förloppsinformation
  • detected_device – Enhetsinformation från enhetens genomsökare
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 det inte är det ska återge False. Denna metod anropas endast efter leverantör, produkt-ID och bcd har matchats, så det kan göra några relativt tidskrävande kontroller. Genomförandet standard återger True. Denna metod kallas bara i 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ätta can_handle() i din underklass av USBMS.

Parametrar:usbdevice – En USB-enhet som återges 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 identifieras 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 – Den enhet som vi försöker öppna. Det är en tupel av (leverantörs id, produkt-id, BCD, tillverkarens namn, produktnamn, enhetens serienummer). Vissa enheter har inget serienummer och i Windows är endast de tre första fälten närvarande, resten är None.
  • library_uuidUUID:t 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.

OBSERVERA: Att denna metod kan inte kallas på samma tråd som resten av enhetsmetoderna.

post_yank_cleanup()[source]

Anropas om användaren rycker enheten utan att mata ut det först.

set_progress_reporter(report_progress)[source]

Ändra en funktion för att rapportera förloppinformationen.

Parametrar:report_progress – Funktion som anropas med en procent (%) förlopp (tal mellan 0 och 100) för olika uppgifter om det kallas med -1 som innebär 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, programvaruversion på enheten, MIME-typ) Tupeln kan eventuellt ha ett femte element, som är en enhetsinformationsordlista. Se usbms.driver för ett exempel.
get_driveinfo()[source]

Återge driveinfo-ordlistan. Vanligtvis anropas från get_device_information(), men om laddning av driveinfo är långsam för denna drivrutin, så borde den sätta SLOW_DRIVEINFO. I detta fall kommer den här metoden anropas av calibre efter bokenlistor har laddats. Observera att den inte anropas på enhetens processtråd, så att drivrutinen ska buffra driveinfo i books() och funktionen ska återge cachad data.

card_prefix(end_session=True)[source]

Återge en 2-elementlista med prefixet till sökvägar på korten. Om inget kort finns sätts Noneför kortets prefix. Till exempel (’/place’, ’/place2’) (None, ’place2’) (’place’, None) (None, None)

total_space(end_session=True)[source]
Få total utrymme på monteringspunkter:
  1. Inbyggt minne
  2. Minneskort A
  3. 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:
  1. Inbyggt minne
  2. Kort A
  3. 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 återge -1.
books(oncard=None, end_session=True)[source]

Återge en lista med e-böcker på enheten.

Parametrar:oncard – Om ”carda” eller ”cardb” återger en lista med e-böcker på det specifika minneskortet, annars återges en lista med e-böcker i huvudminnet av enheten. Om ett kort är specificerad och inga böcker finns på kortet återges en tomma listan.
Returnerar:En BookList.
upload_books(files, names, on_card=None, end_session=True, metadata=None)[source]

Ladda upp 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” om on_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 uppladdade 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 till boklistor. 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ör upload_books().
  • booklists – En tupel innehåller resultatet av anrop till (books(oncard=None)(), books(oncard='carda')(), :meth`books(oncard=’cardb’)`).
delete_books(paths, end_session=True)[source]

Ta bort böcker i sökvägar på enhet.

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å enhet.

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 ett open() anrop.
classmethod config_widget()[source]

Bör återge 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ällningar till disk. Tar gränssnittskomponenten som skapas i config_widget() och sparar alla inställningar till disk.

classmethod settings()[source]

Ska återge 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]

ge drivrutin den aktuella uppsättningen kontrollpaneler och en funktion för att välja kontrollpanel. Denna metod kallas omedelbart före add_books och sync_booklists.

pb_func är anropbar med följande signatur:
def pb_func(device_name, format, plugboards)

Du ger den nuvarande enheten namn (antingen klassnamnet eller DEVICE_PLUGBOARD_NAME), det format du är intresserad av (en ”riktig” format eller ”device_db”), och de kontrollpaneler (du fick dem från set_plugboards, på samma ställe som du fick denna metod).

Returnerar:Ingen eller en kontrollpanelinstans.
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 återges av get_device_information() metoden.

prepare_addable_books(paths)[source]

Given en lista med sökvägar, återger en annan lista med sökvägar. Dessa sökvägar hänvisar till tilläggbara 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 sålunda __init__ kan anropas flera gånger, men bara en instans kommer att ha den här metoden anropad. Denna metod kallas på enhetens processtråd, inte GUI-tråden.

shutdown()[source]

Anropas när calibre stängs, antingen för gott eller är under förberedelser för att starta om. Gör den sanering som krävs. Denna metod kallas på enhetens processtråd, inte GUI-tråden.

get_device_uid()[source]

Måste återge ett unikt ID för ansluten enhet (detta kallas direkt efter ett lyckat anrop till open()). Du måste implementera den här metoden om du sätter 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 den här metoden om du sätter ASK_TO_ALLOW_CONNECT = True. Observera att denna funktion kallas direkt efter open(), så om open() buffrar vissa tillstånd, bör drivrutinen återställa det tillståndet.

get_user_blacklisted_devices()[source]

Återge 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 den aktuella calibre-biblioteket. Denna metod kallas vid uppstart och när calibre-biblioteket ändras när den är ansluten.

is_dynamically_controllable()[source]

Anropas av enhetshanteraren vid start av insticksmodul. Om den här metoden återger 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 kallas för att stoppa insticksmodulen. Insticksmodulen bör 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 inte tar emot anslutningar redan, 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.

get_option(opt_string, default=None)[source]

Återge värdet av optionen indikerad av opt_string. Den här metoden kan anropas när insticksmodulen inte startats. Återge 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]

Återge 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 under bokmatchning när en bok på enheten jämförs med en bok i calibres db. Metoden är ansvarig för synkronisering av data från enheten till calibres db (om det behövs).

Metoden ska återge en två-värd tupel. Det första värdet är en uppsättning av calbres bok-id som ändras om calbres databas ändrades eller None om databasen inte ändrades. Om det första värdet är en tom mängd så uppdateras metadata för boken på med calbres metadata och ges tillbaka till enheten, men ingen GUI-uppdatering av den boken sker. Detta är användbart när calbres data är korrekt, men måste skickas till enheten.

Det andra värdet är i sig ett 2-värde tupel. Det första värdet i tupeln anger om ett bokformat ska skickas till enheten. Avsikten är att verifiera 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). Var noga med att inkludera förlängningen i namnet. Enhetsdelsystemet kommer att konstruera ett send_books-jobb för alla böcker med ’not-None’ återförda värden. Obs! Annat än att senare hämta tillägget ignoreras namnet i de fall där enheten använder en mall för att generera filnamnet, vilket de flesta gör. Det andra värdet i den returnerade tupeln angav om formatet är framtida daterat. Återvänd True om det är, annars returnera False. calibre kommer att visa en dialogruta för användaren som listar alla framtida daterade 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]

Bas: list

En lista med böcker. Varje bokpost måste ha fälten

  1. titel
  2. författare
  3. storlek (filstorlek av boken)
  4. datumtid (en UTC-tids tupel)
  5. sökväg (sökväg på enheten till boken)
  6. omslagsminiatyrbild (kan vara None) omslagsminiatyrbild är antingen ett str/bytes-objekt med bilddata eller det borde ha ett attribut image_path som lagrar en absolut (plattformsberoende) sökvägen till bilden
  7. etiketter (en lista med strängar, kan vara tom).
supports_collections()[source]

Återge True om enheten stöder kollektioner för denna boklista.

add_book(book, replace_metadata)[source]

Lägg boken till boklista. Avsikten är att behålla alla enheters interna metadata. Återge True om boklistor måste synkroniseras

remove_book(book)[source]

Ta bort en bok från boklistan. Rätta någon enhets metadata samtidigt

get_collections(collection_attributes)[source]

Återge en ordlista med samlingar som skapats från collection_attributes. Varje post i ordlistan ä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]

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

WINDOWS_MAIN_MEM = None

Sträng identifierar huvudminne på enheten i Windows PnP id strängar Detta kan vara None, string, lista med string eller sammanställad regex

WINDOWS_CARD_A_MEM = None

Sträng som identifierar det första kortet av anordningen i Windows PnP id strängar Detta kan vara None, string, lista med string eller sammanställad regex

WINDOWS_CARD_B_MEM = None

Sträng som identifierar det andra kortet av anordningen i Windows PnP id strängar Detta kan vara None, string, lista med string eller sammanställad 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

MAX_PATH_LEN = 250

Största längd av sökvägar som skapas på enheten

NEWS_IN_FOLDER = True

Lägg nyheter i en egen mapp

reset(key='-1', log_packets=False, report_progress=None, detected_device=None)[source]
Parametrar:
  • key – Nyckel för att låsa upp enhet
  • log_packets – Om True paketströmmen till/från enheten loggas
  • report_progress – Funktion som anropas med en procent (%) förlopp (tal mellan 0 och 100) för olika uppgifter om det kallas med -1 som innebär att uppgiften inte har någon förloppsinformation
  • detected_device – Enhetsinformation från enhetens genomsökare
set_progress_reporter(report_progress)[source]

Ändra en funktion för att rapportera förloppinformationen.

Parametrar:report_progress – Funktion som anropas med en procent (%) förlopp (tal mellan 0 och 100) för olika uppgifter om det kallas med -1 som innebär att uppgiften inte har någon förloppsinformation
card_prefix(end_session=True)[source]

Återge en 2-elementlista med prefixet till sökvägar på korten. Om inget kort finns sätts Noneför kortets prefix. Till exempel (’/place’, ’/place2’) (None, ’place2’) (’place’, None) (None, None)

total_space(end_session=True)[source]
Få total utrymme på monteringspunkter:
  1. Inbyggt minne
  2. Minneskort A
  3. 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:
  1. Inbyggt minne
  2. Kort A
  3. 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 återge -1.
windows_sort_drives(drives)[source]

Anriopas för att klargöra huvudminnet och minneskortet för enheter som inte skiljer mellan dem på grundval av WINDOWS_CARD_NAME. För t.ex .: The 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 det inte är det ska återge False. Denna metod anropas endast efter leverantör, produkt-ID och bcd har matchats, så det kan göra några relativt tidskrävande kontroller. Genomförandet standard återger True. Denna metod kallas bara i 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ätta can_handle() i din underklass av USBMS.

Parametrar:usbdevice – En USB-enhet som återges av calibre.devices.winusb.scan_usb_devices()
open(connected_device, library_uuid)[source]

Utför specifik initiering på alla enheter. Anropas efter att enheten identifieras 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 – Den enhet som vi försöker öppna. Det är en tupel av (leverantörs id, produkt-id, BCD, tillverkarens namn, produktnamn, enhetens serienummer). Vissa enheter har inget serienummer och i Windows är endast de tre första fälten närvarande, resten är None.
  • library_uuidUUID:t 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.

OBSERVERA: Att denna metod kan inte kallas på samma tråd som resten av enhetsmetoderna.

post_yank_cleanup()[source]

Anropas om användaren rycker enheten utan att mata ut det först.

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().

sanitize_path_components(components)[source]

Utför någon enhetsspecifik sanering på sökvägskomponenter för filer som laddas upp till enheten

get_annotations(path_map)[source]

Lösa upp path_map till annotation_map filer som finns på enheten

add_annotation_to_library(db, db_id, annotation)[source]

Lägg en anteckning till calibre-biblioteket

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

Bas: calibre.devices.usbms.cli.CLI, calibre.devices.usbms.device.Device

Basklass för alla USBMS-enheter. Implementerar logiken för att skicka/få/uppdatera metadata/buffra metadata/o.s.v.

booklist_class

alias för calibre.devices.usbms.books.BookList

book_class

alias för calibre.devices.usbms.books.Book

get_device_information(end_session=True)[source]

Fråga enheten efter enhetsinformation . Se L{DeviceInfoQuery}.

Returnerar:(enhetsnamn, enhetsversion, programvaruversion på enheten, MIME-typ) Tupeln kan eventuellt ha ett femte element, som är en enhetsinformationsordlista. 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 återges av get_device_information() metoden.

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

Återge en lista med e-böcker på enheten.

Parametrar:oncard – Om ”carda” eller ”cardb” återger en lista med e-böcker på det specifika minneskortet, annars återges en lista med e-böcker i huvudminnet av enheten. Om ett kort är specificerad och inga böcker finns på kortet återges en tomma listan.
Returnerar:En BookList.
upload_books(files, names, on_card=None, end_session=True, metadata=None)[source]

Ladda upp 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” om on_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 uppladdade 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]

Ladda upp bokomslag till enheten. Standard implementationen gör ingenting.

Parametrar:
  • path – Den fullständiga sökvägen till katalogen 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 till boklistor. 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ör upload_books().
  • booklists – En tupel innehåller resultatet av anrop till (books(oncard=None)(), books(oncard='carda')(), :meth`books(oncard=’cardb’)`).
delete_books(paths, end_session=True)[source]

Ta bort böcker i sökvägar på enhet.

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å enhet.

Parametrar:booklists – En tupel innehåller resultatet av anrop till (books(oncard=None)(), books(oncard='carda')(), :meth`books(oncard=’cardb’)`).
classmethod normalize_path(path)[source]

Återge sökväg med plattformsursprungliga sökvägsseparatorer

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 återge ett exemplifierat objekt för din InterfaceBase underklass.

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

Bas: PyQt5.QtCore.QObject

En insticksmodul som representerar en ”åtgärd” som kan tas i grafiska användargränssnittet. Alla objekt 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() och initialization_complete() metoder.

När initierats, har detta insticksmodul tillgång till calibre huvudanvändargränssnittet via gui medlem. Du kan komma åt andra insticksmodul med namn, till exempel:

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

För att komma åt själva insticksmodulen, använd interface_action_base_plugin attribut, detta attribut blir först tillgänglig efter insticksmodulen har initierats. Användbart om du vill använda metoder från insticksmodul klassen som do_user_config().

QAction anges av action_spec skapas automatiskt och blir tillgänglig via self.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

Insticksmodul prioritet. Om två insticksmodul med samma namn är närvarande, tar den med högre prioritet företräde.

popup_type = 1

Extrafönstermenytypen när detta insticksmodul läggs till verktygsfältet

auto_repeat = False

Huruvida denna åtgärd bör automatiskt upprepas när dess kortkommando hålls nere.

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

Av formen: (text, icon_path, verktygstips, kortkommando) ikonen, verktygstips och kortkommandot kan vara None genväg måste vara en sträng, None eller tupel av genvägar. Om None är ett kortkommando som motsvarar åtgärden inte är registrerad. Om du skickar en tom tabellrad, då registreras genvägen utan bindande standardnyckel.

action_add_menu = False

Om True, skapas en meny automatiskt och läggs till self.qaction

action_menu_clone_qaction = False

Om True, läggs en klon av self.qaction till menyn för self.qaction Om du vill att texten i denna åtgärd att vara annorlunda än self.qaction, ställa 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 ”nuvarande” 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 återge sant 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 återge sant 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 återge True om endast om detta gränssnittsåtgärd kan hantera händelsen ”drop”. Anropa inte acceptera/ignorera vid händelsen, som kommer att tas om hand av den calibre UI. Du ska inte utföra blockering/långa operationer i denna funktion. Istället avger en signal eller använd QTimer.singleShot och återge snabbt tillbaka. Se de inbyggda åtgärder för exempel.

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

Bekväm metod för att enkelt lägga handlingar till en QMenu. Återger 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 – QMenu:s nyskapade åtgärder kommer att läggas till
  • unique_name – Ett unikt namn för denna åtgärd, detta måste vara globalunikt, så gör det så beskrivande som möjligt. Om du är osäker lägg till ett uuid till den.
  • text – Texten för denna åtgärd.
  • icon – Antingen en QIcon eller ett filnamn. Filnamnet skickas till inbyggda I(), så du behöver inte ange den fullständiga sökvägen till bildkatalogen.
  • shortcut – En sträng, en lista med strängar, None eller False. Om False har inget kortkommando registrerats för denna åtgärd. Om None har ett kortkommando med ingen standardtangentbindning registrerats. Sträng och lista med strängar registrerar en genväg med standardtangentbindning som anges.
  • 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 visas för användaren när du anpassar kortkommandon för denna åtgärd. Som standard är det inställt till värdet på text.
load_resources(names)[source]

Om detta 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']).itervalues().next())
icon = QIcon(pixmap)
Parametrar:names – Förteckning över sökvägar till resurser i ZIP-filen som använder / som avskiljare
Returnerar:En ordlista med formen {name : file_contents}. Namn som inte finns i ZIP-filen kommer inte att vara närvarande i ordlistan.
genesis()[source]

Ställ in detta insticksmodul. Endast anropas en gång under initieringen. self.gui är tillgänglig. Den funktion som specificerats action_spec finns som self.qaction.

location_selected(loc)[source]

Anropas när boken listan som visas i calibre förändringas. För närvarande är värden för loc: bibliotek, huvud, kort och cardb.

Denna metod bör aktivera/inaktivera denna åtgärd och dess underåtgärder som är lämpliga för platsen.

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 formgivningen hos huvud-GUI är avslutad. Om åtgärder måste göra ändringar i formgivningen, 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.

shutting_down()[source]

Anropas en gång per insticksmodul när huvud-GUI är i färd med att stängas av. Släpp alla använda resurser, men försök att inte blockera avstängning under långa tidsperioder.

Returnerar:False för att stoppa avstängningen. Du är ansvarig för att tala om för användaren varför avstängningen stoppades.
class calibre.customize.InterfaceActionBase(*args, **kwargs)[source]

Bas: calibre.customize.Plugin

load_actual_plugin(gui)[source]

Denna metod måste återge själva gränssnittsåtgärden av insticksmodul objektet.

Inställningar insticksmodul

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

Bas: calibre.customize.Plugin

En insticksmodul som representerar en gränssnittskomponenten visas i inställningsdialogen.

Detta insticksmodul har bara en viktig metod create_widget(). De olika fälten i insticksmodulen bestämmer hur den kategoriseras i användargränssnittet.

config_widget = None

Importera sökväg till modul som innehåller en klass namngiven ConfigWidget vilken implementerar ConfigWidgetInterface. Används av create_widget().

category_order = 100

Var i listan av kategorier category av detta insticksmodul bör vara.

name_order = 100

Var i listan av namn i en kategori gui_name detta insticksmodul bör vara

category = None

Kategorin för detta insticksmodul bör vara i

gui_category = None

Kategorinamnet som visas till användaren för detta insticksmodul

gui_name = None

Namnet som visar till användaren för detta insticksmodul

icon = None

Ikonen för detta 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 återger 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 visar i Inställningsdialogen som måste implementeras. Se ConfigWidgetBase för en basklass som implementerar detta gränssnitt och också definierar olika bekväma metoder.

changed_signal = None

Denna signal ska avges när användaren ändrar ett värde i den här gränssnittskomponenten

supports_restoring_to_defaults = True

Ändra till True om restore_to_defaults() metoden är implementerad.

restore_defaults_desc = u'\xc5terst\xe4ll inst\xe4llningar till standardv\xe4rden. Du m\xe5ste klicka p\xe5 Till\xe4mpa f\xf6r att verkligen spara standardinst\xe4llningarna.'

Verktygstipset för knappen ”Återställ till grundinställningar”

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() återger True.

genesis(gui)[source]

Anropas en gång innan gränssnittskomponent visas, borde utföra alla nödvändig inställningar.

Parametrar:gui – calibre huvudanvändargränssnittet
initialize()[source]

Bör ställa in alla konfigureringsvärden till deras initiala värden (värdena lagras i konfigurationsfilerna).

restore_defaults()[source]

Bör sätta alla konfigureringsvärden till deras grundinställningar.

commit()[source]

Spara alla ändrade inställningar. Återger True om förändringarna kräver omstart, annars False. Signalera ett AbortCommit undantag för att indikera att ett fel har inträffat. Du är ansvarig för att ge användaren återkoppling på vad felet är och hur man rättar till det.

refresh_gui(gui)[source]

Anropas en gång efter denna gränssnittskomponent läggs in. Ansvarig för att orsakat gui att läsa om ändrade inställningar. Observera att som standard åter initierar grafiska gränssnittet olika element i alla fall, så de flesta gränssnittskomponenter inte behöver 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 register() method.

Denna klass hanterar automatiskt förändringsnoteringar, återställning till standard, översättning mellan gui-objekt och konfigurationsobjekt o.s.v. för registrerade inställningar.

Om din konfigureringsgränssnittskomponent ärver från denna klass men inkluderar inställning som inte är registrerade, bör du åsidosätta ConfigWidgetInterface metoder och kallar basklassmetoder inuti överridningarna.

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 – 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 konfigureringsvärden till deras initiala värden (värdena lagras i konfigurationsfilerna).

commit(*args)[source]

Spara alla ändrade inställningar. Återger True om förändringarna kräver omstart, annars False. Signalera ett AbortCommit undantag för att indikera att ett fel har inträffat. Du är ansvarig för att ge användaren återkoppling på vad felet är och hur man rättar till det.

restore_defaults(*args)[source]

Bör sätta alla konfigureringsvärden till deras grundinställningar.

Visarens insticksmoduler

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

Bas: calibre.customize.Plugin

type = u'Visare'

Dessa insticksmoduler används för att lägga till funktionalitet till calibre E-bokvisaren.

load_fonts()[source]

Denna metod anropas en gång vid uppstart av visare. Det borde ladda godtyckligt typsnitt som det vill göra tillgängligt. Till exempel:

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

Denna metod anropas varje gång ett nytt HTML dokument laddas i visaren. Använd det för att ladda JavaScript bibliotek in i visaren. Till exempel:

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

Denna metod anropas varje gång ett dokument laddats klart. Använd det på samma sätt som load_javascript().

customize_ui(ui)[source]

Denna metod anropas en gång när visaren skapas. Använd den för att göra några justeringar till visarens användargränssnitt. Till exempel kan du ändra verktygsfältet via ui.tool_bar och ui.tool_bar2.

customize_context_menu(menu, event, hit_test_result)[source]

Denna metod anropas varje gång menyn i sammanhanget (högerklicka) visas. Du kan använda den för att anpassa snabbmenyn. event är snabbmenyn händelsen och hit_test_result är QWebHitTestResult för denna händelse i det inlästa dokumentet.