%s
' % (m.group(1), m.group(3), m.group(2))) + ] + + def parse_index(self): + INDEX = 'http://www.thedoghousediaries.com/' + + soup = self.index_to_soup(INDEX) + articles = [] + # Since the feed sucks, and there's no real archive, we use the 'Quick Archive' thingie, but we can't get the date from here, so stop after 14 comics... + for item in soup.findAll('option', {}, True, None, self.oldest_article+1): + # Skip the quick archive itself + if ( item['value'] != '0' ): + articles.append({ + 'title': self.tag_to_string(item).encode('UTF-8'), + 'url': item['value'], + 'description': '', + 'content': '', + }) + + return [('Doghouse Diaries', articles)] + diff --git a/recipes/fc_knudde.recipe b/recipes/fc_knudde.recipe new file mode 100644 index 0000000000..8c80f1e949 --- /dev/null +++ b/recipes/fc_knudde.recipe @@ -0,0 +1,19 @@ +from calibre.web.feeds.news import BasicNewsRecipe + +class AdvancedUserRecipe1347706704(BasicNewsRecipe): + title = u'FC Knudde' + __author__ = u'DrMerry' + description = u'FC Knudde de populaire sport strip van Toon van Driel (http://www.toonvandriel.nl)' + language = u'nl' + oldest_article = 7 + max_articles_per_feed = 100 + auto_cleanup = False + cover_url = 'http://a1.mzstatic.com/us/r1000/035/Purple/be/33/70/mzl.qkvshinq.320x480-75.jpg' + no_stylesheets = True + remove_javascript = True + remove_empty_feeds = True + remove_tags_before = dict(id='title') + remove_tags_after = dict(attrs={'class':'entry-content rich-content'}) + use_embedded_content = True + + feeds = [(u'FC Knudde', u'http://www.nusport.nl/feeds/rss/fc-knudde.rss')] diff --git a/recipes/icons/fc_knudde.png b/recipes/icons/fc_knudde.png new file mode 100644 index 0000000000..4e6f43e278 Binary files /dev/null and b/recipes/icons/fc_knudde.png differ diff --git a/recipes/icons/stamgasten.png b/recipes/icons/stamgasten.png new file mode 100644 index 0000000000..d363506829 Binary files /dev/null and b/recipes/icons/stamgasten.png differ diff --git a/recipes/livemint.recipe b/recipes/livemint.recipe index 12f7b5c470..ef232ae519 100644 --- a/recipes/livemint.recipe +++ b/recipes/livemint.recipe @@ -7,20 +7,29 @@ class LiveMint(BasicNewsRecipe): #encoding = 'cp1252' oldest_article = 1 #days max_articles_per_feed = 25 - use_embedded_content = True + use_embedded_content = False no_stylesheets = True auto_cleanup = True feeds = [ -('Latest News', - 'http://www.livemint.com/StoryRss.aspx?LN=Latestnews'), - ('Gallery', - 'http://www.livemint.com/GalleryRssfeed.aspx'), +('Companies', + 'http://www.livemint.com/rss/companies'), + ('Consumer', + 'http://www.livemint.com/rss/consumer'), ('Top Stories', - 'http://www.livemint.com/StoryRss.aspx?ts=Topstories'), - ('Banking', - 'http://www.livemint.com/StoryRss.aspx?Id=104'), + 'http://www.livemint.com/rss/homepage'), + ('Opinion', + 'http://www.livemint.com/rss/opinion'), + ('Money', + 'http://www.livemint.com/rss/money'), + ('Industry', + 'http://www.livemint.com/rss/industry'), + ('Economy Politics', + 'http://www.livemint.com/rss/economy_politics'), + ('Lounge', + 'http://www.livemint.com/rss/lounge'), ] + diff --git a/recipes/stamgasten.recipe b/recipes/stamgasten.recipe new file mode 100644 index 0000000000..9a637eb7d6 --- /dev/null +++ b/recipes/stamgasten.recipe @@ -0,0 +1,16 @@ +class AdvancedUserRecipe1347706704(BasicNewsRecipe): + title = u'Stamgasten' + __author__ = u'DrMerry' + description = u'Stamgasten de populaire strip van Toon van Driel (http://www.toonvandriel.nl)' + language = u'nl' + oldest_article = 7 + max_articles_per_feed = 100 + auto_cleanup = False + cover_url = 'http://shop.toonvandriel.nl/productimg.php?type=canvas&id=15&size=large' + no_stylesheets = True + remove_javascript = True + remove_empty_feeds = True + remove_tags_before = dict(id='title') + remove_tags_after = dict(attrs={'class':'entry-content rich-content'}) + + feeds = [(u'Stamgasten', u'http://toonvandriel.nl/feed/')] diff --git a/recipes/xkcd.recipe b/recipes/xkcd.recipe index 42dceda65b..2aa704992e 100644 --- a/recipes/xkcd.recipe +++ b/recipes/xkcd.recipe @@ -2,6 +2,8 @@ __license__ = 'GPL v3' __copyright__ = '2008, Kovid Goyal%s
' % (m.group(1), m.group(3), m.group(2))) + (re.compile(r'(%s
' % (m.group(4), m.group(1), m.group(3), m.group(5), m.group(2))) ] def parse_index(self): diff --git a/resources/images/mimetypes/azw2.png b/resources/images/mimetypes/azw2.png new file mode 100644 index 0000000000..229d98ed38 Binary files /dev/null and b/resources/images/mimetypes/azw2.png differ diff --git a/resources/images/mimetypes/azw3.png b/resources/images/mimetypes/azw3.png new file mode 100644 index 0000000000..04e913b288 Binary files /dev/null and b/resources/images/mimetypes/azw3.png differ diff --git a/resources/images/mimetypes/mobi.png b/resources/images/mimetypes/mobi.png index cb1230a15b..0446021706 100644 Binary files a/resources/images/mimetypes/mobi.png and b/resources/images/mimetypes/mobi.png differ diff --git a/resources/images/mimetypes/tpz.png b/resources/images/mimetypes/tpz.png new file mode 100644 index 0000000000..04d685fd2d Binary files /dev/null and b/resources/images/mimetypes/tpz.png differ diff --git a/resources/mime.types b/resources/mime.types index afc5e9b849..75452bb17a 100644 --- a/resources/mime.types +++ b/resources/mime.types @@ -1,127 +1,127 @@ ## Mimetypes from my linux system -application/activemessage +application/activemessage application/andrew-inset ez -application/applefile +application/applefile application/applixware aw application/atom+xml atom application/atomcat+xml atomcat -application/atomicmail +application/atomicmail application/atomsvc+xml atomsvc -application/auth-policy+xml -application/batch-smtp -application/beep+xml -application/cals-1840 +application/auth-policy+xml +application/batch-smtp +application/beep+xml +application/cals-1840 application/ccxml+xml ccxml -application/cea-2018+xml -application/cellml+xml -application/cnrp+xml -application/commonground -application/conference-info+xml -application/cpl+xml -application/csta+xml -application/cstadata+xml +application/cea-2018+xml +application/cellml+xml +application/cnrp+xml +application/commonground +application/conference-info+xml +application/cpl+xml +application/csta+xml +application/cstadata+xml application/cu-seeme cu -application/cybercash +application/cybercash application/davmount+xml davmount -application/dca-rft -application/dec-dx -application/dialog-info+xml -application/dicom -application/dns +application/dca-rft +application/dec-dx +application/dialog-info+xml +application/dicom +application/dns application/dsptype tsp -application/dvcs +application/dvcs application/ecmascript ecma -application/edi-consent -application/edi-x12 -application/edifact +application/edi-consent +application/edi-x12 +application/edifact application/emma+xml emma -application/epp+xml +application/epp+xml application/epub+zip epub -application/eshop -application/example -application/fastinfoset -application/fastsoap -application/fits +application/eshop +application/example +application/fastinfoset +application/fastsoap +application/fits application/font-tdpfr pfr application/futuresplash spl -application/h224 +application/h224 application/hta hta -application/http +application/http application/hyperstudio stk -application/ibe-key-request+xml -application/ibe-pkg-reply+xml -application/ibe-pp-data -application/iges -application/im-iscomposing+xml -application/index -application/index.cmd -application/index.obj -application/index.response -application/index.vnd -application/iotp -application/ipp -application/isup +application/ibe-key-request+xml +application/ibe-pkg-reply+xml +application/ibe-pp-data +application/iges +application/im-iscomposing+xml +application/index +application/index.cmd +application/index.obj +application/index.response +application/index.vnd +application/iotp +application/ipp +application/isup application/java-archive jar application/java-serialized-object ser application/java-vm class application/javascript js application/json json -application/kpml-request+xml -application/kpml-response+xml +application/kpml-request+xml +application/kpml-response+xml application/lost+xml lostxml application/mac-binhex40 hqx application/mac-compactpro cpt -application/macwriteii +application/macwriteii application/marc mrc application/mathematica ma mb nb application/mathml+xml mathml -application/mbms-associated-procedure-description+xml -application/mbms-deregister+xml -application/mbms-envelope+xml -application/mbms-msk+xml -application/mbms-msk-response+xml -application/mbms-protection-description+xml -application/mbms-reception-report+xml -application/mbms-register+xml -application/mbms-register-response+xml -application/mbms-user-service-description+xml +application/mbms-associated-procedure-description+xml +application/mbms-deregister+xml +application/mbms-envelope+xml +application/mbms-msk+xml +application/mbms-msk-response+xml +application/mbms-protection-description+xml +application/mbms-reception-report+xml +application/mbms-register+xml +application/mbms-register-response+xml +application/mbms-user-service-description+xml application/mbox mbox -application/media_control+xml +application/media_control+xml application/mediaservercontrol+xml mscml -application/mikey -application/moss-keys -application/moss-signature -application/mosskey-data -application/mosskey-request +application/mikey +application/moss-keys +application/moss-signature +application/mosskey-data +application/mosskey-request application/mp4 mp4s -application/mpeg4-generic -application/mpeg4-iod -application/mpeg4-iod-xmt +application/mpeg4-generic +application/mpeg4-iod +application/mpeg4-iod-xmt application/msaccess mdb application/msword doc dot application/mxf mxf -application/nasdata -application/news-checkgroups -application/news-groupinfo -application/news-transmission -application/nss -application/ocsp-request -application/ocsp-response +application/nasdata +application/news-checkgroups +application/news-groupinfo +application/news-transmission +application/nss +application/ocsp-request +application/ocsp-response application/octet-stream bin bpk deploy dist distz dmg dms dump elc iso lha lrf lzh pkg so application/oda oda application/oebps-package+xml opf application/ogg ogg ogx application/onenote onepkg onetmp onetoc onetoc2 -application/parityfec +application/parityfec application/patch-ops-error+xml xer application/pdf pdf application/pgp-encrypted pgp application/pgp-keys key application/pgp-signature asc pgp sig application/pics-rules prf -application/pidf+xml -application/pidf-diff+xml +application/pidf+xml +application/pidf-diff+xml application/pkcs10 p10 application/pkcs7-mime p7c p7m application/pkcs7-signature p7s @@ -130,70 +130,70 @@ application/pkix-crl crl application/pkix-pkipath pkipath application/pkixcmp pki application/pls+xml pls -application/poc-settings+xml +application/poc-settings+xml application/postscript ai eps ps -application/prs.alvestrand.titrax-sheet +application/prs.alvestrand.titrax-sheet application/prs.cww cww -application/prs.nprend -application/prs.plucker -application/qsig +application/prs.nprend +application/prs.plucker +application/qsig application/rar rar application/rdf+xml rdf application/reginfo+xml rif application/relax-ng-compact-syntax rnc -application/remote-printing +application/remote-printing application/resource-lists+xml rl application/resource-lists-diff+xml rld -application/riscos -application/rlmi+xml +application/riscos +application/rlmi+xml application/rls-services+xml rs application/rsd+xml rsd application/rss+xml rss application/rtf rtf -application/rtx -application/samlassertion+xml -application/samlmetadata+xml +application/rtx +application/samlassertion+xml +application/samlmetadata+xml application/sbml+xml sbml application/scvp-cv-request scq application/scvp-cv-response scs application/scvp-vp-request spq application/scvp-vp-response spp application/sdp sdp -application/set-payment +application/set-payment application/set-payment-initiation setpay -application/set-registration +application/set-registration application/set-registration-initiation setreg -application/sgml -application/sgml-open-catalog +application/sgml +application/sgml-open-catalog application/shf+xml shf -application/sieve -application/simple-filter+xml -application/simple-message-summary -application/simplesymbolcontainer -application/slate +application/sieve +application/simple-filter+xml +application/simple-message-summary +application/simplesymbolcontainer +application/slate application/smil smi smil application/smil+xml smi smil -application/soap+fastinfoset -application/soap+xml +application/soap+fastinfoset +application/soap+xml application/sparql-query rq application/sparql-results+xml srx -application/spirits-event+xml +application/spirits-event+xml application/srgs gram application/srgs+xml grxml application/ssml+xml ssml -application/timestamp-query -application/timestamp-reply -application/tve-trigger -application/ulpfec -application/vemmi -application/vividence.scriptfile -application/vnd.3gpp.bsf+xml +application/timestamp-query +application/timestamp-reply +application/tve-trigger +application/ulpfec +application/vemmi +application/vividence.scriptfile +application/vnd.3gpp.bsf+xml application/vnd.3gpp.pic-bw-large plb application/vnd.3gpp.pic-bw-small psb application/vnd.3gpp.pic-bw-var pvb -application/vnd.3gpp.sms -application/vnd.3gpp2.bcmcsinfo+xml -application/vnd.3gpp2.sms +application/vnd.3gpp.sms +application/vnd.3gpp2.bcmcsinfo+xml +application/vnd.3gpp2.sms application/vnd.3gpp2.tcap tcap application/vnd.3m.post-it-notes pwn application/vnd.accpac.simply.aso aso @@ -203,7 +203,7 @@ application/vnd.acucorp acutc atc application/vnd.adobe.air-application-installer-package+zip air application/vnd.adobe.xdp+xml xdp application/vnd.adobe.xfdf xfdf -application/vnd.aether.imp +application/vnd.aether.imp application/vnd.airzip.filesecure.azf azf application/vnd.airzip.filesecure.azs azs application/vnd.amazon.ebook azw @@ -216,23 +216,23 @@ application/vnd.antix.game-component atx application/vnd.apple.installer+xml mpkg application/vnd.arastra.swi swi application/vnd.audiograph aep -application/vnd.autopackage -application/vnd.avistar+xml +application/vnd.autopackage +application/vnd.avistar+xml application/vnd.blueice.multipass mpm -application/vnd.bluetooth.ep.oob +application/vnd.bluetooth.ep.oob application/vnd.bmi bmi application/vnd.businessobjects rep -application/vnd.cab-jscript -application/vnd.canon-cpdl -application/vnd.canon-lips -application/vnd.cendio.thinlinc.clientconf +application/vnd.cab-jscript +application/vnd.canon-cpdl +application/vnd.canon-lips +application/vnd.cendio.thinlinc.clientconf application/vnd.chemdraw+xml cdxml application/vnd.chipnuts.karaoke-mmd mmd application/vnd.cinderella cdy -application/vnd.cirpack.isdn-ext +application/vnd.cirpack.isdn-ext application/vnd.claymore cla application/vnd.clonk.c4group c4d c4f c4g c4p c4u -application/vnd.commerce-battelle +application/vnd.commerce-battelle application/vnd.commonspace csp application/vnd.contact.cmsg cdbcmsg application/vnd.cosmocaller cmc @@ -243,79 +243,79 @@ application/vnd.crick.clicker.template clkt application/vnd.crick.clicker.wordbank clkw application/vnd.criticaltools.wbs+xml wbs application/vnd.ctc-posml pml -application/vnd.ctct.ws+xml -application/vnd.cups-pdf -application/vnd.cups-postscript +application/vnd.ctct.ws+xml +application/vnd.cups-pdf +application/vnd.cups-postscript application/vnd.cups-ppd ppd -application/vnd.cups-raster -application/vnd.cups-raw +application/vnd.cups-raster +application/vnd.cups-raw application/vnd.curl.car car application/vnd.curl.pcurl pcurl -application/vnd.cybank +application/vnd.cybank application/vnd.data-vision.rdz rdz application/vnd.denovo.fcselayout-link fe_launch -application/vnd.dir-bi.plate-dl-nosuffix +application/vnd.dir-bi.plate-dl-nosuffix application/vnd.dna dna application/vnd.dolby.mlp mlp -application/vnd.dolby.mobile.1 -application/vnd.dolby.mobile.2 +application/vnd.dolby.mobile.1 +application/vnd.dolby.mobile.2 application/vnd.dpgraph dpg application/vnd.dreamfactory dfac -application/vnd.dvb.esgcontainer -application/vnd.dvb.ipdcdftnotifaccess -application/vnd.dvb.ipdcesgaccess -application/vnd.dvb.ipdcroaming -application/vnd.dvb.iptv.alfec-base -application/vnd.dvb.iptv.alfec-enhancement -application/vnd.dvb.notif-aggregate-root+xml -application/vnd.dvb.notif-container+xml -application/vnd.dvb.notif-generic+xml -application/vnd.dvb.notif-ia-msglist+xml -application/vnd.dvb.notif-ia-registration-request+xml -application/vnd.dvb.notif-ia-registration-response+xml -application/vnd.dvb.notif-init+xml -application/vnd.dxr +application/vnd.dvb.esgcontainer +application/vnd.dvb.ipdcdftnotifaccess +application/vnd.dvb.ipdcesgaccess +application/vnd.dvb.ipdcroaming +application/vnd.dvb.iptv.alfec-base +application/vnd.dvb.iptv.alfec-enhancement +application/vnd.dvb.notif-aggregate-root+xml +application/vnd.dvb.notif-container+xml +application/vnd.dvb.notif-generic+xml +application/vnd.dvb.notif-ia-msglist+xml +application/vnd.dvb.notif-ia-registration-request+xml +application/vnd.dvb.notif-ia-registration-response+xml +application/vnd.dvb.notif-init+xml +application/vnd.dxr application/vnd.dynageo geo -application/vnd.ecdis-update +application/vnd.ecdis-update application/vnd.ecowin.chart mag -application/vnd.ecowin.filerequest -application/vnd.ecowin.fileupdate -application/vnd.ecowin.series -application/vnd.ecowin.seriesrequest -application/vnd.ecowin.seriesupdate -application/vnd.emclient.accessrequest+xml +application/vnd.ecowin.filerequest +application/vnd.ecowin.fileupdate +application/vnd.ecowin.series +application/vnd.ecowin.seriesrequest +application/vnd.ecowin.seriesupdate +application/vnd.emclient.accessrequest+xml application/vnd.enliven nml application/vnd.epson.esf esf application/vnd.epson.msf msf application/vnd.epson.quickanime qam application/vnd.epson.salt slt application/vnd.epson.ssf ssf -application/vnd.ericsson.quickcall +application/vnd.ericsson.quickcall application/vnd.eszigno3+xml es3 et3 -application/vnd.etsi.aoc+xml -application/vnd.etsi.cug+xml -application/vnd.etsi.iptvcommand+xml -application/vnd.etsi.iptvdiscovery+xml -application/vnd.etsi.iptvprofile+xml -application/vnd.etsi.iptvsad-bc+xml -application/vnd.etsi.iptvsad-cod+xml -application/vnd.etsi.iptvsad-npvr+xml -application/vnd.etsi.iptvueprofile+xml -application/vnd.etsi.mcid+xml -application/vnd.etsi.sci+xml -application/vnd.etsi.simservs+xml -application/vnd.eudora.data +application/vnd.etsi.aoc+xml +application/vnd.etsi.cug+xml +application/vnd.etsi.iptvcommand+xml +application/vnd.etsi.iptvdiscovery+xml +application/vnd.etsi.iptvprofile+xml +application/vnd.etsi.iptvsad-bc+xml +application/vnd.etsi.iptvsad-cod+xml +application/vnd.etsi.iptvsad-npvr+xml +application/vnd.etsi.iptvueprofile+xml +application/vnd.etsi.mcid+xml +application/vnd.etsi.sci+xml +application/vnd.etsi.simservs+xml +application/vnd.eudora.data application/vnd.ezpix-album ez2 application/vnd.ezpix-package ez3 -application/vnd.f-secure.mobile +application/vnd.f-secure.mobile application/vnd.fdf fdf application/vnd.fdsn.mseed mseed application/vnd.fdsn.seed dataless seed -application/vnd.ffsns -application/vnd.fints +application/vnd.ffsns +application/vnd.fints application/vnd.flographit gph application/vnd.fluxtime.clip ftc -application/vnd.font-fontforge-sfd +application/vnd.font-fontforge-sfd application/vnd.framemaker book fm frame maker application/vnd.frogans.fnc fnc application/vnd.frogans.ltf ltf @@ -325,13 +325,13 @@ application/vnd.fujitsu.oasys2 oa2 application/vnd.fujitsu.oasys3 oa3 application/vnd.fujitsu.oasysgp fg5 application/vnd.fujitsu.oasysprs bh2 -application/vnd.fujixerox.art-ex -application/vnd.fujixerox.art4 +application/vnd.fujixerox.art-ex +application/vnd.fujixerox.art4 application/vnd.fujixerox.ddd ddd application/vnd.fujixerox.docuworks xdw application/vnd.fujixerox.docuworks.binder xbd -application/vnd.fujixerox.hbpl -application/vnd.fut-misnet +application/vnd.fujixerox.hbpl +application/vnd.fut-misnet application/vnd.fuzzysheet fzs application/vnd.genomatix.tuxedo txd application/vnd.geogebra.file ggb @@ -341,7 +341,7 @@ application/vnd.gmx gmx application/vnd.google-earth.kml+xml kml application/vnd.google-earth.kmz kmz application/vnd.grafeq gqf gqs -application/vnd.gridmp +application/vnd.gridmp application/vnd.groove-account gac application/vnd.groove-help ghf application/vnd.groove-identity-message gim @@ -351,7 +351,7 @@ application/vnd.groove-tool-template tpl application/vnd.groove-vcard vcg application/vnd.handheld-entertainment+xml zmm application/vnd.hbci hbci -application/vnd.hcl-bireports +application/vnd.hcl-bireports application/vnd.hhe.lesson-player les application/vnd.hp-hpgl hpgl application/vnd.hp-hpid hpid @@ -359,11 +359,11 @@ application/vnd.hp-hps hps application/vnd.hp-jlyt jlt application/vnd.hp-pcl pcl application/vnd.hp-pclxl pclxl -application/vnd.httphone +application/vnd.httphone application/vnd.hydrostatix.sof-data sfd-hdstx application/vnd.hzn-3d-crossword x3d -application/vnd.ibm.afplinedata -application/vnd.ibm.electronic-media +application/vnd.ibm.afplinedata +application/vnd.ibm.electronic-media application/vnd.ibm.minipay mpy application/vnd.ibm.modcap afp list3820 listafp application/vnd.ibm.rights-management irm @@ -372,29 +372,29 @@ application/vnd.iccprofile icc icm application/vnd.igloader igl application/vnd.immervision-ivp ivp application/vnd.immervision-ivu ivu -application/vnd.informedcontrol.rms+xml -application/vnd.informix-visionary +application/vnd.informedcontrol.rms+xml +application/vnd.informix-visionary application/vnd.intercon.formnet xpw xpx -application/vnd.intertrust.digibox -application/vnd.intertrust.nncp +application/vnd.intertrust.digibox +application/vnd.intertrust.nncp application/vnd.intu.qbo qbo application/vnd.intu.qfx qfx -application/vnd.iptc.g2.conceptitem+xml -application/vnd.iptc.g2.knowledgeitem+xml -application/vnd.iptc.g2.newsitem+xml -application/vnd.iptc.g2.packageitem+xml +application/vnd.iptc.g2.conceptitem+xml +application/vnd.iptc.g2.knowledgeitem+xml +application/vnd.iptc.g2.newsitem+xml +application/vnd.iptc.g2.packageitem+xml application/vnd.ipunplugged.rcprofile rcprofile application/vnd.irepository.package+xml irp application/vnd.is-xpr xpr application/vnd.jam jam -application/vnd.japannet-directory-service -application/vnd.japannet-jpnstore-wakeup -application/vnd.japannet-payment-wakeup -application/vnd.japannet-registration -application/vnd.japannet-registration-wakeup -application/vnd.japannet-setstore-wakeup -application/vnd.japannet-verification -application/vnd.japannet-verification-wakeup +application/vnd.japannet-directory-service +application/vnd.japannet-jpnstore-wakeup +application/vnd.japannet-payment-wakeup +application/vnd.japannet-registration +application/vnd.japannet-registration-wakeup +application/vnd.japannet-setstore-wakeup +application/vnd.japannet-verification +application/vnd.japannet-verification-wakeup application/vnd.jcp.javame.midlet-rms rms application/vnd.jisp jisp application/vnd.joost.joda-archive joda @@ -412,7 +412,7 @@ application/vnd.kidspiration kia application/vnd.kinar kne knp application/vnd.koan skd skm skp skt application/vnd.kodak-descriptor sse -application/vnd.liberty-request+xml +application/vnd.liberty-request+xml application/vnd.llamagraphics.life-balance.desktop lbd application/vnd.llamagraphics.life-balance.exchange+xml lbe application/vnd.lotus-1-2-3 123 @@ -423,21 +423,21 @@ application/vnd.lotus-organizer org application/vnd.lotus-screencam scm application/vnd.lotus-wordpro lwp application/vnd.macports.portpkg portpkg -application/vnd.marlin.drm.actiontoken+xml -application/vnd.marlin.drm.conftoken+xml -application/vnd.marlin.drm.license+xml -application/vnd.marlin.drm.mdcf +application/vnd.marlin.drm.actiontoken+xml +application/vnd.marlin.drm.conftoken+xml +application/vnd.marlin.drm.license+xml +application/vnd.marlin.drm.mdcf application/vnd.mcd mcd application/vnd.medcalcdata mc1 application/vnd.mediastation.cdkey cdkey -application/vnd.meridian-slingshot +application/vnd.meridian-slingshot application/vnd.mfer mwf application/vnd.mfmp mfm application/vnd.micrografx.flo flo application/vnd.micrografx.igx igx application/vnd.mif mif -application/vnd.minisoft-hp3000-save -application/vnd.mitsubishi.misty-guard.trustweb +application/vnd.minisoft-hp3000-save +application/vnd.mitsubishi.misty-guard.trustweb application/vnd.mobius.daf daf application/vnd.mobius.dis dis application/vnd.mobius.mbk mbk @@ -447,17 +447,17 @@ application/vnd.mobius.plc plc application/vnd.mobius.txf txf application/vnd.mophun.application mpn application/vnd.mophun.certificate mpc -application/vnd.motorola.flexsuite -application/vnd.motorola.flexsuite.adsi -application/vnd.motorola.flexsuite.fis -application/vnd.motorola.flexsuite.gotap -application/vnd.motorola.flexsuite.kmr -application/vnd.motorola.flexsuite.ttc -application/vnd.motorola.flexsuite.wem -application/vnd.motorola.iprm +application/vnd.motorola.flexsuite +application/vnd.motorola.flexsuite.adsi +application/vnd.motorola.flexsuite.fis +application/vnd.motorola.flexsuite.gotap +application/vnd.motorola.flexsuite.kmr +application/vnd.motorola.flexsuite.ttc +application/vnd.motorola.flexsuite.wem +application/vnd.motorola.iprm application/vnd.mozilla.xul+xml xul application/vnd.ms-artgalry cil -application/vnd.ms-asf +application/vnd.ms-asf application/vnd.ms-cab-compressed cab application/vnd.ms-excel xla xlb xlc xlm xls xlt xlw application/vnd.ms-excel.addin.macroenabled.12 xlam @@ -470,7 +470,7 @@ application/vnd.ms-ims ims application/vnd.ms-lrm lrm application/vnd.ms-pki.seccat cat application/vnd.ms-pki.stl stl -application/vnd.ms-playready.initiator+xml +application/vnd.ms-playready.initiator+xml application/vnd.ms-powerpoint pot pps ppt application/vnd.ms-powerpoint.addin.macroenabled.12 ppam application/vnd.ms-powerpoint.presentation.macroenabled.12 pptm @@ -478,45 +478,45 @@ application/vnd.ms-powerpoint.slide.macroenabled.12 sldm application/vnd.ms-powerpoint.slideshow.macroenabled.12 ppsm application/vnd.ms-powerpoint.template.macroenabled.12 potm application/vnd.ms-project mpp mpt -application/vnd.ms-tnef -application/vnd.ms-wmdrm.lic-chlg-req -application/vnd.ms-wmdrm.lic-resp -application/vnd.ms-wmdrm.meter-chlg-req -application/vnd.ms-wmdrm.meter-resp +application/vnd.ms-tnef +application/vnd.ms-wmdrm.lic-chlg-req +application/vnd.ms-wmdrm.lic-resp +application/vnd.ms-wmdrm.meter-chlg-req +application/vnd.ms-wmdrm.meter-resp application/vnd.ms-word.document.macroenabled.12 docm application/vnd.ms-word.template.macroenabled.12 dotm application/vnd.ms-works wcm wdb wks wps application/vnd.ms-wpl wpl application/vnd.ms-xpsdocument xps application/vnd.mseq mseq -application/vnd.msign -application/vnd.multiad.creator -application/vnd.multiad.creator.cif -application/vnd.music-niff +application/vnd.msign +application/vnd.multiad.creator +application/vnd.multiad.creator.cif +application/vnd.music-niff application/vnd.musician mus application/vnd.muvee.style msty -application/vnd.ncd.control -application/vnd.ncd.reference -application/vnd.nervana -application/vnd.netfpx +application/vnd.ncd.control +application/vnd.ncd.reference +application/vnd.nervana +application/vnd.netfpx application/vnd.neurolanguage.nlu nlu application/vnd.noblenet-directory nnd application/vnd.noblenet-sealer nns application/vnd.noblenet-web nnw -application/vnd.nokia.catalogs -application/vnd.nokia.conml+wbxml -application/vnd.nokia.conml+xml -application/vnd.nokia.iptv.config+xml -application/vnd.nokia.isds-radio-presets -application/vnd.nokia.landmark+wbxml -application/vnd.nokia.landmark+xml -application/vnd.nokia.landmarkcollection+xml -application/vnd.nokia.n-gage.ac+xml +application/vnd.nokia.catalogs +application/vnd.nokia.conml+wbxml +application/vnd.nokia.conml+xml +application/vnd.nokia.iptv.config+xml +application/vnd.nokia.isds-radio-presets +application/vnd.nokia.landmark+wbxml +application/vnd.nokia.landmark+xml +application/vnd.nokia.landmarkcollection+xml +application/vnd.nokia.n-gage.ac+xml application/vnd.nokia.n-gage.data ngdat application/vnd.nokia.n-gage.symbian.install n-gage -application/vnd.nokia.ncd -application/vnd.nokia.pcd+wbxml -application/vnd.nokia.pcd+xml +application/vnd.nokia.ncd +application/vnd.nokia.pcd+wbxml +application/vnd.nokia.pcd+xml application/vnd.nokia.radio-preset rpst application/vnd.nokia.radio-presets rpss application/vnd.novadigm.edm edm @@ -539,39 +539,39 @@ application/vnd.oasis.opendocument.text odt application/vnd.oasis.opendocument.text-master odm otm application/vnd.oasis.opendocument.text-template ott application/vnd.oasis.opendocument.text-web oth -application/vnd.obn +application/vnd.obn application/vnd.olpc-sugar xo -application/vnd.oma-scws-config -application/vnd.oma-scws-http-request -application/vnd.oma-scws-http-response -application/vnd.oma.bcast.associated-procedure-parameter+xml -application/vnd.oma.bcast.drm-trigger+xml -application/vnd.oma.bcast.imd+xml -application/vnd.oma.bcast.ltkm -application/vnd.oma.bcast.notification+xml -application/vnd.oma.bcast.provisioningtrigger -application/vnd.oma.bcast.sgboot -application/vnd.oma.bcast.sgdd+xml -application/vnd.oma.bcast.sgdu -application/vnd.oma.bcast.simple-symbol-container -application/vnd.oma.bcast.smartcard-trigger+xml -application/vnd.oma.bcast.sprov+xml -application/vnd.oma.bcast.stkm -application/vnd.oma.dcd -application/vnd.oma.dcdc +application/vnd.oma-scws-config +application/vnd.oma-scws-http-request +application/vnd.oma-scws-http-response +application/vnd.oma.bcast.associated-procedure-parameter+xml +application/vnd.oma.bcast.drm-trigger+xml +application/vnd.oma.bcast.imd+xml +application/vnd.oma.bcast.ltkm +application/vnd.oma.bcast.notification+xml +application/vnd.oma.bcast.provisioningtrigger +application/vnd.oma.bcast.sgboot +application/vnd.oma.bcast.sgdd+xml +application/vnd.oma.bcast.sgdu +application/vnd.oma.bcast.simple-symbol-container +application/vnd.oma.bcast.smartcard-trigger+xml +application/vnd.oma.bcast.sprov+xml +application/vnd.oma.bcast.stkm +application/vnd.oma.dcd +application/vnd.oma.dcdc application/vnd.oma.dd2+xml dd2 -application/vnd.oma.drm.risd+xml -application/vnd.oma.group-usage-list+xml -application/vnd.oma.poc.detailed-progress-report+xml -application/vnd.oma.poc.final-report+xml -application/vnd.oma.poc.groups+xml -application/vnd.oma.poc.invocation-descriptor+xml -application/vnd.oma.poc.optimized-progress-report+xml -application/vnd.oma.xcap-directory+xml -application/vnd.omads-email+xml -application/vnd.omads-file+xml -application/vnd.omads-folder+xml -application/vnd.omaloc-supl-init +application/vnd.oma.drm.risd+xml +application/vnd.oma.group-usage-list+xml +application/vnd.oma.poc.detailed-progress-report+xml +application/vnd.oma.poc.final-report+xml +application/vnd.oma.poc.groups+xml +application/vnd.oma.poc.invocation-descriptor+xml +application/vnd.oma.poc.optimized-progress-report+xml +application/vnd.oma.xcap-directory+xml +application/vnd.omads-email+xml +application/vnd.omads-file+xml +application/vnd.omads-folder+xml +application/vnd.omaloc-supl-init application/vnd.openofficeorg.extension oxt application/vnd.openxmlformats-officedocument.presentationml.presentation pptx application/vnd.openxmlformats-officedocument.presentationml.slide sldx @@ -581,55 +581,55 @@ application/vnd.openxmlformats-officedocument.spreadsheetml.sheet xlsx application/vnd.openxmlformats-officedocument.spreadsheetml.template xltx application/vnd.openxmlformats-officedocument.wordprocessingml.document docx application/vnd.openxmlformats-officedocument.wordprocessingml.template dotx -application/vnd.osa.netdeploy -application/vnd.osgi.bundle +application/vnd.osa.netdeploy +application/vnd.osgi.bundle application/vnd.osgi.dp dp -application/vnd.otps.ct-kip+xml -application/vnd.paos.xml +application/vnd.otps.ct-kip+xml +application/vnd.paos.xml application/vnd.pg.format str application/vnd.pg.osasli ei6 -application/vnd.piaccess.application-licence +application/vnd.piaccess.application-licence application/vnd.picsel efif -application/vnd.poc.group-advertisement+xml +application/vnd.poc.group-advertisement+xml application/vnd.pocketlearn plf application/vnd.powerbuilder6 pbd -application/vnd.powerbuilder6-s -application/vnd.powerbuilder7 -application/vnd.powerbuilder7-s -application/vnd.powerbuilder75 -application/vnd.powerbuilder75-s -application/vnd.preminet +application/vnd.powerbuilder6-s +application/vnd.powerbuilder7 +application/vnd.powerbuilder7-s +application/vnd.powerbuilder75 +application/vnd.powerbuilder75-s +application/vnd.preminet application/vnd.previewsystems.box box application/vnd.proteus.magazine mgz application/vnd.publishare-delta-tree qps application/vnd.pvi.ptid1 ptid -application/vnd.pwg-multiplexed -application/vnd.pwg-xhtml-print+xml -application/vnd.qualcomm.brew-app-res +application/vnd.pwg-multiplexed +application/vnd.pwg-xhtml-print+xml +application/vnd.qualcomm.brew-app-res application/vnd.quark.quarkxpress qwd qwt qxb qxd qxl qxt -application/vnd.rapid +application/vnd.rapid application/vnd.recordare.musicxml mxl application/vnd.recordare.musicxml+xml musicxml -application/vnd.renlearn.rlprint +application/vnd.renlearn.rlprint application/vnd.rim.cod cod application/vnd.rn-realmedia rm application/vnd.route66.link66+xml link66 -application/vnd.ruckus.download -application/vnd.s3sms -application/vnd.sbm.cid -application/vnd.sbm.mid2 -application/vnd.scribus -application/vnd.sealed.3df -application/vnd.sealed.csf -application/vnd.sealed.doc -application/vnd.sealed.eml -application/vnd.sealed.mht -application/vnd.sealed.net -application/vnd.sealed.ppt -application/vnd.sealed.tiff -application/vnd.sealed.xls -application/vnd.sealedmedia.softseal.html -application/vnd.sealedmedia.softseal.pdf +application/vnd.ruckus.download +application/vnd.s3sms +application/vnd.sbm.cid +application/vnd.sbm.mid2 +application/vnd.scribus +application/vnd.sealed.3df +application/vnd.sealed.csf +application/vnd.sealed.doc +application/vnd.sealed.eml +application/vnd.sealed.mht +application/vnd.sealed.net +application/vnd.sealed.ppt +application/vnd.sealed.tiff +application/vnd.sealed.xls +application/vnd.sealedmedia.softseal.html +application/vnd.sealedmedia.softseal.pdf application/vnd.seemail see application/vnd.sema sema application/vnd.semd semd @@ -641,22 +641,22 @@ application/vnd.shana.informed.package ipk application/vnd.simtech-mindmapper twd twds application/vnd.smaf mmf application/vnd.smart.teacher teacher -application/vnd.software602.filler.form+xml -application/vnd.software602.filler.form-xml-zip +application/vnd.software602.filler.form+xml +application/vnd.software602.filler.form-xml-zip application/vnd.solent.sdkm+xml sdkd sdkm application/vnd.spotfire.dxp dxp application/vnd.spotfire.sfs sfs -application/vnd.sss-cod -application/vnd.sss-dtf -application/vnd.sss-ntf +application/vnd.sss-cod +application/vnd.sss-dtf +application/vnd.sss-ntf application/vnd.stardivision.calc sdc application/vnd.stardivision.draw sda application/vnd.stardivision.impress sdd sdp application/vnd.stardivision.math sdf smf application/vnd.stardivision.writer sdw vor application/vnd.stardivision.writer-global sgl -application/vnd.street-stream -application/vnd.sun.wadl+xml +application/vnd.street-stream +application/vnd.sun.wadl+xml application/vnd.sun.xml.calc sxc application/vnd.sun.xml.calc.template stc application/vnd.sun.xml.draw sxd @@ -669,70 +669,70 @@ application/vnd.sun.xml.writer.global sxg application/vnd.sun.xml.writer.template stw application/vnd.sus-calendar sus susp application/vnd.svd svd -application/vnd.swiftview-ics +application/vnd.swiftview-ics application/vnd.symbian.install sis sisx application/vnd.syncml+xml xsm application/vnd.syncml.dm+wbxml bdm application/vnd.syncml.dm+xml xdm -application/vnd.syncml.dm.notification -application/vnd.syncml.ds.notification +application/vnd.syncml.dm.notification +application/vnd.syncml.ds.notification application/vnd.tao.intent-module-archive tao application/vnd.tmobile-livetv tmo application/vnd.trid.tpt tpt application/vnd.triscape.mxs mxs application/vnd.trueapp tra -application/vnd.truedoc +application/vnd.truedoc application/vnd.ufdl ufd ufdl application/vnd.uiq.theme utz application/vnd.umajin umj application/vnd.unity unityweb application/vnd.uoml+xml uoml -application/vnd.uplanet.alert -application/vnd.uplanet.alert-wbxml -application/vnd.uplanet.bearer-choice -application/vnd.uplanet.bearer-choice-wbxml -application/vnd.uplanet.cacheop -application/vnd.uplanet.cacheop-wbxml -application/vnd.uplanet.channel -application/vnd.uplanet.channel-wbxml -application/vnd.uplanet.list -application/vnd.uplanet.list-wbxml -application/vnd.uplanet.listcmd -application/vnd.uplanet.listcmd-wbxml -application/vnd.uplanet.signal +application/vnd.uplanet.alert +application/vnd.uplanet.alert-wbxml +application/vnd.uplanet.bearer-choice +application/vnd.uplanet.bearer-choice-wbxml +application/vnd.uplanet.cacheop +application/vnd.uplanet.cacheop-wbxml +application/vnd.uplanet.channel +application/vnd.uplanet.channel-wbxml +application/vnd.uplanet.list +application/vnd.uplanet.list-wbxml +application/vnd.uplanet.listcmd +application/vnd.uplanet.listcmd-wbxml +application/vnd.uplanet.signal application/vnd.vcx vcx -application/vnd.vd-study -application/vnd.vectorworks -application/vnd.vidsoft.vidconference +application/vnd.vd-study +application/vnd.vectorworks +application/vnd.vidsoft.vidconference application/vnd.visio vsd vss vst vsw application/vnd.visionary vis -application/vnd.vividence.scriptfile +application/vnd.vividence.scriptfile application/vnd.vsf vsf -application/vnd.wap.sic -application/vnd.wap.slc +application/vnd.wap.sic +application/vnd.wap.slc application/vnd.wap.wbxml wbxml application/vnd.wap.wmlc wmlc application/vnd.wap.wmlscriptc wmlsc application/vnd.webturbo wtb -application/vnd.wfa.wsc -application/vnd.wmc -application/vnd.wmf.bootstrap +application/vnd.wfa.wsc +application/vnd.wmc +application/vnd.wmf.bootstrap application/vnd.wordperfect wpd application/vnd.wqd wqd -application/vnd.wrq-hp3000-labelled +application/vnd.wrq-hp3000-labelled application/vnd.wt.stf stf -application/vnd.wv.csp+wbxml -application/vnd.wv.csp+xml -application/vnd.wv.ssp+xml +application/vnd.wv.csp+wbxml +application/vnd.wv.csp+xml +application/vnd.wv.ssp+xml application/vnd.xara xar application/vnd.xfdl xfdl -application/vnd.xfdl.webform -application/vnd.xmi+xml -application/vnd.xmpie.cpkg -application/vnd.xmpie.dpkg -application/vnd.xmpie.plan -application/vnd.xmpie.ppkg -application/vnd.xmpie.xlim +application/vnd.xfdl.webform +application/vnd.xmi+xml +application/vnd.xmpie.cpkg +application/vnd.xmpie.dpkg +application/vnd.xmpie.plan +application/vnd.xmpie.ppkg +application/vnd.xmpie.xlim application/vnd.yamaha.hv-dic hvd application/vnd.yamaha.hv-script hvs application/vnd.yamaha.hv-voice hvp @@ -744,11 +744,11 @@ application/vnd.yellowriver-custom-menu cmp application/vnd.zul zir zirz application/vnd.zzazz.deck+xml zaz application/voicexml+xml vxml -application/watcherinfo+xml -application/whoispp-query -application/whoispp-response +application/watcherinfo+xml +application/whoispp-query +application/whoispp-response application/winhlp hlp -application/wita +application/wita application/wordperfect wpd application/wordperfect5.1 wp5 application/wsdl+xml wsdl @@ -768,7 +768,7 @@ application/x-cdf cdf application/x-cdlink vcd application/x-chat chat application/x-chess-pgn pgn -application/x-compress +application/x-compress application/x-cpio cpio application/x-csh csh application/x-debian-package deb udeb @@ -782,26 +782,26 @@ application/x-dvi dvi application/x-flac flac application/x-font gsf pcf pcf.Z pfa pfb application/x-font-bdf bdf -application/x-font-dos -application/x-font-framemaker +application/x-font-dos +application/x-font-framemaker application/x-font-ghostscript gsf -application/x-font-libgrx +application/x-font-libgrx application/x-font-linux-psf psf application/x-font-otf otf application/x-font-pcf pcf application/x-font-snf snf -application/x-font-speedo -application/x-font-sunos-news +application/x-font-speedo +application/x-font-sunos-news application/x-font-ttf ttc ttf application/x-font-type1 afm pfa pfb pfm -application/x-font-vfont +application/x-font-vfont application/x-freemind mm application/x-futuresplash spl application/x-gnumeric gnumeric application/x-go-sgf sgf application/x-graphing-calculator gcf application/x-gtar gtar taz tgz -application/x-gzip +application/x-gzip application/x-hdf hdf application/x-ica ica application/x-internet-signup ins isp @@ -880,147 +880,147 @@ application/x-x509-ca-cert crt der application/x-xcf xcf application/x-xfig fig application/x-xpinstall xpi -application/x400-bp -application/xcap-att+xml -application/xcap-caps+xml -application/xcap-el+xml -application/xcap-error+xml -application/xcap-ns+xml -application/xcon-conference-info+xml -application/xcon-conference-info-diff+xml +application/x400-bp +application/xcap-att+xml +application/xcap-caps+xml +application/xcap-el+xml +application/xcap-error+xml +application/xcap-ns+xml +application/xcon-conference-info+xml +application/xcon-conference-info-diff+xml application/xenc+xml xenc application/xhtml+xml xht xhtml -application/xhtml-voice+xml +application/xhtml-voice+xml application/xml xml xsl application/xml-dtd dtd -application/xml-external-parsed-entity -application/xmpp+xml +application/xml-external-parsed-entity +application/xmpp+xml application/xop+xml xop application/xslt+xml xslt application/xspf+xml xspf application/xv+xml mxml xhvml xvm xvml application/zip zip -audio/32kadpcm -audio/3gpp -audio/3gpp2 -audio/ac3 +audio/32kadpcm +audio/3gpp +audio/3gpp2 +audio/ac3 audio/adpcm adp -audio/amr -audio/amr-wb -audio/amr-wb+ -audio/asc +audio/amr +audio/amr-wb +audio/amr-wb+ +audio/asc audio/basic au snd -audio/bv16 -audio/bv32 -audio/clearmode -audio/cn -audio/dat12 -audio/dls -audio/dsr-es201108 -audio/dsr-es202050 -audio/dsr-es202211 -audio/dsr-es202212 -audio/dvi4 -audio/eac3 -audio/evrc -audio/evrc-qcp -audio/evrc0 -audio/evrc1 -audio/evrcb -audio/evrcb0 -audio/evrcb1 -audio/evrcwb -audio/evrcwb0 -audio/evrcwb1 -audio/example -audio/g719 -audio/g722 -audio/g7221 -audio/g723 -audio/g726-16 -audio/g726-24 -audio/g726-32 -audio/g726-40 -audio/g728 -audio/g729 -audio/g7291 -audio/g729d -audio/g729e -audio/gsm -audio/gsm-efr -audio/ilbc -audio/l16 -audio/l20 -audio/l24 -audio/l8 -audio/lpc +audio/bv16 +audio/bv32 +audio/clearmode +audio/cn +audio/dat12 +audio/dls +audio/dsr-es201108 +audio/dsr-es202050 +audio/dsr-es202211 +audio/dsr-es202212 +audio/dvi4 +audio/eac3 +audio/evrc +audio/evrc-qcp +audio/evrc0 +audio/evrc1 +audio/evrcb +audio/evrcb0 +audio/evrcb1 +audio/evrcwb +audio/evrcwb0 +audio/evrcwb1 +audio/example +audio/g719 +audio/g722 +audio/g7221 +audio/g723 +audio/g726-16 +audio/g726-24 +audio/g726-32 +audio/g726-40 +audio/g728 +audio/g729 +audio/g7291 +audio/g729d +audio/g729e +audio/gsm +audio/gsm-efr +audio/ilbc +audio/l16 +audio/l20 +audio/l24 +audio/l8 +audio/lpc audio/midi kar mid midi rmi -audio/mobile-xmf +audio/mobile-xmf audio/mp4 mp4a -audio/mp4a-latm -audio/mpa -audio/mpa-robust +audio/mp4a-latm +audio/mpa +audio/mpa-robust audio/mpeg m2a m3a m4a mp2 mp2a mp3 mpega mpga -audio/mpeg4-generic +audio/mpeg4-generic audio/mpegurl m3u audio/ogg oga ogg spx -audio/parityfec -audio/pcma -audio/pcma-wb -audio/pcmu -audio/pcmu-wb +audio/parityfec +audio/pcma +audio/pcma-wb +audio/pcmu +audio/pcmu-wb audio/prs.sid sid -audio/qcelp -audio/red -audio/rtp-enc-aescm128 -audio/rtp-midi -audio/rtx -audio/smv -audio/smv-qcp -audio/smv0 -audio/sp-midi -audio/t140c -audio/t38 -audio/telephone-event -audio/tone -audio/ulpfec -audio/vdvi -audio/vmr-wb -audio/vnd.3gpp.iufp -audio/vnd.4sb -audio/vnd.audiokoz -audio/vnd.celp -audio/vnd.cisco.nse -audio/vnd.cmles.radio-events -audio/vnd.cns.anp1 -audio/vnd.cns.inf1 +audio/qcelp +audio/red +audio/rtp-enc-aescm128 +audio/rtp-midi +audio/rtx +audio/smv +audio/smv-qcp +audio/smv0 +audio/sp-midi +audio/t140c +audio/t38 +audio/telephone-event +audio/tone +audio/ulpfec +audio/vdvi +audio/vmr-wb +audio/vnd.3gpp.iufp +audio/vnd.4sb +audio/vnd.audiokoz +audio/vnd.celp +audio/vnd.cisco.nse +audio/vnd.cmles.radio-events +audio/vnd.cns.anp1 +audio/vnd.cns.inf1 audio/vnd.digital-winds eol -audio/vnd.dlna.adts -audio/vnd.dolby.heaac.1 -audio/vnd.dolby.heaac.2 -audio/vnd.dolby.mlp -audio/vnd.dolby.mps -audio/vnd.dolby.pl2 -audio/vnd.dolby.pl2x -audio/vnd.dolby.pl2z +audio/vnd.dlna.adts +audio/vnd.dolby.heaac.1 +audio/vnd.dolby.heaac.2 +audio/vnd.dolby.mlp +audio/vnd.dolby.mps +audio/vnd.dolby.pl2 +audio/vnd.dolby.pl2x +audio/vnd.dolby.pl2z audio/vnd.dts dts audio/vnd.dts.hd dtshd -audio/vnd.everad.plj -audio/vnd.hns.audio +audio/vnd.everad.plj +audio/vnd.hns.audio audio/vnd.lucent.voice lvp audio/vnd.ms-playready.media.pya pya -audio/vnd.nokia.mobile-xmf -audio/vnd.nortel.vbk +audio/vnd.nokia.mobile-xmf +audio/vnd.nortel.vbk audio/vnd.nuera.ecelp4800 ecelp4800 audio/vnd.nuera.ecelp7470 ecelp7470 audio/vnd.nuera.ecelp9600 ecelp9600 -audio/vnd.octel.sbc -audio/vnd.qcelp -audio/vnd.rhetorex.32kadpcm -audio/vnd.sealedmedia.softseal.mpeg -audio/vnd.vmx.cvsd -audio/vorbis -audio/vorbis-config +audio/vnd.octel.sbc +audio/vnd.qcelp +audio/vnd.rhetorex.32kadpcm +audio/vnd.sealedmedia.softseal.mpeg +audio/vnd.vmx.cvsd +audio/vorbis +audio/vorbis-config audio/x-aac aac audio/x-aiff aif aifc aiff audio/x-gsm gsm @@ -1088,26 +1088,26 @@ chemical/x-xtel xtel chemical/x-xyz xyz image/bmp bmp image/cgm cgm -image/example -image/fits +image/example +image/fits image/g3fax g3 image/gif gif image/ief ief -image/jp2 +image/jp2 image/jpeg jpe jpeg jpg -image/jpm -image/jpx -image/naplps +image/jpm +image/jpx +image/naplps image/pcx pcx image/png png image/prs.btif btif -image/prs.pti +image/prs.pti image/svg+xml svg svgz -image/t38 +image/t38 image/tiff tif tiff -image/tiff-fx +image/tiff-fx image/vnd.adobe.photoshop psd -image/vnd.cns.inf2 +image/vnd.cns.inf2 image/vnd.djvu djv djvu image/vnd.dwg dwg image/vnd.dxf dxf @@ -1116,16 +1116,16 @@ image/vnd.fpx fpx image/vnd.fst fst image/vnd.fujixerox.edmics-mmr mmr image/vnd.fujixerox.edmics-rlc rlc -image/vnd.globalgraphics.pgb -image/vnd.microsoft.icon -image/vnd.mix +image/vnd.globalgraphics.pgb +image/vnd.microsoft.icon +image/vnd.mix image/vnd.ms-modi mdi image/vnd.net-fpx npx -image/vnd.radiance -image/vnd.sealed.png -image/vnd.sealedmedia.softseal.gif -image/vnd.sealedmedia.softseal.jpg -image/vnd.svf +image/vnd.radiance +image/vnd.sealed.png +image/vnd.sealedmedia.softseal.gif +image/vnd.sealedmedia.softseal.jpg +image/vnd.svf image/vnd.wap.wbmp wbmp image/vnd.xiff xif image/x-cmu-raster ras @@ -1150,109 +1150,109 @@ image/x-rgb rgb image/x-xbitmap xbm image/x-xpixmap xpm image/x-xwindowdump xwd -message/cpim -message/delivery-status -message/disposition-notification -message/example -message/external-body -message/global -message/global-delivery-status -message/global-disposition-notification -message/global-headers -message/http -message/imdn+xml -message/news -message/partial +message/cpim +message/delivery-status +message/disposition-notification +message/example +message/external-body +message/global +message/global-delivery-status +message/global-disposition-notification +message/global-headers +message/http +message/imdn+xml +message/news +message/partial message/rfc822 eml mime -message/s-http -message/sip -message/sipfrag -message/tracking-status -message/vnd.si.simp -model/example +message/s-http +message/sip +message/sipfrag +message/tracking-status +message/vnd.si.simp +model/example model/iges iges igs model/mesh mesh msh silo model/vnd.dwf dwf -model/vnd.flatland.3dml +model/vnd.flatland.3dml model/vnd.gdl gdl -model/vnd.gs-gdl -model/vnd.gs.gdl +model/vnd.gs-gdl +model/vnd.gs.gdl model/vnd.gtw gtw -model/vnd.moml+xml +model/vnd.moml+xml model/vnd.mts mts -model/vnd.parasolid.transmit.binary -model/vnd.parasolid.transmit.text +model/vnd.parasolid.transmit.binary +model/vnd.parasolid.transmit.text model/vnd.vtu vtu model/vrml vrml wrl -multipart/alternative -multipart/appledouble -multipart/byteranges -multipart/digest -multipart/encrypted -multipart/example -multipart/form-data -multipart/header-set -multipart/mixed -multipart/parallel -multipart/related -multipart/report -multipart/signed -multipart/voice-message +multipart/alternative +multipart/appledouble +multipart/byteranges +multipart/digest +multipart/encrypted +multipart/example +multipart/form-data +multipart/header-set +multipart/mixed +multipart/parallel +multipart/related +multipart/report +multipart/signed +multipart/voice-message text/calendar ics icz ifb text/comma-separated-values csv text/css css text/csv csv -text/directory -text/dns -text/ecmascript -text/enriched -text/example +text/directory +text/dns +text/ecmascript +text/enriched +text/example text/h323 323 text/html htm html shtml text/iuls uls -text/javascript +text/javascript text/mathml mml -text/parityfec +text/parityfec text/plain asc conf def diff in list log pot text txt -text/prs.fallenstein.rst +text/prs.fallenstein.rst text/prs.lines.tag dsc -text/red -text/rfc822-headers +text/red +text/rfc822-headers text/richtext rtx text/rtf rtf -text/rtp-enc-aescm128 -text/rtx +text/rtp-enc-aescm128 +text/rtx text/scriptlet sct wsc text/sgml sgm sgml -text/t140 +text/t140 text/tab-separated-values tsv text/texmacs tm ts text/troff man me ms roff t tr -text/ulpfec +text/ulpfec text/uri-list uri uris urls -text/vnd.abc +text/vnd.abc text/vnd.curl curl text/vnd.curl.dcurl dcurl text/vnd.curl.mcurl mcurl text/vnd.curl.scurl scurl -text/vnd.dmclientscript -text/vnd.esmertec.theme-descriptor +text/vnd.dmclientscript +text/vnd.esmertec.theme-descriptor text/vnd.fly fly text/vnd.fmi.flexstor flx text/vnd.graphviz gv text/vnd.in3d.3dml 3dml text/vnd.in3d.spot spot -text/vnd.iptc.newsml -text/vnd.iptc.nitf -text/vnd.latex-z -text/vnd.motorola.reflex -text/vnd.ms-mediapackage -text/vnd.net2phone.commcenter.command -text/vnd.si.uricatalogue +text/vnd.iptc.newsml +text/vnd.iptc.nitf +text/vnd.latex-z +text/vnd.motorola.reflex +text/vnd.ms-mediapackage +text/vnd.net2phone.commcenter.command +text/vnd.si.uricatalogue text/vnd.sun.j2me.app-descriptor jad -text/vnd.trolltech.linguist -text/vnd.wap.si -text/vnd.wap.sl +text/vnd.trolltech.linguist +text/vnd.wap.si +text/vnd.wap.sl text/vnd.wap.wml wml text/vnd.wap.wmlscript wmls text/x-asm asm s @@ -1281,68 +1281,68 @@ text/x-tex cls ltx sty tex text/x-uuencode uu text/x-vcalendar vcs text/x-vcard vcf -text/xml -text/xml-external-parsed-entity +text/xml +text/xml-external-parsed-entity video/3gpp 3gp -video/3gpp-tt +video/3gpp-tt video/3gpp2 3g2 -video/bmpeg -video/bt656 -video/celb +video/bmpeg +video/bt656 +video/celb video/dl dl video/dv dif dv -video/example +video/example video/fli fli video/gl gl video/h261 h261 video/h263 h263 -video/h263-1998 -video/h263-2000 +video/h263-1998 +video/h263-2000 video/h264 h264 video/jpeg jpgv -video/jpeg2000 +video/jpeg2000 video/jpm jpgm jpm video/mj2 mj2 mjp2 -video/mp1s -video/mp2p -video/mp2t +video/mp1s +video/mp2p +video/mp2t video/mp4 mp4 mp4v mpg4 -video/mp4v-es +video/mp4v-es video/mpeg m1v m2v mpe mpeg mpg -video/mpeg4-generic -video/mpv -video/nv +video/mpeg4-generic +video/mpv +video/nv video/ogg ogv -video/parityfec -video/pointer +video/parityfec +video/pointer video/quicktime mov qt -video/raw -video/rtp-enc-aescm128 -video/rtx -video/smpte292m -video/ulpfec -video/vc1 -video/vnd.cctv -video/vnd.dlna.mpeg-tts +video/raw +video/rtp-enc-aescm128 +video/rtx +video/smpte292m +video/ulpfec +video/vc1 +video/vnd.cctv +video/vnd.dlna.mpeg-tts video/vnd.fvt fvt -video/vnd.hns.video -video/vnd.iptvforum.1dparityfec-1010 -video/vnd.iptvforum.1dparityfec-2005 -video/vnd.iptvforum.2dparityfec-1010 -video/vnd.iptvforum.2dparityfec-2005 -video/vnd.iptvforum.ttsavc -video/vnd.iptvforum.ttsmpeg2 -video/vnd.motorola.video -video/vnd.motorola.videop +video/vnd.hns.video +video/vnd.iptvforum.1dparityfec-1010 +video/vnd.iptvforum.1dparityfec-2005 +video/vnd.iptvforum.2dparityfec-1010 +video/vnd.iptvforum.2dparityfec-2005 +video/vnd.iptvforum.ttsavc +video/vnd.iptvforum.ttsmpeg2 +video/vnd.motorola.video +video/vnd.motorola.videop video/vnd.mpegurl m4u mxu video/vnd.ms-playready.media.pyv pyv -video/vnd.nokia.interleaved-multimedia -video/vnd.nokia.videovoip -video/vnd.objectvideo -video/vnd.sealed.mpeg1 -video/vnd.sealed.mpeg4 -video/vnd.sealed.swf -video/vnd.sealedmedia.softseal.mov +video/vnd.nokia.interleaved-multimedia +video/vnd.nokia.videovoip +video/vnd.objectvideo +video/vnd.sealed.mpeg1 +video/vnd.sealed.mpeg4 +video/vnd.sealed.swf +video/vnd.sealedmedia.softseal.mov video/vnd.vivo viv video/x-f4v f4v video/x-fli fli @@ -1370,8 +1370,11 @@ application/x-sony-bbeb lrf lrx application/adobe-page-template+xml xpgt application/x-font-opentype otf application/x-font-truetype ttf -application/x-mobipocket-ebook mobi prc -application/vnd.amazon.ebook azw3 azw azw2 azw4 +application/x-mobipocket-ebook mobi prc azw +application/x-topaz-ebook tpz azw1 +application/x-mobipocket-subscription pobi +application/x-kindle-application azw2 +application/x-mobi8-ebook azw3 application/x-cbz cbz application/x-cbr cbr application/x-cb7 cb7 diff --git a/setup/hosting.py b/setup/hosting.py index 33bb3bff04..8dd947a16c 100644 --- a/setup/hosting.py +++ b/setup/hosting.py @@ -141,7 +141,7 @@ class GoogleCode(Base):# {{{ # The pattern to match filenames for the files being uploaded and # extract version information from them. Must have a named group # named version - filename_pattern=r'{appname}-(?:portable-)?(?PSearch and replace uses regular expressions. See the regular expressions tutorial to get started with regular expressions. Also clicking the wizard button below will allow you to test your regular expression against the current input document. When you are happy with an expression, click the Add button to add it to the list of expressions." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:181 +#: /home/kovid/work/calibre/src/calibre/gui2/convert/single.py:184 msgid "Convert" msgstr "" @@ -7707,222 +7716,222 @@ msgstr "" msgid "tags to remove" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:51 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:52 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:148 msgid "No details available." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:203 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:204 msgid "Device no longer connected." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:414 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:418 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/device_debug.py:27 msgid "Debug device detection" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:430 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:434 msgid "Get device information" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:445 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:458 msgid "Get list of books on device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:452 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:465 msgid "Prepare files for transfer from device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:463 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:476 msgid "Get annotations from device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:475 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:488 msgid "Send metadata to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:480 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:493 msgid "Send collections to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:530 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:543 #, python-format msgid "Upload %d books to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:546 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:559 msgid "Delete books from device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:564 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:577 msgid "Download books from device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:574 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:587 msgid "View book on device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:653 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:666 msgid "Set default send to device action" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:659 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:672 msgid "Send to main memory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:661 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:674 msgid "Send to storage card A" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:663 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:676 msgid "Send to storage card B" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:668 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:677 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:681 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:690 msgid "Main Memory" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:689 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:702 msgid "Send specific format to" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:690 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:703 msgid "Send and delete from library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:733 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:746 msgid "Eject device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:814 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:827 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/misc.py:71 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugins.py:332 #: /home/kovid/work/calibre/src/calibre/utils/ipc/job.py:58 msgid "Error" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:815 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:828 msgid "Error communicating with device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:844 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1417 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:857 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1431 #: /home/kovid/work/calibre/src/calibre/gui2/email.py:260 msgid "No suitable formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:860 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:873 msgid "Select folder to open as device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:878 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:891 msgid "Running jobs" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:879 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:892 msgid "Cannot configure the device while there are running device jobs." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:884 -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/mtp_config.py:168 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:897 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/mtp_config.py:359 #, python-format msgid "Configure %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:899 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:912 #, python-format msgid "Restart calibre for the changes to %s to be applied." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:940 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:953 msgid "Error talking to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:941 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:954 msgid "There was a temporary error talking to the device. Please unplug and reconnect the device or reboot." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:985 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:998 msgid "Device: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:987 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1000 msgid " detected." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1089 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1103 msgid "selected to send" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1096 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1126 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1110 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1140 msgid "No device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1097 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1111 msgid "No device connected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1113 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1127 #, python-format msgid "%(num)i of %(total)i Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1117 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1131 #, python-format msgid "0 of %i Books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1118 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1132 msgid "Choose format to send to device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1127 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1141 msgid "Cannot send: No device is connected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1130 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1134 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1144 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1148 msgid "No card" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1131 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1135 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1145 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1149 msgid "Cannot send: Device has no storage card" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1196 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1279 -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1411 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1210 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1293 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1425 msgid "Auto convert the following books before uploading to the device?" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1225 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1239 msgid "Sending catalogs to device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1324 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1338 msgid "Sending news to device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1378 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1392 msgid "Sending books to device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1418 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1432 msgid "Could not upload the following books to the device, as no suitable formats were found. Convert the book(s) to a format supported by your device first." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1491 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1505 msgid "No space on device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1492 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1506 msgid "
Cannot upload books to device there is no more free space available " msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1497 +#: /home/kovid/work/calibre/src/calibre/gui2/device.py:1511 msgid "Incorrect destination" msgstr "" @@ -7935,7 +7944,7 @@ msgid "You have enabled the {0} formats for your {1}. The {1} may not sup msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget.py:155 -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/mtp_config.py:109 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/mtp_config.py:112 #: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:449 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard.py:279 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/save_template.py:70 @@ -7943,7 +7952,7 @@ msgid "Invalid template" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget.py:156 -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/mtp_config.py:110 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/mtp_config.py:113 #: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:450 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard.py:280 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/save_template.py:71 @@ -7971,55 +7980,112 @@ msgstr "" msgid "Save &template:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/mtp_config.py:53 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/mtp_config.py:56 msgid "No formats selected" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/mtp_config.py:54 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/mtp_config.py:57 msgid "You must choose at least one format to send to the device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/mtp_config.py:82 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/mtp_config.py:85 msgid "" "Save &template to control the filename and\n" " location of files sent to the device:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/mtp_config.py:88 -msgid "Template editor" +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/mtp_config.py:91 +msgid "&Template editor" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/mtp_config.py:98 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/mtp_config.py:101 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/template_line_editor.py:41 #: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:436 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/save_template.py:48 msgid "Edit template" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/mtp_config.py:125 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/mtp_config.py:128 msgid "" "A list of &folders on the device to\n" " which to send ebooks. The first one that exists will be used:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/mtp_config.py:148 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/mtp_config.py:138 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/mtp_config.py:225 +msgid "Browse for a folder on the device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/mtp_config.py:166 +msgid "" +"Select the devices to be ignored. calibre will not\n" +" connect to devices with a checkmark next to their names." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/mtp_config.py:211 +#, python-format +msgid "Send the %s format to the folder:" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/mtp_config.py:219 +msgid "Folder on the device" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/mtp_config.py:227 +msgid "&Remove rule" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/mtp_config.py:272 +msgid "Format specific sending" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/mtp_config.py:277 +msgid "" +"You can create rules that control where ebooks of a specific\n" +" format are sent to on the device. These will take precedence over\n" +" the folders specified above." +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/mtp_config.py:299 +msgid "Add a &new rule" +msgstr "" + +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/mtp_config.py:337 #, python-format msgid "The %s device has no serial number, it cannot be configured" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/mtp_config.py:153 +#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/mtp_config.py:342 msgid "No MTP device connected.
You can only configure the MTP device plugin when a device is connected."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/mtp_config.py:160
+#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/mtp_config.py:349
msgid "If you want to un-ignore a previously ignored MTP device, use the \"Ignored devices\" tab."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/mtp_config.py:176
+#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/mtp_config.py:369
#, python-format
msgid "Choose the formats to send to the %s"
msgstr ""
+#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/mtp_config.py:372
+#, python-format
+msgid "&Ignore the %s in calibre"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/mtp_config.py:387
+msgid "Ignored devices"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/mtp_config.py:394
+#, python-format
+msgid "The %s will be ignored in calibre"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/mtp_folder_browser.py:91
+msgid "Choose folder on device"
+msgstr ""
+
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/add_empty_book.py:19
msgid "How many empty books?"
msgstr ""
@@ -8549,7 +8615,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:122
#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main.py:160
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:523
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:672
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:675
msgid "No matches found"
msgstr ""
@@ -8719,7 +8785,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/message_box.py:103
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/message_box.py:335
-#: /home/kovid/work/calibre/src/calibre/gui2/proceed.py:79
+#: /home/kovid/work/calibre/src/calibre/gui2/proceed.py:82
#: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:595
msgid "Copied"
msgstr ""
@@ -8727,7 +8793,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/message_box.py:141
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:880
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks.py:344
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:214
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:220
msgid "Copy to clipboard"
msgstr ""
@@ -9542,8 +9608,8 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/quickview.py:87
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_categories.py:60
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources.py:156
-#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:288
-#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:1254
+#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:290
+#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:1256
#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:113
msgid "Authors"
msgstr ""
@@ -11096,13 +11162,13 @@ msgid "Modified"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:785
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1400
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1403
#: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/model.py:312
msgid "The lookup/search name is \"{0}\""
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:791
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1402
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1405
msgid "This book's UUID is \"{0}\""
msgstr ""
@@ -11135,11 +11201,11 @@ msgstr ""
msgid "Size"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1382
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1385
msgid "Marked for deletion"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1385
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1388
msgid "Double click to edit me
"
msgstr ""
@@ -11232,24 +11298,24 @@ msgid "LRF Viewer toolbar"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:131
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:514
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:516
msgid "Next Page"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:132
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:515
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:517
msgid "Previous Page"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:133
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:941
#: /home/kovid/work/calibre/src/calibre/gui2/store/web_store_dialog_ui.py:62
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:202
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:208
msgid "Back"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:134
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:203
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:209
msgid "Forward"
msgstr ""
@@ -11258,7 +11324,7 @@ msgid "Next match"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/lrf_renderer/main_ui.py:136
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:210
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:216
msgid "Open ebook"
msgstr ""
@@ -15096,12 +15162,12 @@ msgid "Options to customize the ebook viewer"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config.py:30
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:1050
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:1068
msgid "Remember last used window size"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config.py:32
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config.py:90
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config.py:93
msgid "Set the user CSS stylesheet. This can be used to customize the look of all books."
msgstr ""
@@ -15174,38 +15240,38 @@ msgstr ""
msgid "The standard font type"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config.py:130
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config.py:133
msgid "Theme name"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config.py:131
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config.py:134
msgid "Choose a name for this theme"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config.py:140
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config.py:143
#, python-format
msgid "Saved settings as the theme named: %s"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config.py:156
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config.py:159
#, python-format
msgid "Loaded settings from the theme %s"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config.py:163
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config.py:166
#, python-format
msgid "Deleted the theme named: %s"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config.py:219
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config.py:222
msgid "Choose text color"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config.py:239
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config.py:242
msgid "Still editing"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config.py:240
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/config.py:243
msgid "You are in the middle of editing a keyboard shortcut first complete that, by clicking outside the shortcut editing box."
msgstr ""
@@ -15405,44 +15471,44 @@ msgstr ""
msgid "No results found for:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:480
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:482
msgid "&Lookup in dictionary"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:485
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:487
msgid "View &image..."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:488
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:490
msgid "&Search for next occurrence"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:493
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:495
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:138
msgid "Go to..."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:505
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:507
msgid "Next Section"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:506
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:508
msgid "Previous Section"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:508
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:510
msgid "Document Start"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:509
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:511
msgid "Document End"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:511
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:513
msgid "Section Start"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:512
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/documentview.py:514
msgid "Section End"
msgstr ""
@@ -15548,200 +15614,208 @@ msgstr ""
msgid "Toggle full screen (%s)"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:279
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:282
msgid "Full screen mode"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:280
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:283
msgid "Right click to show controls"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:281
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:284
msgid "Tap in the left or right page margin to turn pages"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:282
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:285
msgid "Press Esc to quit"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:296
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:299
msgid "Show/hide controls"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:325
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:328
msgid "Print Preview"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:335
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:338
msgid "Clear list of recently opened books"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:446
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:449
#, python-format
msgid "Connecting to dict.org to lookup: %s…"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:580
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:583
msgid "No such location"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:581
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:584
msgid "The location pointed to by this item does not exist."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:632
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:635
msgid "Choose ebook"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:633
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:636
msgid "Ebooks"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:653
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:656
#, python-format
msgid ""
"Make font size %(which)s\n"
"Current magnification: %(mag).1f"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:655
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:658
msgid "larger"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:657
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:660
msgid "smaller"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:673
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:676
#, python-format
msgid "No matches found for: %s"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:722
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:725
msgid "Loading flow..."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:800
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:803
#, python-format
msgid "Laying out %s"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:852
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:870
#, python-format
msgid "Bookmark #%d"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:856
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:874
msgid "Add bookmark"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:857
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:875
msgid "Enter title for bookmark:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:868
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:886
msgid "Manage Bookmarks"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:910
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:928
msgid "Loading ebook..."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:922
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:940
msgid "Could not open ebook"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:1037
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:1055
msgid "Options to control the ebook viewer"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:1044
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:1062
msgid "If specified, viewer window will try to come to the front when started."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:1047
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:1065
msgid "If specified, viewer window will try to open full screen when started."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:1052
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:1070
msgid "Print javascript alert and console messages to the console"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:1054
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:1072
msgid "The position at which to open the specified book. The position is a location as displayed in the top left corner of the viewer."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:1061
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:1079
msgid ""
"%prog [options] file\n"
"\n"
"View an ebook.\n"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:198
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:204
msgid "E-book Viewer"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:199
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:205
msgid "Close dictionary"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:201
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:207
msgid "toolBar"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:204
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:210
msgid "Next page"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:205
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:211
msgid "Previous page"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:206
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:212
msgid "Font size larger"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:207
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:213
msgid "Font size smaller"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:211
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:217
msgid "Find next"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:212
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:218
msgid "Find next occurrence"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:216
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:222
msgid "Reference Mode"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:217
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:223
msgid "Bookmark"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:218
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:224
msgid "Toggle full screen"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:219
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:225
msgid "Print"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:220
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:226
msgid "Find previous"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:221
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:227
msgid "Find previous occurrence"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:223
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:229
msgid "Toggle Paged mode"
msgstr ""
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:230
+msgid "Load theme"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/viewer/main_ui.py:231
+msgid "Load a theme"
+msgstr ""
+
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/printing.py:66
msgid "Failed to render"
msgstr ""
@@ -16382,164 +16456,164 @@ msgstr ""
msgid "Symbols"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:273
+#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:275
msgid "No genres to catalog.\n"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:275
+#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:277
msgid "Check 'Excluded genres' regex in E-book options.\n"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:277
+#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:279
msgid "No books available to catalog"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:290
-#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:2313
+#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:292
+#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:2315
msgid "Titles"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:294
+#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:296
msgid "Genres"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:296
-#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:1615
+#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:298
+#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:1617
msgid "Recently Added"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:298
-#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:1814
+#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:300
+#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:1816
msgid "Recently Read"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:300
+#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:302
msgid "Descriptions"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:525
+#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:527
msgid "
Inconsistent Author Sort values for Author
"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:542
+#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:544
msgid "Warning: Inconsistent Author Sort values for Author '{!s}':\n"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:676
+#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:678
msgid "Sorting database"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:751
+#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:753
msgid "Sorting titles"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:763
+#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:765
msgid ""
"No books to catalog.\n"
"Check 'Excluded books' rules in E-book options.\n"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:765
+#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:767
msgid "No books available to include in catalog"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:1895
+#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:1897
msgid "Genres HTML"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:2293
+#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:2295
msgid "Titles HTML"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:2488
-#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:2490
#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:2492
+#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:2494
+#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:2496
msgid "by "
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:2629
+#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:2633
msgid "Descriptions HTML"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:2633
+#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:2637
msgid "Description HTML"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:2768
+#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:2772
msgid "NCX header"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:2843
+#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:2847
msgid "NCX for Descriptions"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:2964
+#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:2968
msgid "NCX for Series"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:3041
+#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:3045
#, python-format
msgid "Series beginning with %s"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:3043
+#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:3047
#, python-format
msgid "Series beginning with '%s'"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:3087
+#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:3091
msgid "NCX for Titles"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:3166
+#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:3170
#, python-format
msgid "Titles beginning with %s"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:3168
+#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:3172
#, python-format
msgid "Titles beginning with '%s'"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:3210
+#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:3214
msgid "NCX for Authors"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:3281
+#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:3285
#, python-format
msgid "Authors beginning with %s"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:3283
+#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:3287
#, python-format
msgid "Authors beginning with '%s'"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:3324
+#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:3328
msgid "NCX for Recently Added"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:3511
+#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:3515
msgid "NCX for Recently Read"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:3648
+#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:3652
msgid "NCX for Genres"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:3766
+#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:3770
msgid "Generating OPF"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:4138
+#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:4148
msgid "Thumbnails"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:4144
+#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:4154
msgid "Thumbnail"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:4641
+#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:4651
msgid "Saving NCX"
msgstr ""
diff --git a/src/calibre/utils/windows/winutil.c b/src/calibre/utils/windows/winutil.c
index 64c943ffa5..6b23f47c6d 100644
--- a/src/calibre/utils/windows/winutil.c
+++ b/src/calibre/utils/windows/winutil.c
@@ -95,6 +95,25 @@ struct tagDrives
WCHAR volume[BUFSIZE];
};
+static void console_out(LPCWSTR fmt, LPCWSTR arg) {
+ char *bfmt, *barg;
+ int sz;
+
+ sz = WideCharToMultiByte(CP_UTF8, 0, fmt, -1, NULL, 0, NULL, NULL);
+ bfmt = (char*)calloc(sz+1, sizeof(char));
+ WideCharToMultiByte(CP_UTF8, 0, fmt, -1, bfmt, sz, NULL, NULL);
+
+ sz = WideCharToMultiByte(CP_UTF8, 0, arg, -1, NULL, 0, NULL, NULL);
+ barg = (char*)calloc(sz+1, sizeof(char));
+ WideCharToMultiByte(CP_UTF8, 0, arg, -1, barg, sz, NULL, NULL);
+
+ if (bfmt != NULL && barg != NULL) {
+ printf(bfmt, barg);
+ fflush(stdout);
+ free(bfmt); free(barg);
+ }
+}
+
static PyObject *
winutil_folder_path(PyObject *self, PyObject *args) {
int res; DWORD dwFlags;
@@ -276,8 +295,10 @@ get_all_removable_disks(struct tagDrives *g_drives)
for(nLoopIndex = 0; nLoopIndex < MAX_DRIVES; nLoopIndex++)
{
- // if a drive is present,
- if(dwDriveMask & 1)
+ // if a drive is present (we ignore the A and B drives as they are
+ // always present (even if no actual floppy is present) and we dont
+ // care about floppies)
+ if(nLoopIndex > 1 && dwDriveMask & 1)
{
caDrive[0] = 'A' + nLoopIndex;
@@ -579,7 +600,7 @@ get_device_ancestors(HDEVINFO hDevInfo, DWORD index, PyObject *candidates, BOOL
// Get the device instance of parent.
if (CM_Get_Parent(&parent, pos, 0) != CR_SUCCESS) break;
if (CM_Get_Device_ID(parent, temp, BUFSIZE, 0) == CR_SUCCESS) {
- if (ddebug) wprintf(L"device id: %s\n", temp); fflush(stdout);
+ if (ddebug) console_out(L"device id: %s\n", temp);
devid = PyUnicode_FromWideChar(temp, wcslen(temp));
if (devid) {
PyList_Append(candidates, devid);
@@ -635,14 +656,14 @@ winutil_get_removable_drives(PyObject *self, PyObject *args) {
interfaceDetailData->DevicePath[length] = L'\\';
interfaceDetailData->DevicePath[length+1] = 0;
- if (ddebug) wprintf(L"Device path: %s\n", interfaceDetailData->DevicePath); fflush(stdout);
+ if (ddebug) console_out(L"Device path: %s\n", interfaceDetailData->DevicePath);
// On Vista+ DevicePath contains the information we need.
temp = PyUnicode_FromWideChar(interfaceDetailData->DevicePath, length);
if (temp == NULL) return PyErr_NoMemory();
PyList_Append(candidates, temp);
Py_DECREF(temp);
if(GetVolumeNameForVolumeMountPointW(interfaceDetailData->DevicePath, volume, BUFSIZE)) {
- if (ddebug) wprintf(L"Volume: %s\n", volume); fflush(stdout);
+ if (ddebug) console_out(L"Volume: %s\n", volume);
for(j = 0; j < MAX_DRIVES; j++) {
if(g_drives[j].letter != 0 && wcscmp(g_drives[j].volume, volume)==0) {
diff --git a/src/calibre/web/feeds/news.py b/src/calibre/web/feeds/news.py
index 153c6b1af0..f494618eaa 100644
--- a/src/calibre/web/feeds/news.py
+++ b/src/calibre/web/feeds/news.py
@@ -453,11 +453,11 @@ class BasicNewsRecipe(Recipe):
Override in a subclass to customize extraction of the :term:`URL` that points
to the content for each article. Return the
article URL. It is called with `article`, an object representing a parsed article
- from a feed. See `feedparser