From acfe6eb4a37f574aea8d9d0fe72e03cdb7b04ace Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20D=C5=82ugosz?= Date: Thu, 6 Dec 2012 22:59:42 +0100 Subject: [PATCH 1/8] update publio plugin --- src/calibre/gui2/store/stores/publio_plugin.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/calibre/gui2/store/stores/publio_plugin.py b/src/calibre/gui2/store/stores/publio_plugin.py index 868496366c..eb00f231ea 100644 --- a/src/calibre/gui2/store/stores/publio_plugin.py +++ b/src/calibre/gui2/store/stores/publio_plugin.py @@ -60,9 +60,9 @@ class PublioStore(BasicStoreConfig, StorePlugin): series = ''.join(data.xpath('./div[@class="desc"]/div[@class="detailShortList"]/div[last()]/a/@title')) title = title + ' (seria ' + series + ')' author = ', '.join(data.xpath('./div[@class="desc"]/div[@class="detailShortList"]/div[@class="row"][1]/a/@title')) - price = ''.join(data.xpath('.//div[@class="priceBoxContener "]/div/ins/text()')) + price = ''.join(data.xpath('.//div[@class="priceBox tk-museo-slab"]/ins/text()')) if not price: - price = ''.join(data.xpath('.//div[@class="priceBoxContener "]/div/text()')) + price = ''.join(data.xpath('.//div[@class="priceBox tk-museo-slab"]/text()')).strip() formats = ', '.join(data.xpath('.//div[@class="formats"]/a/img/@alt')) counter -= 1 From e1f9586a1bf1898c7c8541877aef15e7ddf5a534 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Fri, 7 Dec 2012 08:45:58 +0530 Subject: [PATCH 2/8] Update Heise Online --- recipes/heise_online.recipe | 21 ++++----------------- 1 file changed, 4 insertions(+), 17 deletions(-) diff --git a/recipes/heise_online.recipe b/recipes/heise_online.recipe index 4d82570698..29f63ce1ac 100644 --- a/recipes/heise_online.recipe +++ b/recipes/heise_online.recipe @@ -15,23 +15,12 @@ class AdvancedUserRecipe(BasicNewsRecipe): timeout = 5 no_stylesheets = True + keep_only_tags = [dict(name='div', attrs={'id':'mitte_news'}), + dict(name='h1', attrs={'class':'clear'}), + dict(name='div', attrs={'class':'meldung_wrapper'})] - remove_tags_after = dict(name ='p', attrs={'class':'editor'}) remove_tags = [dict(id='navi_top_container'), - dict(id='navi_bottom'), - dict(id='mitte_rechts'), - dict(id='navigation'), - dict(id='subnavi'), - dict(id='social_bookmarks'), - dict(id='permalink'), - dict(id='content_foren'), - dict(id='seiten_navi'), - dict(id='adbottom'), - dict(id='sitemap'), - dict(name='div', attrs={'id':'sitemap'}), - dict(name='ul', attrs={'class':'erste_zeile'}), - dict(name='ul', attrs={'class':'zweite_zeile'}), - dict(name='div', attrs={'class':'navi_top_container'})] + dict(name='p', attrs={'class':'size80'})] feeds = [ ('Newsticker', 'http://www.heise.de/newsticker/heise.rdf'), @@ -54,5 +43,3 @@ class AdvancedUserRecipe(BasicNewsRecipe): def print_version(self, url): return url + '?view=print' - - From 440584dd3b7696533c81c8f6a450f87110ae68d4 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Fri, 7 Dec 2012 08:56:27 +0530 Subject: [PATCH 3/8] Update Metro UK --- recipes/metro_uk.recipe | 91 +++++++++++++++++++++++++++-------------- 1 file changed, 61 insertions(+), 30 deletions(-) diff --git a/recipes/metro_uk.recipe b/recipes/metro_uk.recipe index fcceba4ce7..934fbab793 100644 --- a/recipes/metro_uk.recipe +++ b/recipes/metro_uk.recipe @@ -1,43 +1,74 @@ from calibre.web.feeds.news import BasicNewsRecipe +from calibre import strftime +import re +import datetime +import time + class AdvancedUserRecipe1306097511(BasicNewsRecipe): title = u'Metro UK' - description = 'Author Dave Asbury : News from The Metro - UK' + description = 'News as provided by The Metro -UK' #timefmt = '' __author__ = 'Dave Asbury' - #last update 9/9/12 + #last update 9/6/12 cover_url = 'http://profile.ak.fbcdn.net/hprofile-ak-snc4/276636_117118184990145_2132092232_n.jpg' - no_stylesheets = True oldest_article = 1 - max_articles_per_feed = 12 remove_empty_feeds = True remove_javascript = True - #auto_cleanup = True + auto_cleanup = True encoding = 'UTF-8' - cover_url ='http://profile.ak.fbcdn.net/hprofile-ak-snc4/157897_117118184990145_840702264_n.jpg' + language = 'en_GB' masthead_url = 'http://e-edition.metro.co.uk/images/metro_logo.gif' - extra_css = ''' - h1{font-family:Arial,Helvetica,sans-serif; font-weight:900;font-size:1.6em;} - h2{font-family:Arial,Helvetica,sans-serif; font-weight:normal;font-size:1.2em;} - p{font-family:Arial,Helvetica,sans-serif;font-size:1.0em;} - body{font-family:Helvetica,Arial,sans-serif;font-size:1.0em;} - ''' - keep_only_tags = [ - #dict(name='h1'), - #dict(name='h2'), - #dict(name='div', attrs={'class' : ['row','article','img-cnt figure','clrd']}) - #dict(name='h3'), - #dict(attrs={'class' : 'BText'}), - ] - remove_tags = [ - dict(name='div',attrs={'class' : 'art-fd fd-gr1-b clrd'}), - dict(name='span',attrs={'class' : 'share'}), - dict(name='li'), - dict(attrs={'class' : ['twitter-share-button','header-forms','hdr-lnks','close','art-rgt','fd-gr1-b clrd google-article','news m12 clrd clr-b p5t shareBtm','item-ds csl-3-img news','c-1of3 c-last','c-1of1','pd','item-ds csl-3-img sport']}), - dict(attrs={'id' : ['','sky-left','sky-right','ftr-nav','and-ftr','notificationList','logo','miniLogo','comments-news','metro_extras']}) - ] - remove_tags_before = dict(name='h1') - #remove_tags_after = dict(attrs={'id':['topic-buttons']}) - feeds = [ - (u'News', u'http://www.metro.co.uk/rss/news/'), (u'Money', u'http://www.metro.co.uk/rss/money/'), (u'Sport', u'http://www.metro.co.uk/rss/sport/'), (u'Film', u'http://www.metro.co.uk/rss/metrolife/film/'), (u'Music', u'http://www.metro.co.uk/rss/metrolife/music/'), (u'TV', u'http://www.metro.co.uk/rss/tv/'), (u'Showbiz', u'http://www.metro.co.uk/rss/showbiz/'), (u'Weird News', u'http://www.metro.co.uk/rss/weird/'), (u'Travel', u'http://www.metro.co.uk/rss/travel/'), (u'Lifestyle', u'http://www.metro.co.uk/rss/lifestyle/'), (u'Books', u'http://www.metro.co.uk/rss/lifestyle/books/'), (u'Food', u'http://www.metro.co.uk/rss/lifestyle/restaurants/')] + def parse_index(self): + articles = {} + key = None + ans = [] + feeds = [ ('UK', 'http://metro.co.uk/news/uk/'), + ('World', 'http://metro.co.uk/news/world/'), + ('Weird', 'http://metro.co.uk/news/weird/'), + ('Money', 'http://metro.co.uk/news/money/'), + ('Sport', 'http://metro.co.uk/sport/'), + ('Guilty Pleasures', 'http://metro.co.uk/guilty-pleasures/') + ] + for key, feed in feeds: + soup = self.index_to_soup(feed) + articles[key] = [] + ans.append(key) + + today = datetime.date.today() + today = time.mktime(today.timetuple())-60*60*24 + + for a in soup.findAll('a'): + for name, value in a.attrs: + if name == "class" and value=="post": + url = a['href'] + title = a['title'] + print title + description = '' + m = re.search('^.*uk/([^/]*)/([^/]*)/([^/]*)/', url) + skip = 1 + if len(m.groups()) == 3: + g = m.groups() + dt = datetime.datetime.strptime(''+g[0]+'-'+g[1]+'-'+g[2], '%Y-%m-%d') + pubdate = time.strftime('%a, %d %b', dt.timetuple()) + + dt = time.mktime(dt.timetuple()) + if dt >= today: + print pubdate + skip = 0 + else: + pubdate = strftime('%a, %d %b') + + summary = a.find(True, attrs={'class':'excerpt'}) + if summary: + description = self.tag_to_string(summary, use_alt=False) + + if skip == 0: + articles[key].append( + dict(title=title, url=url, date=pubdate, + description=description, + content='')) + #ans = self.sort_index_by(ans, {'The Front Page':-1, 'Dining In, Dining Out':1, 'Obituaries':2}) + ans = [(key, articles[key]) for key in ans if articles.has_key(key)] + return ans From fec34e600e070b9348cf30317d108a9523741ecb Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Fri, 7 Dec 2012 08:58:29 +0530 Subject: [PATCH 4/8] Add the 0x000a product id for the Kindle Fire to the MTP driver --- src/calibre/devices/mtp/unix/devices.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/calibre/devices/mtp/unix/devices.c b/src/calibre/devices/mtp/unix/devices.c index cfbce8c66c..7dcae154a7 100644 --- a/src/calibre/devices/mtp/unix/devices.c +++ b/src/calibre/devices/mtp/unix/devices.c @@ -13,6 +13,7 @@ const calibre_device_entry_t calibre_mtp_device_table[] = { // Amazon Kindle Fire HD , { "Amazon", 0x1949, "Fire HD", 0x0007, DEVICE_FLAGS_ANDROID_BUGS} + , { "Amazon", 0x1949, "Fire HD", 0x000a, DEVICE_FLAGS_ANDROID_BUGS} // Nexus 10 , { "Google", 0x18d1, "Nexus 10", 0x4ee2, DEVICE_FLAGS_ANDROID_BUGS} From ac99d5d075638eb7e02b32f1fd873e4ffea231a4 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Fri, 7 Dec 2012 09:25:04 +0530 Subject: [PATCH 5/8] version 0.9.9 --- Changelog.yaml | 44 ++++++++++++++++++++++++++++++++++++++++ src/calibre/constants.py | 2 +- 2 files changed, 45 insertions(+), 1 deletion(-) diff --git a/Changelog.yaml b/Changelog.yaml index 7dde319f65..8ce51eb380 100644 --- a/Changelog.yaml +++ b/Changelog.yaml @@ -19,6 +19,50 @@ # new recipes: # - title: +- version: 0.9.9 + date: 2012-12-07 + + new features: + - title: "64 bit build for windows" + type: major + description: "calibre now has a 64 bit version for windows, available at: http://calibre-ebook.com/download_windows64 The 64bit build is not limited to using only 3GB of RAM when converting large/complex documents. It may also be slightly faster for some tasks. You can have both the 32 bit and the 64 bit build installed at the same time, they will use the same libraries, plugins and settings." + + - title: "Content server: Make the identifiers in each books metadata clickable." + tickets: [1085726] + + bug fixes: + - title: "EPUB Input: Fix an infinite loop while trying to recover a damaged EPUB file." + tickets: [1086917] + + - title: "KF8 Input: Fix handling of links in files that link to the obsolete tags instead of tags with an id attribute." + tickets: [1086705] + + - title: "Conversion: Fix a bug in removal of invalid entries from the spine, where not all invalid entries were removed, causing conversion to fail." + tickets: [1086054] + + - title: "KF8 Input: Ignore invalid flow references in the KF8 document instead of erroring out on them." + tickets: [1085306] + + - title: "Fix command line output on linux systems with incorrect LANG/LC_TYPE env vars." + tickets: [1085103] + + - title: "KF8 Input: Fix page breaks specified using the data-AmznPageBreak attribute being ignored by calibre." + + - title: "PDF Output: Fix custom size field not accepting fractional numbers as sizes" + + - title: "Get Books: Update libre.de and publio for website changes" + + - title: "Wireless driver: Increase timeout interval, and when allocating a random port try 9090 first" + + improved recipes: + - New York Times + - Weblogs SL + - Zaman Gazetesi + - Aksiyon Dergisi + - Endgadget + - Metro UK + - Heise Online + - version: 0.9.8 date: 2012-11-30 diff --git a/src/calibre/constants.py b/src/calibre/constants.py index 164f37314a..164d2822a3 100644 --- a/src/calibre/constants.py +++ b/src/calibre/constants.py @@ -4,7 +4,7 @@ __license__ = 'GPL v3' __copyright__ = '2008, Kovid Goyal kovid@kovidgoyal.net' __docformat__ = 'restructuredtext en' __appname__ = u'calibre' -numeric_version = (0, 9, 8) +numeric_version = (0, 9, 9) __version__ = u'.'.join(map(unicode, numeric_version)) __author__ = u"Kovid Goyal " From db692f9f2146694264921ce6f1972730649444eb Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Fri, 7 Dec 2012 10:05:15 +0530 Subject: [PATCH 6/8] IGN:Tag release --- src/calibre/translations/calibre.pot | 445 ++++++++++++++------------- 1 file changed, 223 insertions(+), 222 deletions(-) diff --git a/src/calibre/translations/calibre.pot b/src/calibre/translations/calibre.pot index 75288c51f9..c91ccbf0ae 100644 --- a/src/calibre/translations/calibre.pot +++ b/src/calibre/translations/calibre.pot @@ -4,9 +4,9 @@ # msgid "" msgstr "" -"Project-Id-Version: calibre 0.9.8\n" -"POT-Creation-Date: 2012-11-30 08:37+IST\n" -"PO-Revision-Date: 2012-11-30 08:37+IST\n" +"Project-Id-Version: calibre 0.9.9\n" +"POT-Creation-Date: 2012-12-07 09:25+IST\n" +"PO-Revision-Date: 2012-12-07 09:25+IST\n" "Last-Translator: Automatically generated\n" "Language-Team: LANGUAGE\n" "MIME-Version: 1.0\n" @@ -168,7 +168,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/store/search/models.py:202 #: /home/kovid/work/calibre/src/calibre/gui2/store/stores/google_books_plugin.py:107 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/main.py:191 -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:885 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:924 #: /home/kovid/work/calibre/src/calibre/library/cli.py:244 #: /home/kovid/work/calibre/src/calibre/library/database.py:914 #: /home/kovid/work/calibre/src/calibre/library/database2.py:587 @@ -935,111 +935,111 @@ msgstr "" msgid "Communicate with WebOS tablets." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:61 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:63 msgid "

If you do not want calibre to recognize your Apple iDevice when it is connected to your computer, click Disable Apple Driver.

To transfer books to your iDevice, click Disable Apple Driver, then use the 'Connect to iTunes' method recommended in the Calibre + iDevices FAQ, using the Connect/Share|Connect to iTunes menu item.

Enabling the Apple driver for direct connection to iDevices is an unsupported advanced user mode.

" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:78 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:80 msgid "Disable Apple driver" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:82 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:84 msgid "Enable Apple driver" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:118 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:121 msgid "Use Series as Category in iTunes/iBooks" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:119 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:122 msgid "Enable to use the series name as the iTunes Genre, iBooks Category" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:121 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:124 msgid "Cache covers from iTunes/iBooks" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:123 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:126 msgid "Enable to cache and display covers from iTunes/iBooks" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:124 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:127 #, python-format msgid "\"Copy files to iTunes Media folder %s\" is enabled in iTunes Preferences|Advanced" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:126 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:129 msgid "

This setting should match your iTunes Preferences|Advanced setting.

Disabling will store copies of books transferred to iTunes in your calibre configuration directory.

Enabling indicates that iTunes is configured to store copies in your iTunes Media folder.

" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:190 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:196 msgid "Apple device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:192 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:198 msgid "Communicate with iTunes/iBooks." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:206 -msgid "Apple device detected, launching iTunes, please wait ..." +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:212 +msgid "Apple iDevice detected, launching iTunes, please wait ..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:208 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:214 msgid "Cannot copy books directly from iDevice. Drag from iTunes Library to desktop, then add to calibre's Library window." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:211 -msgid "Unsupported direct connect mode. See http://www.mobileread.com/forums/showthread.php?t=118559 for instructions on using 'Connect to iTunes'" +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:217 +msgid "*** Unsupported direct connect mode. See http://www.mobileread.com/forums/showthread.php?t=118559 for instructions on using 'Connect to iTunes' ***" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:215 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:221 msgid "

Unable to communicate with iTunes.

Refer to this forum post for more information.

" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:382 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:385 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:375 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:378 msgid "Updating device metadata listing..." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:462 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:502 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:1117 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:1163 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:3262 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:3304 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:456 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:497 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:1143 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:1190 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:3293 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:3335 #, python-format msgid "%(num)d of %(tot)d" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:510 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:1168 -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:3311 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:505 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:1195 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:3342 #: /home/kovid/work/calibre/src/calibre/gui2/ebook_download.py:110 msgid "finished" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:702 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:697 msgid "" "Some books not found in iTunes database.\n" "Delete using the iBooks app.\n" "Click 'Show Details' for a list." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:1080 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:1105 msgid "" "Some cover art could not be converted.\n" "Click 'Show Details' for a list." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2785 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2817 #: /home/kovid/work/calibre/src/calibre/devices/nook/driver.py:106 #: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:448 #: /home/kovid/work/calibre/src/calibre/devices/prs505/sony_cache.py:471 #: /home/kovid/work/calibre/src/calibre/devices/prst1/driver.py:773 #: /home/kovid/work/calibre/src/calibre/devices/prst1/driver.py:792 -#: /home/kovid/work/calibre/src/calibre/devices/smart_device_app/driver.py:392 -#: /home/kovid/work/calibre/src/calibre/devices/smart_device_app/driver.py:398 -#: /home/kovid/work/calibre/src/calibre/devices/smart_device_app/driver.py:429 +#: /home/kovid/work/calibre/src/calibre/devices/smart_device_app/driver.py:394 +#: /home/kovid/work/calibre/src/calibre/devices/smart_device_app/driver.py:400 +#: /home/kovid/work/calibre/src/calibre/devices/smart_device_app/driver.py:431 #: /home/kovid/work/calibre/src/calibre/devices/utils.py:80 #: /home/kovid/work/calibre/src/calibre/devices/utils.py:84 #: /home/kovid/work/calibre/src/calibre/devices/utils.py:116 @@ -1054,13 +1054,13 @@ msgstr "" msgid "News" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2786 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:2818 #: /home/kovid/work/calibre/src/calibre/library/database2.py:3342 #: /home/kovid/work/calibre/src/calibre/library/database2.py:3360 msgid "Catalog" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:3154 +#: /home/kovid/work/calibre/src/calibre/devices/apple/driver.py:3185 msgid "Communicate with iTunes." msgstr "" @@ -1118,8 +1118,8 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/bambook/driver.py:268 #: /home/kovid/work/calibre/src/calibre/devices/bambook/driver.py:324 #: /home/kovid/work/calibre/src/calibre/devices/mtp/driver.py:367 -#: /home/kovid/work/calibre/src/calibre/devices/smart_device_app/driver.py:1095 #: /home/kovid/work/calibre/src/calibre/devices/smart_device_app/driver.py:1097 +#: /home/kovid/work/calibre/src/calibre/devices/smart_device_app/driver.py:1099 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:277 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:279 msgid "Transferring books to device..." @@ -1130,8 +1130,8 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:491 #: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:525 #: /home/kovid/work/calibre/src/calibre/devices/mtp/driver.py:404 -#: /home/kovid/work/calibre/src/calibre/devices/smart_device_app/driver.py:1108 -#: /home/kovid/work/calibre/src/calibre/devices/smart_device_app/driver.py:1119 +#: /home/kovid/work/calibre/src/calibre/devices/smart_device_app/driver.py:1110 +#: /home/kovid/work/calibre/src/calibre/devices/smart_device_app/driver.py:1121 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:301 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:332 msgid "Adding books to device metadata listing..." @@ -1153,8 +1153,8 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/bambook/driver.py:374 #: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:479 #: /home/kovid/work/calibre/src/calibre/devices/kobo/driver.py:486 -#: /home/kovid/work/calibre/src/calibre/devices/smart_device_app/driver.py:1157 -#: /home/kovid/work/calibre/src/calibre/devices/smart_device_app/driver.py:1163 +#: /home/kovid/work/calibre/src/calibre/devices/smart_device_app/driver.py:1159 +#: /home/kovid/work/calibre/src/calibre/devices/smart_device_app/driver.py:1165 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:366 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:371 msgid "Removing books from device metadata listing..." @@ -1659,7 +1659,7 @@ msgid "Communicate with MTP devices" msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/mtp/driver.py:143 -#: /home/kovid/work/calibre/src/calibre/devices/smart_device_app/driver.py:912 +#: /home/kovid/work/calibre/src/calibre/devices/smart_device_app/driver.py:914 #: /home/kovid/work/calibre/src/calibre/devices/usbms/driver.py:95 msgid "Get device information..." msgstr "" @@ -1790,12 +1790,12 @@ msgid "Comments have been removed as the SONY reader chokes on them" msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:66 -#: /home/kovid/work/calibre/src/calibre/devices/smart_device_app/driver.py:262 +#: /home/kovid/work/calibre/src/calibre/devices/smart_device_app/driver.py:264 msgid "All by title" msgstr "" #: /home/kovid/work/calibre/src/calibre/devices/prs505/driver.py:67 -#: /home/kovid/work/calibre/src/calibre/devices/smart_device_app/driver.py:263 +#: /home/kovid/work/calibre/src/calibre/devices/smart_device_app/driver.py:265 msgid "All by author" msgstr "" @@ -1873,99 +1873,99 @@ msgstr "" msgid "Set this option if you want the author on the Sony to appear the same way the T1 sets it. This means it will only show the first author for books with multiple authors. Leave this disabled if you use Metadata Plugboards." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/smart_device_app/driver.py:174 +#: /home/kovid/work/calibre/src/calibre/devices/smart_device_app/driver.py:176 msgid "Wireless Device" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/smart_device_app/driver.py:178 +#: /home/kovid/work/calibre/src/calibre/devices/smart_device_app/driver.py:180 msgid "Communicate with Smart Device apps" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/smart_device_app/driver.py:264 +#: /home/kovid/work/calibre/src/calibre/devices/smart_device_app/driver.py:266 msgid "All by something" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/smart_device_app/driver.py:267 +#: /home/kovid/work/calibre/src/calibre/devices/smart_device_app/driver.py:269 msgid "Enable connections at startup" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/smart_device_app/driver.py:268 +#: /home/kovid/work/calibre/src/calibre/devices/smart_device_app/driver.py:270 msgid "Check this box to allow connections when calibre starts" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/smart_device_app/driver.py:270 +#: /home/kovid/work/calibre/src/calibre/devices/smart_device_app/driver.py:272 msgid "Security password" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/smart_device_app/driver.py:271 +#: /home/kovid/work/calibre/src/calibre/devices/smart_device_app/driver.py:273 msgid "Enter a password that the device app must use to connect to calibre" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/smart_device_app/driver.py:273 +#: /home/kovid/work/calibre/src/calibre/devices/smart_device_app/driver.py:275 msgid "Use fixed network port" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/smart_device_app/driver.py:274 +#: /home/kovid/work/calibre/src/calibre/devices/smart_device_app/driver.py:276 msgid "If checked, use the port number in the \"Port\" box, otherwise the driver will pick a random port" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/smart_device_app/driver.py:276 +#: /home/kovid/work/calibre/src/calibre/devices/smart_device_app/driver.py:278 msgid "Port number: " msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/smart_device_app/driver.py:277 +#: /home/kovid/work/calibre/src/calibre/devices/smart_device_app/driver.py:279 msgid "Enter the port number the driver is to use if the \"fixed port\" box is checked" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/smart_device_app/driver.py:278 +#: /home/kovid/work/calibre/src/calibre/devices/smart_device_app/driver.py:280 msgid "Print extra debug information" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/smart_device_app/driver.py:279 +#: /home/kovid/work/calibre/src/calibre/devices/smart_device_app/driver.py:281 msgid "Check this box if requested when reporting problems" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/smart_device_app/driver.py:281 +#: /home/kovid/work/calibre/src/calibre/devices/smart_device_app/driver.py:283 msgid "Comma separated list of metadata fields to turn into collections on the device." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/smart_device_app/driver.py:283 +#: /home/kovid/work/calibre/src/calibre/devices/smart_device_app/driver.py:285 msgid "Possibilities include: series, tags, authors, etc" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/smart_device_app/driver.py:291 +#: /home/kovid/work/calibre/src/calibre/devices/smart_device_app/driver.py:293 msgid "Enable the no-activity timeout" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/smart_device_app/driver.py:292 +#: /home/kovid/work/calibre/src/calibre/devices/smart_device_app/driver.py:294 #, python-format msgid "If this box is checked, calibre will automatically disconnect if a connected device does nothing for %d minutes. Unchecking this box disables this timeout, so calibre will never automatically disconnect." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/smart_device_app/driver.py:296 +#: /home/kovid/work/calibre/src/calibre/devices/smart_device_app/driver.py:298 msgid "Use this IP address" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/smart_device_app/driver.py:297 +#: /home/kovid/work/calibre/src/calibre/devices/smart_device_app/driver.py:299 msgid "Use this option if you want to force the driver to listen on a particular IP address. The driver will listen only on the entered address, and this address will be the one advertized over mDNS (bonjour)." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/smart_device_app/driver.py:766 +#: /home/kovid/work/calibre/src/calibre/devices/smart_device_app/driver.py:768 #, python-format msgid "Too many connection attempts from %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/smart_device_app/driver.py:1271 +#: /home/kovid/work/calibre/src/calibre/devices/smart_device_app/driver.py:1273 #, python-format msgid "Invalid port in options: %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/smart_device_app/driver.py:1279 +#: /home/kovid/work/calibre/src/calibre/devices/smart_device_app/driver.py:1281 #, python-format msgid "Failed to connect to port %d. Try a different value." msgstr "" -#: /home/kovid/work/calibre/src/calibre/devices/smart_device_app/driver.py:1291 +#: /home/kovid/work/calibre/src/calibre/devices/smart_device_app/driver.py:1293 msgid "Failed to allocate a random port" msgstr "" @@ -3474,10 +3474,10 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:66 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:70 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources.py:161 -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:943 -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:1188 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:982 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:1228 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:201 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:779 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:780 msgid "Tags" msgstr "" @@ -3489,8 +3489,8 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:67 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:70 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources.py:163 -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:303 -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:2266 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:307 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:2306 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:140 msgid "Series" msgid_plural "Series" @@ -3835,7 +3835,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:71 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/metadata_sources.py:160 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:176 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:777 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:778 msgid "Rating" msgstr "" @@ -4369,7 +4369,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/choose_library.py:160 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/toolbar.py:58 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:171 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:172 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:129 #, python-format msgid "%d books" @@ -5043,7 +5043,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/help.py:16 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/tweaks_ui.py:118 -#: /usr/src/qt-everywhere-opensource-src-4.8.2/src/gui/widgets/qdialogbuttonbox.cpp:679 +#: /usr/src/qt-everywhere-opensource-src-4.8.4/src/gui/widgets/qdialogbuttonbox.cpp:679 msgid "Help" msgstr "" @@ -5195,7 +5195,7 @@ msgid "Click the show details button to see which ones." msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/actions/show_book_details.py:16 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:784 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:785 msgid "Show book details" msgstr "" @@ -5371,7 +5371,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comments_dialog.py:25 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/template_dialog.py:248 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/main.py:234 -#: /usr/src/qt-everywhere-opensource-src-4.8.2/src/gui/widgets/qdialogbuttonbox.cpp:667 +#: /usr/src/qt-everywhere-opensource-src-4.8.4/src/gui/widgets/qdialogbuttonbox.cpp:667 msgid "&Cancel" msgstr "" @@ -5757,6 +5757,7 @@ msgid "Click to open" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/book_details.py:180 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:834 msgid "Ids" msgstr "" @@ -6021,8 +6022,8 @@ msgid "Delete Rule" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/catalog/catalog_epub_mobi.py:850 -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:609 -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:4725 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:613 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:4770 msgid "False" msgstr "" @@ -6035,7 +6036,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/check_library.py:342 #: /home/kovid/work/calibre/src/calibre/gui2/store/config/chooser/models.py:21 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager.py:90 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:257 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:258 msgid "Name" msgstr "" @@ -7458,7 +7459,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/convert/search_and_replace_ui.py:157 #: /home/kovid/work/calibre/src/calibre/gui2/preferences/search_ui.py:188 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:439 -#: /usr/src/qt-everywhere-opensource-src-4.8.2/src/gui/widgets/qdialogbuttonbox.cpp:661 +#: /usr/src/qt-everywhere-opensource-src-4.8.4/src/gui/widgets/qdialogbuttonbox.cpp:661 msgid "&Save" msgstr "" @@ -8668,7 +8669,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comments_dialog.py:24 #: /home/kovid/work/calibre/src/calibre/gui2/dialogs/template_dialog.py:247 -#: /usr/src/qt-everywhere-opensource-src-4.8.2/src/gui/widgets/qdialogbuttonbox.cpp:658 +#: /usr/src/qt-everywhere-opensource-src-4.8.4/src/gui/widgets/qdialogbuttonbox.cpp:658 msgid "&OK" msgstr "" @@ -9813,8 +9814,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:299 -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:1379 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:303 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:1419 #: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:113 msgid "Authors" msgstr "" @@ -9850,7 +9851,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/store/config/chooser/chooser_widget_ui.py:80 #: /home/kovid/work/calibre/src/calibre/gui2/store/stores/mobileread/store_dialog_ui.py:76 #: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:652 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:281 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:282 msgid "Search" msgstr "" @@ -12026,14 +12027,14 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:63 #: /home/kovid/work/calibre/src/calibre/gui2/metadata/single_download.py:936 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:107 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:108 #: /home/kovid/work/calibre/src/calibre/web/feeds/templates.py:219 #: /home/kovid/work/calibre/src/calibre/web/feeds/templates.py:410 msgid "Next" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:67 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:106 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:107 #: /home/kovid/work/calibre/src/calibre/web/feeds/templates.py:229 #: /home/kovid/work/calibre/src/calibre/web/feeds/templates.py:393 msgid "Previous" @@ -14858,7 +14859,7 @@ msgid "Books:" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/store/search/search_ui.py:186 -#: /usr/src/qt-everywhere-opensource-src-4.8.2/src/gui/widgets/qdialogbuttonbox.cpp:670 +#: /usr/src/qt-everywhere-opensource-src-4.8.4/src/gui/widgets/qdialogbuttonbox.cpp:670 msgid "&Close" msgstr "" @@ -14902,7 +14903,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/store/stores/mobileread/store_dialog_ui.py:79 #: /home/kovid/work/calibre/src/calibre/gui2/store/web_store_dialog_ui.py:63 -#: /usr/src/qt-everywhere-opensource-src-4.8.2/src/gui/widgets/qdialogbuttonbox.cpp:670 +#: /usr/src/qt-everywhere-opensource-src-4.8.4/src/gui/widgets/qdialogbuttonbox.cpp:670 msgid "Close" msgstr "" @@ -15084,7 +15085,7 @@ msgid "Alter Tag Browser" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/tag_browser/ui.py:397 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:276 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:277 msgid "Sort by" msgstr "" @@ -15367,51 +15368,51 @@ msgstr "" msgid "will keep running in the system tray. To close it, choose Quit in the context menu of the system tray." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/update.py:79 +#: /home/kovid/work/calibre/src/calibre/gui2/update.py:86 #, python-format msgid "New version %(ver)s of %(app)s is available for download. See the new features." msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/update.py:85 +#: /home/kovid/work/calibre/src/calibre/gui2/update.py:92 msgid "Update available!" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/update.py:90 +#: /home/kovid/work/calibre/src/calibre/gui2/update.py:97 msgid "Show this notification for future updates" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/update.py:95 +#: /home/kovid/work/calibre/src/calibre/gui2/update.py:102 msgid "&Get update" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/update.py:99 +#: /home/kovid/work/calibre/src/calibre/gui2/update.py:106 msgid "Update &plugins" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/update.py:158 +#: /home/kovid/work/calibre/src/calibre/gui2/update.py:162 #, python-format msgid " (%d plugin updates)" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/update.py:161 +#: /home/kovid/work/calibre/src/calibre/gui2/update.py:165 msgid "Update found" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/update.py:164 +#: /home/kovid/work/calibre/src/calibre/gui2/update.py:168 msgid "updated plugins" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/update.py:192 -#: /home/kovid/work/calibre/src/calibre/gui2/update.py:197 +#: /home/kovid/work/calibre/src/calibre/gui2/update.py:196 +#: /home/kovid/work/calibre/src/calibre/gui2/update.py:201 msgid "Plugin Updates" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/update.py:195 +#: /home/kovid/work/calibre/src/calibre/gui2/update.py:199 #, python-format msgid "There are %d plugin updates available" msgstr "" -#: /home/kovid/work/calibre/src/calibre/gui2/update.py:199 +#: /home/kovid/work/calibre/src/calibre/gui2/update.py:203 msgid "Install and configure user plugins" msgstr "" @@ -15454,7 +15455,7 @@ msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:65 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:413 #: /home/kovid/work/calibre/src/calibre/gui2/viewer/config_ui.py:417 -#: /usr/src/qt-everywhere-opensource-src-4.8.2/src/gui/widgets/qdialogbuttonbox.cpp:676 +#: /usr/src/qt-everywhere-opensource-src-4.8.4/src/gui/widgets/qdialogbuttonbox.cpp:676 msgid "Reset" msgstr "" @@ -16276,7 +16277,7 @@ msgid "< &Back" msgstr "" #: /home/kovid/work/calibre/src/calibre/gui2/wizard/__init__.py:856 -#: /usr/src/qt-everywhere-opensource-src-4.8.2/src/gui/widgets/qdialogbuttonbox.cpp:667 +#: /usr/src/qt-everywhere-opensource-src-4.8.4/src/gui/widgets/qdialogbuttonbox.cpp:667 msgid "Cancel" msgstr "" @@ -16665,7 +16666,7 @@ msgid "" "Applies to: BIBTEX output format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalogs/csv_xml.py:32 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/csv_xml.py:33 #, python-format msgid "" "The fields to output when cataloging books in the database. Should be a comma-separated list of fields.\n" @@ -16676,7 +16677,7 @@ msgid "" "Applies to: CSV, XML output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalogs/csv_xml.py:45 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/csv_xml.py:46 #, python-format msgid "" "Output field to sort on.\n" @@ -16685,7 +16686,7 @@ msgid "" "Applies to: CSV, XML output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi.py:42 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi.py:43 #, python-format msgid "" "Title of generated catalog used as title in metadata.\n" @@ -16693,7 +16694,7 @@ msgid "" "Applies to: AZW3, ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi.py:49 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi.py:50 #, python-format msgid "" "Create cross-references in Authors section for books with multiple authors.\n" @@ -16701,7 +16702,7 @@ msgid "" "Applies to: AZW3, ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi.py:56 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi.py:57 #, python-format msgid "" "Save the output from different stages of the conversion pipeline to the specified directory. Useful if you are unsure at which stage of the conversion process a bug is occurring.\n" @@ -16709,7 +16710,7 @@ msgid "" "Applies to: AZW3, ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi.py:66 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi.py:67 #, python-format msgid "" "Regex describing tags to exclude as genres.\n" @@ -16717,7 +16718,7 @@ msgid "" "Applies to: AZW3, ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi.py:73 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi.py:74 msgid "" "Specifies the rules used to exclude books from the generated catalog.\n" "The model for an exclusion rule is either\n" @@ -16730,7 +16731,7 @@ msgid "" "Default: \n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi.py:86 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi.py:87 #, python-format msgid "" "Include 'Authors' section in catalog.\n" @@ -16738,7 +16739,7 @@ msgid "" "Applies to: AZW3, ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi.py:93 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi.py:94 #, python-format msgid "" "Include 'Descriptions' section in catalog.\n" @@ -16746,7 +16747,7 @@ msgid "" "Applies to: AZW3, ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi.py:100 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi.py:101 #, python-format msgid "" "Include 'Genres' section in catalog.\n" @@ -16754,7 +16755,7 @@ msgid "" "Applies to: AZW3, ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi.py:107 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi.py:108 #, python-format msgid "" "Include 'Titles' section in catalog.\n" @@ -16762,7 +16763,7 @@ msgid "" "Applies to: AZW3, ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi.py:114 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi.py:115 #, python-format msgid "" "Include 'Series' section in catalog.\n" @@ -16770,7 +16771,7 @@ msgid "" "Applies to: AZW3, ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi.py:121 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi.py:122 #, python-format msgid "" "Include 'Recently Added' section in catalog.\n" @@ -16778,7 +16779,7 @@ msgid "" "Applies to: AZW3, ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi.py:128 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi.py:129 #, python-format msgid "" "Source field for Genres section.\n" @@ -16786,7 +16787,7 @@ msgid "" "Applies to: AZW3, ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi.py:135 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi.py:136 #, python-format msgid "" "Custom field containing note text to insert in Description header.\n" @@ -16794,7 +16795,7 @@ msgid "" "Applies to: AZW3, ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi.py:142 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi.py:143 #, python-format msgid "" "#:[before|after]:[True|False] specifying:\n" @@ -16805,7 +16806,7 @@ msgid "" "Applies to AZW3, ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi.py:152 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi.py:153 #, python-format msgid "" "Specifies the output profile. In some cases, an output profile is required to optimize the catalog for the device. For example, 'kindle' or 'kindle_dx' creates a structured Table of Contents with Sections and Articles.\n" @@ -16813,7 +16814,7 @@ msgid "" "Applies to: AZW3, ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi.py:159 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi.py:160 msgid "" "Specifies the rules used to include prefixes indicating read books, wishlist items and other user-specified prefixes.\n" "The model for a prefix rule is ('','','','').\n" @@ -16821,7 +16822,7 @@ msgid "" "Default:\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi.py:168 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi.py:169 #, python-format msgid "" "Replace existing cover when generating the catalog.\n" @@ -16829,7 +16830,7 @@ msgid "" "Applies to: AZW3, ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi.py:175 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi.py:176 #, python-format msgid "" "Size hint (in inches) for book covers in catalog.\n" @@ -16838,174 +16839,174 @@ msgid "" "Applies to AZW3, ePub, MOBI output formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi.py:286 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi.py:287 msgid "" "\n" "*** Adding 'By Authors' Section required for MOBI output ***" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:56 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:57 msgid "Symbols" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:284 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:288 msgid "No genres to catalog.\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:286 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:290 msgid "Check 'Excluded genres' regex in E-book options.\n" msgstr "" -#: /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:292 msgid "No books available to catalog" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:301 -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:2437 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:305 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:2477 msgid "Titles" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:305 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:309 msgid "Genres" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:307 -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:1740 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:311 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:1780 msgid "Recently Added" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:309 -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:1939 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:313 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:1979 msgid "Recently Read" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:311 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:315 msgid "Descriptions" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:538 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:542 msgid "

Inconsistent Author Sort values for Author
" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:555 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:559 msgid "Warning: Inconsistent Author Sort values for Author '{!s}':\n" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:727 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:744 msgid "Sorting database" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:808 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:846 msgid "Sorting titles" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:820 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:858 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:822 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:860 msgid "No books available to include in catalog" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:2020 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:2060 msgid "Genres HTML" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:2417 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:2457 msgid "Titles HTML" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:2614 -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:2616 -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:2618 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:2654 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:2656 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:2658 msgid "by " msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:2755 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:2795 msgid "Descriptions HTML" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:2759 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:2799 msgid "Description HTML" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:2892 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:2932 msgid "NCX header" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:2971 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:3009 msgid "NCX for Descriptions" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:3098 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:3136 msgid "NCX for Series" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:3180 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:3221 #, python-format msgid "Series beginning with %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:3182 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:3223 #, python-format msgid "Series beginning with '%s'" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:3226 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:3267 msgid "NCX for Titles" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:3310 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:3354 #, python-format msgid "Titles beginning with %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:3312 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:3356 #, python-format msgid "Titles beginning with '%s'" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:3354 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:3398 msgid "NCX for Authors" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:3430 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:3477 #, python-format msgid "Authors beginning with %s" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:3432 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:3479 #, python-format msgid "Authors beginning with '%s'" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:3473 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:3520 msgid "NCX for Recently Added" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:3666 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:3713 msgid "NCX for Recently Read" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:3808 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:3855 msgid "NCX for Genres" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:3931 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:3980 msgid "Generating OPF" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:4311 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:4357 msgid "Thumbnails" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:4317 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:4363 msgid "Thumbnail" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:4852 +#: /home/kovid/work/calibre/src/calibre/library/catalogs/epub_mobi_builder.py:4897 msgid "Saving NCX" msgstr "" @@ -17831,127 +17832,127 @@ msgid "Prefix to prepend to all URLs. Useful for reverseproxying to this server msgstr "" #: /home/kovid/work/calibre/src/calibre/library/server/ajax.py:317 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:342 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:626 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:343 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:627 msgid "All books" msgstr "" #: /home/kovid/work/calibre/src/calibre/library/server/ajax.py:318 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:341 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:625 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:342 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:626 #: /home/kovid/work/calibre/src/calibre/library/server/opds.py:584 msgid "Newest" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:64 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:498 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:65 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:499 msgid "Loading, please wait" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:90 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:111 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:91 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:112 msgid "Go to" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:106 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:107 msgid "First" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:106 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:107 msgid "Last" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:109 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:110 #, python-format msgid "Browsing %d books" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:126 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:256 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:127 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:257 msgid "Average rating" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:127 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:128 #, python-format msgid "%(prefix)s: %(rating).1f stars" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:164 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:165 #, python-format msgid "%d stars" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:257 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:258 msgid "Popularity" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:279 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:280 msgid "library" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:280 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:281 msgid "home" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:387 -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:452 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:388 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:453 msgid "Browse books by" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:392 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:393 msgid "Choose a category to browse by:" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:523 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:524 msgid "Browsing by" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:524 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:525 msgid "Up" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:661 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:662 msgid "in" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:664 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:665 msgid "Books in" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:758 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:759 msgid "Other formats" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:765 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:766 #, python-format msgid "Read %(title)s in the %(fmt)s format" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:770 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:771 msgid "Get" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:783 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:784 msgid "Details" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:785 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:786 msgid "Permalink" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:786 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:787 msgid "A permanent link to this book" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:798 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:799 msgid "This book has been deleted" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:886 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:897 msgid "in search" msgstr "" -#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:888 +#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:899 msgid "Matching books" msgstr "" @@ -18987,67 +18988,67 @@ msgstr "" msgid "Do not download CSS stylesheets." msgstr "" -#: /usr/src/qt-everywhere-opensource-src-4.8.2/src/gui/widgets/qdialogbuttonbox.cpp:658 +#: /usr/src/qt-everywhere-opensource-src-4.8.4/src/gui/widgets/qdialogbuttonbox.cpp:658 msgid "OK" msgstr "" -#: /usr/src/qt-everywhere-opensource-src-4.8.2/src/gui/widgets/qdialogbuttonbox.cpp:661 +#: /usr/src/qt-everywhere-opensource-src-4.8.4/src/gui/widgets/qdialogbuttonbox.cpp:661 msgid "Save" msgstr "" -#: /usr/src/qt-everywhere-opensource-src-4.8.2/src/gui/widgets/qdialogbuttonbox.cpp:664 +#: /usr/src/qt-everywhere-opensource-src-4.8.4/src/gui/widgets/qdialogbuttonbox.cpp:664 msgid "Open" msgstr "" -#: /usr/src/qt-everywhere-opensource-src-4.8.2/src/gui/widgets/qdialogbuttonbox.cpp:673 +#: /usr/src/qt-everywhere-opensource-src-4.8.4/src/gui/widgets/qdialogbuttonbox.cpp:673 msgid "Apply" msgstr "" -#: /usr/src/qt-everywhere-opensource-src-4.8.2/src/gui/widgets/qdialogbuttonbox.cpp:683 +#: /usr/src/qt-everywhere-opensource-src-4.8.4/src/gui/widgets/qdialogbuttonbox.cpp:683 msgid "Don't Save" msgstr "" -#: /usr/src/qt-everywhere-opensource-src-4.8.2/src/gui/widgets/qdialogbuttonbox.cpp:685 +#: /usr/src/qt-everywhere-opensource-src-4.8.4/src/gui/widgets/qdialogbuttonbox.cpp:685 msgid "Close without Saving" msgstr "" -#: /usr/src/qt-everywhere-opensource-src-4.8.2/src/gui/widgets/qdialogbuttonbox.cpp:687 +#: /usr/src/qt-everywhere-opensource-src-4.8.4/src/gui/widgets/qdialogbuttonbox.cpp:687 msgid "Discard" msgstr "" -#: /usr/src/qt-everywhere-opensource-src-4.8.2/src/gui/widgets/qdialogbuttonbox.cpp:690 +#: /usr/src/qt-everywhere-opensource-src-4.8.4/src/gui/widgets/qdialogbuttonbox.cpp:690 msgid "&Yes" msgstr "" -#: /usr/src/qt-everywhere-opensource-src-4.8.2/src/gui/widgets/qdialogbuttonbox.cpp:693 +#: /usr/src/qt-everywhere-opensource-src-4.8.4/src/gui/widgets/qdialogbuttonbox.cpp:693 msgid "Yes to &All" msgstr "" -#: /usr/src/qt-everywhere-opensource-src-4.8.2/src/gui/widgets/qdialogbuttonbox.cpp:696 +#: /usr/src/qt-everywhere-opensource-src-4.8.4/src/gui/widgets/qdialogbuttonbox.cpp:696 msgid "&No" msgstr "" -#: /usr/src/qt-everywhere-opensource-src-4.8.2/src/gui/widgets/qdialogbuttonbox.cpp:699 +#: /usr/src/qt-everywhere-opensource-src-4.8.4/src/gui/widgets/qdialogbuttonbox.cpp:699 msgid "N&o to All" msgstr "" -#: /usr/src/qt-everywhere-opensource-src-4.8.2/src/gui/widgets/qdialogbuttonbox.cpp:702 +#: /usr/src/qt-everywhere-opensource-src-4.8.4/src/gui/widgets/qdialogbuttonbox.cpp:702 msgid "Save All" msgstr "" -#: /usr/src/qt-everywhere-opensource-src-4.8.2/src/gui/widgets/qdialogbuttonbox.cpp:705 +#: /usr/src/qt-everywhere-opensource-src-4.8.4/src/gui/widgets/qdialogbuttonbox.cpp:705 msgid "Abort" msgstr "" -#: /usr/src/qt-everywhere-opensource-src-4.8.2/src/gui/widgets/qdialogbuttonbox.cpp:708 +#: /usr/src/qt-everywhere-opensource-src-4.8.4/src/gui/widgets/qdialogbuttonbox.cpp:708 msgid "Retry" msgstr "" -#: /usr/src/qt-everywhere-opensource-src-4.8.2/src/gui/widgets/qdialogbuttonbox.cpp:711 +#: /usr/src/qt-everywhere-opensource-src-4.8.4/src/gui/widgets/qdialogbuttonbox.cpp:711 msgid "Ignore" msgstr "" -#: /usr/src/qt-everywhere-opensource-src-4.8.2/src/gui/widgets/qdialogbuttonbox.cpp:714 +#: /usr/src/qt-everywhere-opensource-src-4.8.4/src/gui/widgets/qdialogbuttonbox.cpp:714 msgid "Restore Defaults" msgstr "" From 7580d9c1c082c4d0f85cfeaf1614aa3c1f7e8914 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Fri, 7 Dec 2012 15:32:19 +0530 Subject: [PATCH 7/8] Fix Harpers --- recipes/harpers.recipe | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/recipes/harpers.recipe b/recipes/harpers.recipe index a4576792d0..35210a5078 100644 --- a/recipes/harpers.recipe +++ b/recipes/harpers.recipe @@ -16,6 +16,7 @@ class Harpers(BasicNewsRecipe): max_articles_per_feed = 100 no_stylesheets = True use_embedded_content = False + auto_cleanup = True conversion_options = { 'comment' : description @@ -31,14 +32,14 @@ class Harpers(BasicNewsRecipe): .caption{font-family:Verdana,sans-serif;font-size:x-small;color:#666666;} ''' - keep_only_tags = [ dict(name='div', attrs={'id':'cached'}) ] - remove_tags = [ - dict(name='table', attrs={'class':['rcnt','rcnt topline']}) - ,dict(name=['link','object','embed','meta','base']) - ] - remove_attributes = ['width','height'] + #keep_only_tags = [ dict(name='div', attrs={'id':'cached'}) ] + #remove_tags = [ + #dict(name='table', attrs={'class':['rcnt','rcnt topline']}) + #,dict(name=['link','object','embed','meta','base']) + #] + #remove_attributes = ['width','height'] - feeds = [(u"Harper's Magazine", u'http://www.harpers.org/rss/frontpage-rss20.xml')] + feeds = [(u"Harper's Magazine", u'http://harpers.org/feed/')] def get_cover_url(self): cover_url = None @@ -49,9 +50,9 @@ class Harpers(BasicNewsRecipe): cover_url = 'http://harpers.org' + link_item['src'] return cover_url - def preprocess_html(self, soup): - for item in soup.findAll(style=True): - del item['style'] - for item in soup.findAll(xmlns=True): - del item['xmlns'] - return soup + #def preprocess_html(self, soup): + #for item in soup.findAll(style=True): + #del item['style'] + #for item in soup.findAll(xmlns=True): + #del item['xmlns'] + #return soup From fa0b3854a41a6b8279cd7b3d2fe0f0b6b7ba6d22 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Fri, 7 Dec 2012 15:47:49 +0530 Subject: [PATCH 8/8] More robust error handling for simple_worker --- src/calibre/utils/ipc/simple_worker.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/calibre/utils/ipc/simple_worker.py b/src/calibre/utils/ipc/simple_worker.py index ca84f9d84d..86bddb38ab 100644 --- a/src/calibre/utils/ipc/simple_worker.py +++ b/src/calibre/utils/ipc/simple_worker.py @@ -48,7 +48,7 @@ class ConnectedWorker(Thread): try: eintr_retry_call(conn.send, self.args) self.res = eintr_retry_call(conn.recv) - except: + except BaseException: self.tb = traceback.format_exc() def communicate(ans, worker, listener, args, timeout=300, heartbeat=None, @@ -77,6 +77,8 @@ def communicate(ans, worker, listener, args, timeout=300, heartbeat=None, if cw.tb: raise WorkerError('Failed to communicate with worker process') + if cw.res is None: + raise WorkerError('Something strange happened. The worker process was aborted without an exception.') if cw.res.get('tb', None): raise WorkerError('Worker failed', cw.res['tb']) ans['result'] = cw.res['result']