From 6afd231a14c4fdb244a38f3e0637c93671e90ba9 Mon Sep 17 00:00:00 2001 From: Charles Haley Date: Sat, 12 Oct 2013 18:36:18 +0200 Subject: [PATCH 01/51] Fix formatter function days_between to compute the right value when the answer is negative. --- src/calibre/utils/formatter_functions.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/calibre/utils/formatter_functions.py b/src/calibre/utils/formatter_functions.py index b8ff7b0387..2d0106c59a 100644 --- a/src/calibre/utils/formatter_functions.py +++ b/src/calibre/utils/formatter_functions.py @@ -1187,7 +1187,7 @@ class BuiltinDaysBetween(BuiltinFormatterFunction): except: return '' i = d1 - d2 - return str('%d.%d'%(i.days, i.seconds/8640)) + return '%.1f'%(i.days + (i.seconds/(24.0*60.0*60.0))) class BuiltinLanguageStrings(BuiltinFormatterFunction): name = 'language_strings' From 00e0901249d1bff00a3423106df38c6589a28d2e Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sat, 12 Oct 2013 22:35:15 +0530 Subject: [PATCH 02/51] Fix error if a marked book is deleted/merged. Fixes #1239161 [Unhandled exception using "Mark books" feature](https://bugs.launchpad.net/calibre/+bug/1239161) --- src/calibre/gui2/library/views.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/calibre/gui2/library/views.py b/src/calibre/gui2/library/views.py index ccf15a2be9..5aef45005f 100644 --- a/src/calibre/gui2/library/views.py +++ b/src/calibre/gui2/library/views.py @@ -693,7 +693,13 @@ class BooksView(QTableView): # {{{ self.alternate_views.marked_changed(old_marked, current_marked) if bool(old_marked) == bool(current_marked): changed = old_marked | current_marked - sections = tuple(map(self.model().db.data.id_to_index, changed)) + i = self.model().db.data.id_to_index + def f(x): + try: + return i(x) + except ValueError: + pass + sections = tuple(x for x in map(f, changed) if x is not None) self.row_header.headerDataChanged(Qt.Vertical, min(sections), max(sections)) else: # Marked items have either appeared or all been removed From 12e83a09b0f254a611fe4260bb653a93d2176200 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sat, 12 Oct 2013 22:37:53 +0530 Subject: [PATCH 03/51] Allow marked book button to be added to main toolbar when device is connected Fixes #1239163 [Mark Books cannot be added to "The main menu when a device is connected"](https://bugs.launchpad.net/calibre/+bug/1239163) --- src/calibre/gui2/actions/mark_books.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/calibre/gui2/actions/mark_books.py b/src/calibre/gui2/actions/mark_books.py index 8543df4461..2dfdc2781b 100644 --- a/src/calibre/gui2/actions/mark_books.py +++ b/src/calibre/gui2/actions/mark_books.py @@ -20,7 +20,7 @@ class MarkBooksAction(InterfaceAction): action_type = 'current' action_add_menu = True dont_add_to = frozenset([ - 'toolbar-device', 'context-menu-device', 'menubar-device', 'context-menu-cover-browser']) + 'context-menu-device', 'menubar-device', 'context-menu-cover-browser']) action_menu_clone_qaction = _('Toggle mark for selected books') accepts_drops = True From 00af6187a370d54a830e0240acb9c2276debd916 Mon Sep 17 00:00:00 2001 From: John Schember Date: Sat, 12 Oct 2013 18:26:21 -0400 Subject: [PATCH 04/51] Fix title of downloaded ebooks. --- src/calibre/gui2/ebook_download.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/calibre/gui2/ebook_download.py b/src/calibre/gui2/ebook_download.py index 1b2f8b38d0..9f678bd506 100644 --- a/src/calibre/gui2/ebook_download.py +++ b/src/calibre/gui2/ebook_download.py @@ -15,7 +15,7 @@ from calibre import browser, get_download_filename from calibre.ebooks import BOOK_EXTENSIONS from calibre.gui2 import Dispatcher from calibre.gui2.threaded_jobs import ThreadedJob -from calibre.ptempfile import PersistentTemporaryFile +from calibre.ptempfile import PersistentTemporaryDirectory from calibre.utils.filenames import ascii_filename class EbookDownload(object): @@ -56,7 +56,8 @@ class EbookDownload(object): cj.load(cookie_file) br.set_cookiejar(cj) with closing(br.open(url)) as r: - tf = PersistentTemporaryFile(suffix=filename) + temp_path = os.path.join(PersistentTemporaryDirectory(), filename) + tf = open(temp_path, 'w+b') tf.write(r.read()) dfilename = tf.name From 22289f95d44c98490a0f537b55139917f2d622af Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sun, 13 Oct 2013 07:36:49 +0530 Subject: [PATCH 05/51] Fix crashes when switching libraries with marked books Fix a bug that could cause calibre to crash when switching from a large library to a smaller library with marked books. Fixes #1239210 [Calibre 1.6 64bits crashes when changing library](https://bugs.launchpad.net/calibre/+bug/1239210) --- src/calibre/gui2/library/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/calibre/gui2/library/views.py b/src/calibre/gui2/library/views.py index 5aef45005f..aa20670738 100644 --- a/src/calibre/gui2/library/views.py +++ b/src/calibre/gui2/library/views.py @@ -66,7 +66,7 @@ class HeaderView(QHeaderView): # {{{ try: opt.icon = model.headerData(logical_index, opt.orientation, Qt.DecorationRole) opt.iconAlignment = Qt.AlignVCenter - except TypeError: + except (IndexError, ValueError, TypeError): pass if sm.isRowSelected(logical_index, QModelIndex()): opt.state |= QStyle.State_Sunken From fac708b267f1c3cfd0f2f88c35daad0e04a5b684 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sun, 13 Oct 2013 07:50:48 +0530 Subject: [PATCH 06/51] Update Diagonales Fixes #1239235 [Updated recipe for Diagonales](https://bugs.launchpad.net/calibre/+bug/1239235) --- recipes/diagonales.recipe | 74 ++++++++++++----------------------- recipes/icons/diagonales.png | Bin 0 -> 4876 bytes 2 files changed, 26 insertions(+), 48 deletions(-) create mode 100644 recipes/icons/diagonales.png diff --git a/recipes/diagonales.recipe b/recipes/diagonales.recipe index eff06efc1d..65542697b5 100644 --- a/recipes/diagonales.recipe +++ b/recipes/diagonales.recipe @@ -1,72 +1,50 @@ -#!/usr/bin/env python - __license__ = 'GPL v3' -__copyright__ = '2009, Darko Miletic ' +__copyright__ = '2009-2013, Darko Miletic ' ''' -elargentino.com +diagonales.infonews.com ''' from calibre.web.feeds.news import BasicNewsRecipe -from calibre.ebooks.BeautifulSoup import Tag class Diagonales(BasicNewsRecipe): title = 'Diagonales' __author__ = 'Darko Miletic' - description = 'El nuevo diario de La Plata' - publisher = 'ElArgentino.com' + description = 'Para estar bien informado sobre los temas de actualidad. Conoce sobre pais, economia, deportes, mundo, espectaculos, sociedad, entrevistas y tecnologia.' + publisher = 'INFOFIN S.A.' category = 'news, politics, Argentina, La Plata' oldest_article = 2 max_articles_per_feed = 100 no_stylesheets = True use_embedded_content = False encoding = 'utf-8' - language = 'es_AR' - - lang = 'es-AR' - direction = 'ltr' - INDEX = 'http://www.elargentino.com/medios/122/Diagonales.html' + language = 'es_AR' + publication_type = 'newspaper' + delay = 1 + remove_empty_feeds = True extra_css = ' .titulo{font-size: x-large; font-weight: bold} .volantaImp{font-size: small; font-weight: bold} ' - html2lrf_options = [ - '--comment' , description - , '--category' , category - , '--publisher', publisher - ] - - html2epub_options = 'publisher="' + publisher + '"\ncomments="' + description + '"\ntags="' + category + '"\noverride_css=" p {text-indent: 0cm; margin-top: 0em; margin-bottom: 0.5em} "' + conversion_options = { + 'comment' : description + , 'tags' : category + , 'publisher' : publisher + , 'language' : language + } keep_only_tags = [dict(name='div', attrs={'class':'ContainerPop'})] + remove_tags = [dict(name='link')] - remove_tags = [dict(name='link')] - - feeds = [(u'Articulos', u'http://www.elargentino.com/Highlights.aspx?ParentType=Section&ParentId=122&Content-Type=text/xml&ChannelDesc=Diagonales')] + feeds = [ + (u'Pais' , u'http://diagonales.infonews.com/Highlights.aspx?ParentType=Section&ParentId=112&Content-Type=text/xml&ChannelDesc=Pa%C3%ADs') + ,(u'Deportes' , u'http://diagonales.infonews.com/Highlights.aspx?ParentType=Section&ParentId=106&Content-Type=text/xml&ChannelDesc=Deportes') + ,(u'Economia' , u'http://diagonales.infonews.com/Highlights.aspx?ParentType=Section&ParentId=107&Content-Type=text/xml&ChannelDesc=Econom%C3%ADa') + ,(u'Sociedad' , u'http://diagonales.infonews.com/Highlights.aspx?ParentType=Section&ParentId=109&Content-Type=text/xml&ChannelDesc=Sociedad') + ,(u'Mundo' , u'http://diagonales.infonews.com/Highlights.aspx?ParentType=Section&ParentId=113&Content-Type=text/xml&ChannelDesc=Mundo') + ,(u'Espectaculos', u'http://diagonales.infonews.com/Highlights.aspx?ParentType=Section&ParentId=114&Content-Type=text/xml&ChannelDesc=Espect%C3%A1culos') + ,(u'Entrevistas' , u'http://diagonales.infonews.com/Highlights.aspx?ParentType=Section&ParentId=115&Content-Type=text/xml&ChannelDesc=Entrevistas') + ,(u'Tecnologia' , u'http://diagonales.infonews.com/Highlights.aspx?ParentType=Section&ParentId=118&Content-Type=text/xml&ChannelDesc=Tecnolog%C3%ADa') + ] def print_version(self, url): main, sep, article_part = url.partition('/nota-') article_id, rsep, rrest = article_part.partition('-') - return u'http://www.elargentino.com/Impresion.aspx?Id=' + article_id - - def preprocess_html(self, soup): - for item in soup.findAll(style=True): - del item['style'] - soup.html['lang'] = self.lang - soup.html['dir' ] = self.direction - mlang = Tag(soup,'meta',[("http-equiv","Content-Language"),("content",self.lang)]) - mcharset = Tag(soup,'meta',[("http-equiv","Content-Type"),("content","text/html; charset=utf-8")]) - soup.head.insert(0,mlang) - soup.head.insert(1,mcharset) - return soup - - def get_cover_url(self): - cover_url = None - soup = self.index_to_soup(self.INDEX) - cover_item = soup.find('div',attrs={'class':'colder'}) - if cover_item: - clean_url = self.image_url_processor(None,cover_item.div.img['src']) - cover_url = 'http://www.elargentino.com' + clean_url + '&height=600' - return cover_url - - def image_url_processor(self, baseurl, url): - base, sep, rest = url.rpartition('?Id=') - img, sep2, rrest = rest.partition('&') - return base + sep + img + return u'http://diagonales.infonews.com/Impresion.aspx?Id=' + article_id diff --git a/recipes/icons/diagonales.png b/recipes/icons/diagonales.png new file mode 100644 index 0000000000000000000000000000000000000000..1fe7c850376bc2ebdb1ede28e6911a704497367f GIT binary patch literal 4876 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 z Date: Sun, 13 Oct 2013 08:35:30 +0530 Subject: [PATCH 07/51] Start work on global undo/redo for tweaking --- src/calibre/gui2/tweak_book/boss.py | 17 +++++++++++++- src/calibre/gui2/tweak_book/file_list.py | 29 ++++++++++++++++++++---- src/calibre/gui2/tweak_book/ui.py | 11 +++++++++ src/calibre/gui2/tweak_book/undo.py | 19 ++++++++++++++++ 4 files changed, 71 insertions(+), 5 deletions(-) diff --git a/src/calibre/gui2/tweak_book/boss.py b/src/calibre/gui2/tweak_book/boss.py index 61c11597ed..1857e91900 100644 --- a/src/calibre/gui2/tweak_book/boss.py +++ b/src/calibre/gui2/tweak_book/boss.py @@ -71,12 +71,27 @@ class Boss(QObject): self.current_metadata = self.gui.current_metadata = container.mi self.global_undo.open_book(container) self.gui.update_window_title() - self.gui.file_list.build(container) + self.gui.file_list.build(container, preserve_state=False) + self.update_global_history_actions() + + def update_global_history_actions(self): + gu = self.global_undo + for x, text in (('undo', _('&Undo')), ('redo', '&Redo')): + ac = getattr(self.gui, 'action_global_%s' % x) + ac.setEnabled(getattr(gu, 'can_' + x)) + ac.setText(text + ' ' + getattr(gu, x + '_msg')) def add_savepoint(self, msg): nc = clone_container(current_container(), self.mkdtemp()) self.global_undo.add_savepoint(nc, msg) set_current_container(nc) + self.update_global_history_actions() + + def do_global_undo(self): + pass + + def do_global_redo(self): + pass def delete_requested(self, spine_items, other_items): if not self.check_dirtied(): diff --git a/src/calibre/gui2/tweak_book/file_list.py b/src/calibre/gui2/tweak_book/file_list.py index b7f1dce6d9..910aaaed80 100644 --- a/src/calibre/gui2/tweak_book/file_list.py +++ b/src/calibre/gui2/tweak_book/file_list.py @@ -89,7 +89,25 @@ class FileList(QTreeWidget): 'images':'view-image.png', }.iteritems()} - def build(self, container): + def get_state(self): + s = {'pos':self.verticalScrollBar().value()} + s['expanded'] = {c for c, item in self.categories.iteritems() if item.isExpanded()} + s['selected'] = {unicode(i.data(0, NAME_ROLE).toString()) for i in self.selectedItems()} + return s + + def set_state(self, state): + for category, item in self.categories: + item.setExpanded(category in state['expanded']) + self.verticalScrollBar().setValue(state['pos']) + for parent in self.categories.itervalues(): + for c in (parent.child(i) for i in parent.childCount()): + name = unicode(c.data(0, NAME_ROLE).toString()) + if name in state['selected']: + c.setSelected(True) + + def build(self, container, preserve_state=True): + if preserve_state: + state = self.get_state() self.clear() self.root = self.invisibleRootItem() self.root.setFlags(Qt.ItemIsDragEnabled) @@ -221,7 +239,10 @@ class FileList(QTreeWidget): processed[name] = create_item(name) for c in self.categories.itervalues(): - self.expandItem(c) + c.setExpanded(True) + + if preserve_state: + self.set_state(state) def show_context_menu(self, point): pass @@ -277,7 +298,7 @@ class FileListWidget(QWidget): for x in ('delete_done',): setattr(self, x, getattr(self.file_list, x)) - def build(self, container): - self.file_list.build(container) + def build(self, container, preserve_state=True): + self.file_list.build(container, preserve_state=preserve_state) diff --git a/src/calibre/gui2/tweak_book/ui.py b/src/calibre/gui2/tweak_book/ui.py index d445429f80..93275368a6 100644 --- a/src/calibre/gui2/tweak_book/ui.py +++ b/src/calibre/gui2/tweak_book/ui.py @@ -58,15 +58,26 @@ class Main(MainWindow): return ac self.action_open_book = reg('document_open.png', _('Open &book'), self.boss.open_book, 'open-book', 'Ctrl+O', _('Open a new book')) + self.action_global_undo = reg('back.png', _('&Revert to before'), self.boss.do_global_undo, 'global-undo', 'Ctrl+Left', + _('Revert book to before the last action (Undo)')) + self.action_global_redo = reg('forward.png', _('&Revert to after'), self.boss.do_global_redo, 'global-redo', 'Ctrl+Right', + _('Revert book state to after the next action (Redo)')) def create_menubar(self): b = self.menuBar() + f = b.addMenu(_('&File')) f.addAction(self.action_open_book) + e = b.addMenu(_('&Edit')) + e.addAction(self.action_global_undo) + e.addAction(self.action_global_redo) + def create_toolbar(self): self.global_bar = b = self.addToolBar(_('Global')) b.addAction(self.action_open_book) + b.addAction(self.action_global_undo) + b.addAction(self.action_global_redo) def create_docks(self): self.file_list_dock = d = QDockWidget(_('&Files Browser'), self) diff --git a/src/calibre/gui2/tweak_book/undo.py b/src/calibre/gui2/tweak_book/undo.py index 865ba90ef7..c39b2b5694 100644 --- a/src/calibre/gui2/tweak_book/undo.py +++ b/src/calibre/gui2/tweak_book/undo.py @@ -53,4 +53,23 @@ class GlobalUndoHistory(object): self.pos += 1 return self.current_container + @property + def can_undo(self): + return self.pos > 0 + + @property + def can_redo(self): + return self.pos < len(self.states) - 1 + + @property + def undo_msg(self): + if not self.can_undo: + return '' + return self.states[self.pos - 1].message or '' + + @property + def redo_msg(self): + if not self.can_redo: + return '' + return self.states[self.pos].message or '' From 38a4942a6e8059057504e22a76221c0e6a9dd3a2 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Mon, 14 Oct 2013 10:08:41 +0530 Subject: [PATCH 08/51] Update Carta --- recipes/carta.recipe | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/carta.recipe b/recipes/carta.recipe index b63ab0aa6d..7f2a9e1e19 100644 --- a/recipes/carta.recipe +++ b/recipes/carta.recipe @@ -12,7 +12,7 @@ class Carta(BasicNewsRecipe): title = u'Carta' description = 'News about electronic publishing' - __author__ = 'Oliver Niesner' + __author__ = 'Oliver Niesner' # AGe Update 2013-10-13 use_embedded_content = False timefmt = ' [%a %d %b %Y]' oldest_article = 7 @@ -25,7 +25,7 @@ class Carta(BasicNewsRecipe): - remove_tags_after = [dict(name='p', attrs={'class':'tags-blog'})] + remove_tags_after = [dict(name='div', attrs={'id':'BlogContent'})] # AGe remove_tags = [dict(name='p', attrs={'class':'print'}), dict(name='p', attrs={'class':'tags-blog'}), From ecf1e290b8306634773f03f87d23b386d146dbec Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Mon, 14 Oct 2013 10:17:04 +0530 Subject: [PATCH 09/51] Update Television Without Pity --- recipes/television_without_pity.recipe | 91 ++++++++++++++++++++++++-- 1 file changed, 84 insertions(+), 7 deletions(-) diff --git a/recipes/television_without_pity.recipe b/recipes/television_without_pity.recipe index e48bce5859..4cbc57205d 100644 --- a/recipes/television_without_pity.recipe +++ b/recipes/television_without_pity.recipe @@ -1,21 +1,98 @@ from calibre.web.feeds.news import BasicNewsRecipe +import re -class HindustanTimes(BasicNewsRecipe): +class TelevisionWithoutPity(BasicNewsRecipe): title = u'Television Without Pity' language = 'en' - __author__ = 'Krittika Goyal' - oldest_article = 1 #days + __author__ = 'Snarkastica' + SHOW = 'http://www.televisionwithoutpity.com/show/SHOW-NAME-HERE/recaps/' # Used for pulling down an entire show, not just the RSS feed + oldest_article = 7 # days max_articles_per_feed = 25 + # reverse_article_order=True # Useful for entire show, to display in episode order #encoding = 'cp1252' use_embedded_content = False + preprocess_regexps = [(re.compile(r'')] + keep_only_tags = [dict(name='span', attrs={'class':'headline_recap_title'}), dict( + name='p', attrs={'class':'byline'}), dict(name='div', attrs={'class':'body_recap'}), dict(name='h1')] no_stylesheets = True - auto_cleanup = True - #auto_cleanup_keep = '//div[@class="float_right"]' - + # Comment this out and configure process_index() to retrieve a single show feeds = [ -('News', +('Ltest Recaps', 'http://www.televisionwithoutpity.com/rss.xml'), ] + ''' + This method can be used to grab all recaps for a single show + Set the SHOW constant at the beginning of this file to the URL for a show's recap page + (the page listing all recaps, usually of the form: + http://www.televisionwithoutpity.com/show/SHOW-NAME/recaps/" + Where SHOW-NAME is the hyphenated name of the show. + + To use: + 1. Comment out feeds = [...] earlier in this file + 2. Set the SHOW constant to the show's recap page + 3. Uncomment the following function + ''' + + ''' + def parse_index(self): + soup = self.index_to_soup(self.SHOW) + feeds = [] + articles = [] + showTitle = soup.find('h1').string + recaps = soup.find('table') + for ep in recaps.findAll('tr'): + epData = ep.findAll('td') + epNum = epData[0].find(text=True).strip() + if not epNum == "Ep.": + epT = self.tag_to_string(epData[1].find('em')).strip() + epST = " (or " + self.tag_to_string(epData[1].find('h3')).strip() + ")" + epTitle = epNum + ": " + epT + epST + epData[1].find('em').extract() + epURL = epData[1].find('a', href=True) + epURL = epURL['href'] + epSum = self.tag_to_string(epData[1].find('p')).strip() + epDate = epData[2].find(text=True).strip() + epAuthor = self.tag_to_string(epData[4].find('p')).strip() + articles.append({'title':epTitle, 'url':epURL, 'description':epSum, 'date':epDate, 'author':epAuthor}) + feeds.append((showTitle, articles)) + #self.abort_recipe_processing("test") + return feeds + ''' + + # This will add subsequent pages of multipage recaps to a single article page + def append_page(self, soup, appendtag, position): + if (soup.find('p',attrs={'class':'pages'})): # If false, will still grab single-page recaplets + pager = soup.find('p',attrs={'class':'pages'}).find(text='Next') + if pager: + nexturl = pager.parent['href'] + soup2 = self.index_to_soup(nexturl) + texttag = soup2.find('div', attrs={'class':'body_recap'}) + for it in texttag.findAll(style=True): + del it['style'] + newpos = len(texttag.contents) + self.append_page(soup2,texttag,newpos) + texttag.extract() + appendtag.insert(position,texttag) + + def preprocess_html(self, soup): + self.append_page(soup, soup.body, 3) + return soup + + # Remove the multi page links (we had to keep these in for append_page(), but they can go away now + # Could have used CSS to hide, but some readers ignore CSS. + def postprocess_html(self, soup, first_fetch): + paginator = soup.findAll('p', attrs={'class':'pages'}) + if paginator: + for p in paginator: + p.extract() + + # TODO: Fix this so it converts the headline class into a heading 1 + #titleTag = Tag(soup, "h1") + #repTag = soup.find('span', attrs={'class':'headline_recap_title'}) + #titleTag.insert(0, repTag.contents[0]) + # repTag.extract() + #soup.body.insert(1, titleTag) + return soup From 2a336ab7a7b9aea2bdee2137ee1f46c908539840 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Mon, 14 Oct 2013 19:12:03 +0530 Subject: [PATCH 10/51] Content server: Use internal redirect for single item categories Content server: Fix single item categories not working with reverse proxy setup. Fixes #1238987 [Calibre behind apache server sometimes returns 'localhost' URLs](https://bugs.launchpad.net/calibre/+bug/1238987) Single item categories were using HTTP 303 redirects which are resolved to http://localhost:8080 absolute URLs by cherrpy (since cherrypy has no knowledge of whatever server the apache process is exposed as). SO instead we use an internal redirect, which does not suffer from this issue. It does mean that bookmarking the URL wil have unexpected side-effects if the number of items in the catefory ever increases to more than one. --- src/calibre/library/server/browse.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/calibre/library/server/browse.py b/src/calibre/library/server/browse.py index 383d53f849..470eb0c1f3 100644 --- a/src/calibre/library/server/browse.py +++ b/src/calibre/library/server/browse.py @@ -500,7 +500,7 @@ class BrowseServer(object): datatype, self.opts.url_prefix) href = re.search(r' Date: Mon, 14 Oct 2013 20:11:20 -0400 Subject: [PATCH 11/51] Fix issue #1239527: Htmlz inline css doesn't single quote fonts & thus destroys html. --- src/calibre/ebooks/htmlz/oeb2html.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/calibre/ebooks/htmlz/oeb2html.py b/src/calibre/ebooks/htmlz/oeb2html.py index b162d9e19c..820f6e5839 100644 --- a/src/calibre/ebooks/htmlz/oeb2html.py +++ b/src/calibre/ebooks/htmlz/oeb2html.py @@ -267,7 +267,7 @@ class OEB2HTMLInlineCSSizer(OEB2HTML): # Turn style into strings for putting in the tag. style_t = '' if style_a: - style_t = ' style="%s"' % style_a + style_t = ' style="%s"' % style_a.replace('"', "'") # Write the tag. text.append('<%s%s%s>' % (tag, at, style_t)) From 219f4c632fbf98f8b337068af1e3f195797ac728 Mon Sep 17 00:00:00 2001 From: John Schember Date: Mon, 14 Oct 2013 20:13:14 -0400 Subject: [PATCH 12/51] Fix issue #1239530: Htmlz conversion places in , not before. --- src/calibre/ebooks/htmlz/oeb2html.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/calibre/ebooks/htmlz/oeb2html.py b/src/calibre/ebooks/htmlz/oeb2html.py index 820f6e5839..e9ebd676a0 100644 --- a/src/calibre/ebooks/htmlz/oeb2html.py +++ b/src/calibre/ebooks/htmlz/oeb2html.py @@ -49,7 +49,7 @@ class OEB2HTML(object): return self.mlize_spine(oeb_book) def mlize_spine(self, oeb_book): - output = [u''] + output = [u''] for item in oeb_book.spine: self.log.debug('Converting %s to HTML...' % item.href) self.rewrite_ids(item.data, item) From 8b9f5bfe85543fea34a935a1e347a400b29560aa Mon Sep 17 00:00:00 2001 From: John Schember Date: Mon, 14 Oct 2013 20:22:37 -0400 Subject: [PATCH 13/51] Fix issue #1239555: Htmlz conversion incorrectly handles
. --- src/calibre/ebooks/htmlz/oeb2html.py | 39 +++++++++++++++++++++++----- 1 file changed, 33 insertions(+), 6 deletions(-) diff --git a/src/calibre/ebooks/htmlz/oeb2html.py b/src/calibre/ebooks/htmlz/oeb2html.py index e9ebd676a0..2130b95fb8 100644 --- a/src/calibre/ebooks/htmlz/oeb2html.py +++ b/src/calibre/ebooks/htmlz/oeb2html.py @@ -22,6 +22,18 @@ from calibre.ebooks.oeb.base import XHTML, XHTML_NS, barename, namespace,\ from calibre.ebooks.oeb.stylizer import Stylizer from calibre.utils.logging import default_log +SELF_CLOSING_TAGS = [ + 'area', + 'base', + 'basefont', + 'br', + 'hr', + 'input', + 'img', + 'link', + 'meta' +] + class OEB2HTML(object): ''' Base class. All subclasses should implement dump_text to actually transform @@ -183,7 +195,11 @@ class OEB2HTMLNoCSSizer(OEB2HTML): at += ' %s="%s"' % (k, prepare_string_for_xml(v, attribute=True)) # Write the tag. - text.append('<%s%s>' % (tag, at)) + text.append('<%s%s' % (tag, at)) + if tag in SELF_CLOSING_TAGS: + text.append(' />') + else: + text.append('>') # Turn styles into tags. if style['font-weight'] in ('bold', 'bolder'): @@ -210,7 +226,8 @@ class OEB2HTMLNoCSSizer(OEB2HTML): # Close all open tags. tags.reverse() for t in tags: - text.append('' % t) + if t not in SELF_CLOSING_TAGS: + text.append('' % t) # Add the text that is outside of the tag. if hasattr(elem, 'tail') and elem.tail: @@ -270,7 +287,11 @@ class OEB2HTMLInlineCSSizer(OEB2HTML): style_t = ' style="%s"' % style_a.replace('"', "'") # Write the tag. - text.append('<%s%s%s>' % (tag, at, style_t)) + text.append('<%s%s%s' % (tag, at, style_t)) + if tag in SELF_CLOSING_TAGS: + text.append(' />') + else: + text.append('>') # Process tags that contain text. if hasattr(elem, 'text') and elem.text: @@ -283,7 +304,8 @@ class OEB2HTMLInlineCSSizer(OEB2HTML): # Close all open tags. tags.reverse() for t in tags: - text.append('' % t) + if t not in SELF_CLOSING_TAGS: + text.append('' % t) # Add the text that is outside of the tag. if hasattr(elem, 'tail') and elem.tail: @@ -350,7 +372,11 @@ class OEB2HTMLClassCSSizer(OEB2HTML): at += ' %s="%s"' % (k, prepare_string_for_xml(v, attribute=True)) # Write the tag. - text.append('<%s%s>' % (tag, at)) + text.append('<%s%s' % (tag, at)) + if tag in SELF_CLOSING_TAGS: + text.append(' />') + else: + text.append('>') # Process tags that contain text. if hasattr(elem, 'text') and elem.text: @@ -363,7 +389,8 @@ class OEB2HTMLClassCSSizer(OEB2HTML): # Close all open tags. tags.reverse() for t in tags: - text.append('' % t) + if t not in SELF_CLOSING_TAGS: + text.append('' % t) # Add the text that is outside of the tag. if hasattr(elem, 'tail') and elem.tail: From 78f840906efb96a5b84cfc6e7bc9f6aac27f09a3 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Tue, 15 Oct 2013 08:56:51 +0530 Subject: [PATCH 14/51] Update cracked.com --- recipes/cracked_com.recipe | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/recipes/cracked_com.recipe b/recipes/cracked_com.recipe index a702f93433..5a024f7b23 100644 --- a/recipes/cracked_com.recipe +++ b/recipes/cracked_com.recipe @@ -22,12 +22,8 @@ class Cracked(BasicNewsRecipe): 'comment': description, 'tags': category, 'publisher': publisher, 'language': language } - # remove_tags_before = dict(id='PrimaryContent') - - keep_only_tags = dict(name='article', attrs={ - 'class': 'module article dropShadowBottomCurved'}) - - # remove_tags_after = dict(name='div', attrs={'class':'shareBar'}) + keep_only_tags = [dict(name='article', attrs={'class': 'module article dropShadowBottomCurved'}), + dict(name='article', attrs={'class': 'module blog dropShadowBottomCurved'})] remove_tags = [ dict(name='section', attrs={'class': ['socialTools', 'quickFixModule']})] From c9f5f787b3be52748e02dff2ef55d87238dc08ce Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Tue, 15 Oct 2013 09:05:54 +0530 Subject: [PATCH 15/51] Edit metadata dialog: Fix incorrect size on multi-screen setup Edit metadata dialog: The dit metadata dialog currently limits its max size based on the geometry of the smallet attached screen. Change that to use the geometry of the screen on which it will be shown. Fixes #1239597 [metadata window height not remembered](https://bugs.launchpad.net/calibre/+bug/1239597) --- src/calibre/gui2/__init__.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/calibre/gui2/__init__.py b/src/calibre/gui2/__init__.py index 569a531216..816ed5b617 100644 --- a/src/calibre/gui2/__init__.py +++ b/src/calibre/gui2/__init__.py @@ -753,11 +753,13 @@ class ResizableDialog(QDialog): def __init__(self, *args, **kwargs): QDialog.__init__(self, *args) self.setupUi(self) - nh, nw = min_available_height()-25, available_width()-10 + desktop = QCoreApplication.instance().desktop() + geom = desktop.availableGeometry(self) + nh, nw = geom.height()-25, geom.width()-10 if nh < 0: - nh = 800 + nh = max(800, self.height()) if nw < 0: - nw = 600 + nw = max(600, self.height()) nh = min(self.height(), nh) nw = min(self.width(), nw) self.resize(nw, nh) From 2277ed4b172b90c561ba6d02782f04e3c6fb06ab Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Tue, 15 Oct 2013 09:28:08 +0530 Subject: [PATCH 16/51] ... --- src/calibre/gui2/library/models.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/calibre/gui2/library/models.py b/src/calibre/gui2/library/models.py index 9fe8606fca..81ea3e4643 100644 --- a/src/calibre/gui2/library/models.py +++ b/src/calibre/gui2/library/models.py @@ -928,7 +928,10 @@ class BooksModel(QAbstractTableModel): # {{{ if role == Qt.DisplayRole: # orientation is vertical return QVariant(section+1) if role == Qt.DecorationRole: - return self.marked_icon if self.db.data.get_marked(self.db.data.index_to_id(section)) else self.row_decoration + try: + return self.marked_icon if self.db.data.get_marked(self.db.data.index_to_id(section)) else self.row_decoration + except (ValueError, IndexError): + pass return NONE def flags(self, index): From a43941dc0dd9375e8c74c89729f57d7cc6e54327 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Tue, 15 Oct 2013 11:12:51 +0530 Subject: [PATCH 17/51] Allow using textures for cover grid background Cover grid: Allow using images as the background for the cover grid. To choose an image, go to Preferences->Look & Feel->Cover Grid. Fixes #1239194 [[Ideas] -->book grid](https://bugs.launchpad.net/calibre/+bug/1239194) [[Ideas] -->book grid](https://bugs.launchpad.net/calibre/+bug/1239194) The builtin textures come from subtlepatterns.com --- resources/images/textures/dark_cloth.png | Bin 0 -> 19901 bytes resources/images/textures/dark_wood.png | Bin 0 -> 134827 bytes resources/images/textures/grey_wash_wall.png | Bin 0 -> 47433 bytes resources/images/textures/light_wood.png | Bin 0 -> 171492 bytes resources/images/textures/subtle_wood.png | Bin 0 -> 102184 bytes src/calibre/gui2/__init__.py | 1 + src/calibre/gui2/library/alternate_views.py | 8 +- src/calibre/gui2/preferences/look_feel.py | 85 ++++++++-- src/calibre/gui2/preferences/look_feel.ui | 61 +------- .../gui2/preferences/texture_chooser.py | 146 ++++++++++++++++++ 10 files changed, 234 insertions(+), 67 deletions(-) create mode 100644 resources/images/textures/dark_cloth.png create mode 100644 resources/images/textures/dark_wood.png create mode 100644 resources/images/textures/grey_wash_wall.png create mode 100644 resources/images/textures/light_wood.png create mode 100644 resources/images/textures/subtle_wood.png create mode 100644 src/calibre/gui2/preferences/texture_chooser.py diff --git a/resources/images/textures/dark_cloth.png b/resources/images/textures/dark_cloth.png new file mode 100644 index 0000000000000000000000000000000000000000..17a4d6b42defcc8ebbad993bc91a2030f6c690ed GIT binary patch literal 19901 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 AbN~PV literal 0 HcmV?d00001 diff --git a/resources/images/textures/dark_wood.png b/resources/images/textures/dark_wood.png new file mode 100644 index 0000000000000000000000000000000000000000..6e01b3d6f8636099d64917f082c5b383a43b0ae3 GIT binary patch literal 134827 zcmagF1yEeg)-F85z~C0#9fAaAaQ7eymf#M--Q6V++}#7gf_rca5ZqmZ4DPN!@Ag;CdXaW#3w)P3sL_|FaK-%pJ6s?%70Out%Rum%P0+b zB}xf9M-xgeR>(Ue2seb18_Ejh;N;=qVWDJ)Kp|`pb~Y&cJ17r72RlCmLiyhp_3Lbo z#-{wAC8hp*uGgLrwYjsiJwF?po0}V}8wabMqZu2NkB{#k9qjDyUK#J4JZzl}-QU?d z(fnJ3q=}P}qlLY*g`F+sKN=0c*ts|hQNLRHUrVsD|BqT*r~h`-tHapb4ei;WtdM_} z^e>{Z(SLaME{@j!n%vlk&BWTo#>Cdy>6Hup5BJqe^78+o|Bq^IZ2rS`a{g@czt;9Y zvYk{s>`mA{n>g9II2yeM*_7rVv+VgL98CKycE%Q_9{(p5$`9q> z=i>PPQC~xEZ0KzG|0Ek5@tfK?+8Dn2-{PNaWwW<6``2vp^8B*4PR@q5Mkcb7Le#HI zW3{j_=6}yC`JNlfCnhB+E)Iphhw!~;=N03Fh_g%b@IWMZIsPpxX=mi}PZa(wYy7`t z#s9Ce|K#&OapIRWakOwXF_v<)v!VP~Ech+{2U{d0_&E7^dAOt`#a@sA%YDuRzB@e+336#w#$fFfp+)v9PhQ-e6IjdiuBY47&0k5&&?>_Og;#x+&EP6vU^@gASjaMevc0? zkCiW1kGCQY6y4C(lb1(5*qZ&R5DMn=(%duRe%FEBI;_!eN$V*(iem2N)>@9_*3UuY z#dZu4j-u!hHrK6x1M_>1nG?xIq_}!mbC}c5Z`ec>9($PUm5e@P>;2~UBu4o{@tFB? z%SHC`=zQ7y(z&+x9CKneeUn7+=!o3NUN+McCg**s?i$9((cW=sSPGT!XEB0bzIgKHd4g8b7v%c(4fY z^^?rHiCL?^N8GVn@4t9rAooVVIw4$t&Uw}EeW+37x9SSI-ei1v=ug`;pnapbuKAFO zIh#RX z;iSB*p*saIaaeMcvZvo?Df~)wQDsXwx`$|Q^vB-P56hbZmna|6Kr_4KE!Hd~WJ#aaeM@y)4y*2u zN4$5%J7e;1zGm* zungST{+(T4h@mJ34}#^F-+}0d@+F1d_>1yerCX4nmSrC1CWd~ut*lQ6bFSp7hMQyC zW-g$oZ;%AV^#M!cjCs6+HhGh8W^)P0IBG5paaK2Jr%b$2b%YJrreRR98;z6XJUi&E zM15hqeeM}{mD6-aJ_*${mi}77M>Fqz?axk~@>c3Ra_4*+B-y}eh}{j!?|T4#jy9jC z`9gGLZi}1Y`$l6Llv&^ljkm}1{m;1kF#TGesL-5fG`YDbRe z=e9-jO@Kz&X5?~$RM5ye&1y2?+}EO3fr<^I)bzc>x-@-Q;?lNBQdH2V-&Y!+8rl&E zV&vP)sd7K<+W$=wd2G2RBFxUES7S#Bh1kL$KBWdW!=8`~JA-*9b0F7LE@@zD?ts}AYYXh)~8 z3y!kDnog&CjF-ky>e=3_KHNt0Q`VbA9E{n_G?9t5WrW0l`Ol?&yBCSG;=bLZ9z2hA z4+2}gdec_E{5Bp*-JfEyA%9y(*gM3hwVu#x5rLQb$GZNQ#y3;aiNn}(lhLwYe@P-? zL{rS3OWXu7S)%V=z#=rUYeHr^kqIC34t>oc=?^lgut^24#nx4iDa>-5_8+^ol7#l? zVgko=*ni=Xiq=MMeuFoU9e7$V+EbFA?O0tITkFr`R2_ruN{0BTCh1O%rx{DvG~^wf zc!VN2hgshu_K%tN)Y1dw2jVyk*9i?!ZSCBgd7^bze;TDvb5O_DaC`y3GfvZFl5QME zhX4YY{4L=sN~N=?w_!Ivxjkd{m2IVia;o5j6e52V8Lbth0l*t;4wEy*Ih;k4hXdSf z{WTV6Gi~pjW{blXb|VD>rC|4YJEl7!3?I%4oUF)*=TiTmhd?@TM3%2{6_+u38eUjn zJ{SMtes;)kOxK@sELi#m%drB{H`Zotbb#rgb+IfK{n08OWZ~HdKB=uciH|PL&92kG zAYg}a^2fC;oJtVhMtew9KMUSi(MZ`?*bUAU)q$04a`y?GeRkkcKQbDLt#6R3t3H%NKfpU? zXao>5>)!Y@NbhBqgCjaS1n}bw!Mv#m2SZvIMjPD|gnjctc!VL+Kcurv-8VkvGSOBs zS(wcHncxjiMKtZS?6yVd2t!!}uPoNKv}A~XODrg2g59`Df3o%0oFea80PONTp-qP* zX^U^$bO)3mbnmL-`dc&QyBPVLm!!X~8YwfhAT5s3`abpPdUF`{5$l8LFZoq&HHHF< zr1_Qz$w6x^8mFm|GGgC#>yIYCkT2%Vnm4G7u1k~~m#E8bukNZF!=Xsfz!48>LWA=8hNdHOD52B*bSZ z<79tnh&uuR%Hw!MZEbT1{p4pk|rxmsxY_&IrxYQm9R}lXGp89SE(#B?~o`UIV zD~0r>eNe6-KAFr4x9gMRu147=?E+=CBq>M3HhUV78xAcyq^#4yss~4eNW2@CeV&$^ ~07i~UiWF1fr4$D#AdZRk=| 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

Uto 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%0A|9}F78+}#FNE!|6l!cBj{@N1Hra2>xjNEpj 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 ebvV!Y_5TAQIfR*`VisNi0000O>H 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

m#q8IL@8DbXsvcm#kZv*<@x*))M$hQMUWOY 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%0D3k?FK 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 F{{?f$si^<} literal 0 HcmV?d00001 diff --git a/src/calibre/gui2/__init__.py b/src/calibre/gui2/__init__.py index 816ed5b617..67d4b80750 100644 --- a/src/calibre/gui2/__init__.py +++ b/src/calibre/gui2/__init__.py @@ -118,6 +118,7 @@ defs['cover_grid_color'] = (80, 80, 80) defs['cover_grid_cache_size'] = 100 defs['cover_grid_disk_cache_size'] = 2500 defs['cover_grid_show_title'] = False +defs['cover_grid_texture'] = None defs['show_vl_tabs'] = False del defs # }}} diff --git a/src/calibre/gui2/library/alternate_views.py b/src/calibre/gui2/library/alternate_views.py index a3885bf135..75178b09a7 100644 --- a/src/calibre/gui2/library/alternate_views.py +++ b/src/calibre/gui2/library/alternate_views.py @@ -19,7 +19,7 @@ from PyQt4.Qt import ( QTimer, QPalette, QColor, QItemSelection, QPixmap, QMenu, QApplication, QMimeData, QUrl, QDrag, QPoint, QPainter, QRect, pyqtProperty, QEvent, QPropertyAnimation, QEasingCurve, pyqtSlot, QHelpEvent, QAbstractItemView, - QStyleOptionViewItem, QToolTip, QByteArray, QBuffer) + QStyleOptionViewItem, QToolTip, QByteArray, QBuffer, QBrush) from calibre import fit_image, prints, prepare_string_for_xml from calibre.ebooks.metadata import fmt_sidx @@ -586,6 +586,12 @@ class GridView(QListView): pal = QPalette() col = QColor(r, g, b) pal.setColor(pal.Base, col) + tex = gprefs['cover_grid_texture'] + if tex: + from calibre.gui2.preferences.texture_chooser import texture_path + path = texture_path(tex) + if path: + pal.setBrush(pal.Base, QBrush(QPixmap(path))) dark = (r + g + b)/3.0 < 128 pal.setColor(pal.Text, QColor(Qt.white if dark else Qt.black)) self.setPalette(pal) diff --git a/src/calibre/gui2/preferences/look_feel.py b/src/calibre/gui2/preferences/look_feel.py index 4fc32b0e77..9e26db4563 100644 --- a/src/calibre/gui2/preferences/look_feel.py +++ b/src/calibre/gui2/preferences/look_feel.py @@ -8,13 +8,15 @@ __docformat__ = 'restructuredtext en' from threading import Thread from functools import partial -from PyQt4.Qt import (QApplication, QFont, QFontInfo, QFontDialog, QColorDialog, - QAbstractListModel, Qt, QIcon, QKeySequence, QPalette, QColor, pyqtSignal) +from PyQt4.Qt import ( + QApplication, QFont, QFontInfo, QFontDialog, QColorDialog, QPainter, + QAbstractListModel, Qt, QIcon, QKeySequence, QColor, pyqtSignal, + QWidget, QSizePolicy, QBrush, QPixmap, QSize, QPushButton) from calibre import human_readable from calibre.gui2.preferences import ConfigWidgetBase, test_widget, CommaSeparatedList from calibre.gui2.preferences.look_feel_ui import Ui_Form -from calibre.gui2 import config, gprefs, qt_app, NONE, open_local_file +from calibre.gui2 import config, gprefs, qt_app, NONE, open_local_file, question_dialog from calibre.utils.localization import (available_translations, get_language, get_lang) from calibre.utils.config import prefs @@ -98,6 +100,33 @@ class DisplayedFields(QAbstractListModel): # {{{ # }}} +class Background(QWidget): # {{{ + + def __init__(self, parent): + QWidget.__init__(self, parent) + self.bcol = QColor(*gprefs['cover_grid_color']) + self.btex = gprefs['cover_grid_texture'] + self.update_brush() + self.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed) + + def update_brush(self): + self.brush = QBrush(self.bcol) + if self.btex: + from calibre.gui2.preferences.texture_chooser import texture_path + path = texture_path(self.btex) + if path: + self.brush.setTexture(QPixmap(path)) + self.update() + + def sizeHint(self): + return QSize(200, 120) + + def paintEvent(self, ev): + painter = QPainter(self) + painter.fillRect(ev.rect(), self.brush) + painter.end() +# }}} + class ConfigWidget(ConfigWidgetBase, Ui_Form): size_calculated = pyqtSignal(object) @@ -209,10 +238,24 @@ class ConfigWidget(ConfigWidgetBase, Ui_Form): keys = [unicode(x.toString(QKeySequence.NativeText)) for x in keys] self.fs_help_msg.setText(unicode(self.fs_help_msg.text())%( _(' or ').join(keys))) - self.cover_grid_color_button.clicked.connect(self.change_cover_grid_color) - self.cover_grid_default_color_button.clicked.connect(self.restore_cover_grid_color) self.size_calculated.connect(self.update_cg_cache_size, type=Qt.QueuedConnection) self.tabWidget.currentChanged.connect(self.tab_changed) + + l = self.cg_background_box.layout() + self.cg_bg_widget = w = Background(self) + l.addWidget(w, 0, 0, 3, 1) + self.cover_grid_color_button = b = QPushButton(_('Change &color'), self) + b.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) + l.addWidget(b, 0, 1) + b.clicked.connect(self.change_cover_grid_color) + self.cover_grid_texture_button = b = QPushButton(_('Change &background image'), self) + b.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) + l.addWidget(b, 1, 1) + b.clicked.connect(self.change_cover_grid_texture) + self.cover_grid_default_appearance_button = b = QPushButton(_('Restore &default appearance'), self) + b.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) + l.addWidget(b, 2, 1) + b.clicked.connect(self.restore_cover_grid_appearance) self.cover_grid_empty_cache.clicked.connect(self.empty_cache) self.cover_grid_open_cache.clicked.connect(self.open_cg_cache) self.cover_grid_smaller_cover.clicked.connect(partial(self.resize_cover, True)) @@ -270,6 +313,7 @@ class ConfigWidget(ConfigWidgetBase, Ui_Form): self.edit_rules.initialize(db.field_metadata, db.prefs, mi, 'column_color_rules') self.icon_rules.initialize(db.field_metadata, db.prefs, mi, 'column_icon_rules') self.set_cg_color(gprefs['cover_grid_color']) + self.set_cg_texture(gprefs['cover_grid_texture']) self.update_aspect_ratio() def open_cg_cache(self): @@ -292,9 +336,12 @@ class ConfigWidget(ConfigWidgetBase, Ui_Form): self.size_calculated.emit(self.gui.grid_view.thumbnail_cache.current_size) def set_cg_color(self, val): - pal = QPalette() - pal.setColor(QPalette.Window, QColor(*val)) - self.cover_grid_color_label.setPalette(pal) + self.cg_bg_widget.bcol = QColor(*val) + self.cg_bg_widget.update_brush() + + def set_cg_texture(self, val): + self.cg_bg_widget.btex = val + self.cg_bg_widget.update_brush() def empty_cache(self): self.gui.grid_view.thumbnail_cache.empty() @@ -312,17 +359,32 @@ class ConfigWidget(ConfigWidgetBase, Ui_Form): self.icon_rules.clear() self.changed_signal.emit() self.set_cg_color(gprefs.defaults['cover_grid_color']) + self.set_cg_texture(gprefs.defaults['cover_grid_texture']) def change_cover_grid_color(self): - col = QColorDialog.getColor(self.cover_grid_color_label.palette().color(QPalette.Window), + col = QColorDialog.getColor(self.cg_bg_widget.bcol, self.gui, _('Choose background color for cover grid')) if col.isValid(): col = tuple(col.getRgb())[:3] self.set_cg_color(col) self.changed_signal.emit() + if self.cg_bg_widget.btex: + if question_dialog( + self, _('Remove background image?'), + _('There is currently a background image set, so the color' + ' you have chosen will not be visible. Remove the background image?')): + self.set_cg_texture(None) - def restore_cover_grid_color(self): + def change_cover_grid_texture(self): + from calibre.gui2.preferences.texture_chooser import TextureChooser + d = TextureChooser(parent=self, initial=self.cg_bg_widget.btex) + if d.exec_() == d.Accepted: + self.set_cg_texture(d.texture) + self.changed_signal.emit() + + def restore_cover_grid_appearance(self): self.set_cg_color(gprefs.defaults['cover_grid_color']) + self.set_cg_texture(gprefs.defaults['cover_grid_texture']) self.changed_signal.emit() def build_font_obj(self): @@ -383,7 +445,8 @@ class ConfigWidget(ConfigWidgetBase, Ui_Form): self.display_model.commit() self.edit_rules.commit(self.gui.current_db.prefs) self.icon_rules.commit(self.gui.current_db.prefs) - gprefs['cover_grid_color'] = tuple(self.cover_grid_color_label.palette().color(QPalette.Window).getRgb())[:3] + gprefs['cover_grid_color'] = tuple(self.cg_bg_widget.bcol.getRgb())[:3] + gprefs['cover_grid_texture'] = self.cg_bg_widget.btex return rr def refresh_gui(self, gui): diff --git a/src/calibre/gui2/preferences/look_feel.ui b/src/calibre/gui2/preferences/look_feel.ui index 774c017698..af09d6d50d 100644 --- a/src/calibre/gui2/preferences/look_feel.ui +++ b/src/calibre/gui2/preferences/look_feel.ui @@ -312,61 +312,12 @@ - - - - - Background color for the cover grid: - - - cover_grid_color_button - - - - - - - - 50 - 50 - - - - true - - - - - - - - - - Change &color - - - - - - - Restore &default color - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - + + + Background for the cover grid + + + diff --git a/src/calibre/gui2/preferences/texture_chooser.py b/src/calibre/gui2/preferences/texture_chooser.py new file mode 100644 index 0000000000..c48d274759 --- /dev/null +++ b/src/calibre/gui2/preferences/texture_chooser.py @@ -0,0 +1,146 @@ +#!/usr/bin/env python +# vim:fileencoding=utf-8 +from __future__ import (unicode_literals, division, absolute_import, + print_function) + +__license__ = 'GPL v3' +__copyright__ = '2013, Kovid Goyal ' + +import glob, os, string, shutil +from functools import partial +from PyQt4.Qt import ( + QDialog, QVBoxLayout, QListWidget, QListWidgetItem, Qt, QIcon, + QApplication, QSize, QPixmap, QDialogButtonBox, QTimer) + +from calibre.constants import config_dir +from calibre.gui2 import choose_files, error_dialog +from calibre.utils.icu import sort_key + +def texture_dir(): + ans = os.path.join(config_dir, 'textures') + if not os.path.exists(ans): + os.makedirs(ans) + return ans + +def texture_path(fname): + if not fname: + return + if fname.startswith(':'): + return I('textures/%s' % fname[1:]) + return os.path.join(texture_dir(), fname) + +class TextureChooser(QDialog): + + def __init__(self, parent=None, initial=None): + QDialog.__init__(self, parent) + self.setWindowTitle(_('Choose a texture')) + + self.l = l = QVBoxLayout() + self.setLayout(l) + + self.tdir = texture_dir() + + self.images = il = QListWidget(self) + il.itemDoubleClicked.connect(self.accept, type=Qt.QueuedConnection) + il.setIconSize(QSize(256, 256)) + il.setViewMode(il.IconMode) + il.setFlow(il.LeftToRight) + il.setSpacing(20) + il.setSelectionMode(il.SingleSelection) + il.itemSelectionChanged.connect(self.update_remove_state) + l.addWidget(il) + + self.bb = bb = QDialogButtonBox(QDialogButtonBox.Ok|QDialogButtonBox.Cancel) + bb.accepted.connect(self.accept) + bb.rejected.connect(self.reject) + b = self.add_button = bb.addButton(_('Add texture'), bb.ActionRole) + b.setIcon(QIcon(I('plus.png'))) + b.clicked.connect(self.add_texture) + b = self.remove_button = bb.addButton(_('Remove texture'), bb.ActionRole) + b.setIcon(QIcon(I('minus.png'))) + b.clicked.connect(self.remove_texture) + l.addWidget(bb) + + images = [{ + 'fname': ':'+os.path.basename(x), + 'path': x, + 'name': ' '.join(map(string.capitalize, os.path.splitext(os.path.basename(x))[0].split('_'))) + } for x in glob.glob(I('textures/*.png'))] + [{ + 'fname': os.path.basename(x), + 'path': x, + 'name': os.path.splitext(os.path.basename(x))[0], + } for x in glob.glob(os.path.join(self.tdir, '*')) if x.rpartition('.')[-1].lower() in {'jpeg', 'png', 'jpg'}] + + images.sort(key=lambda x:sort_key(x['name'])) + + map(self.create_item, images) + self.update_remove_state() + + if initial: + existing = {unicode(i.data(Qt.UserRole).toString()):i for i in (self.images.item(c) for c in xrange(self.images.count()))} + item = existing.get(initial, None) + if item is not None: + item.setSelected(True) + QTimer.singleShot(100, partial(il.scrollToItem, item)) + + self.resize(QSize(950, 650)) + + def create_item(self, data): + x = data + i = QListWidgetItem(QIcon(QPixmap(x['path']).scaled(256, 256, transformMode=Qt.SmoothTransformation)), x['name'], self.images) + i.setData(Qt.UserRole, x['fname']) + i.setData(Qt.UserRole+1, x['path']) + return i + + def update_remove_state(self): + removeable = bool(self.selected_fname and not self.selected_fname.startswith(':')) + self.remove_button.setEnabled(removeable) + + @property + def texture(self): + return self.selected_fname + + def add_texture(self): + path = choose_files(self, 'choose-texture-image', _('Choose Image'), + filters=[(_('Images'), ['jpeg', 'jpg', 'png'])], all_files=False, select_only_single_file=True) + if not path: + return + path = path[0] + fname = os.path.basename(path) + name = fname.rpartition('.')[0] + existing = {unicode(i.data(Qt.UserRole).toString()):i for i in (self.images.item(c) for c in xrange(self.images.count()))} + dest = os.path.join(self.tdir, fname) + with open(path, 'rb') as s, open(dest, 'wb') as f: + shutil.copyfileobj(s, f) + if fname in existing: + self.takeItem(existing[fname]) + data = {'fname': fname, 'path': dest, 'name': name} + i = self.create_item(data) + i.setSelected(True) + self.images.scrollToItem(i) + + @property + def selected_item(self): + for x in self.images.selectedItems(): + return x + + @property + def selected_fname(self): + try: + return unicode(self.selected_item.data(Qt.UserRole).toString()) + except (AttributeError, TypeError): + pass + + def remove_texture(self): + if not self.selected_fname: + return + if self.selected_fname.startswith(':'): + return error_dialog(self, _('Cannot remove'), + _('Cannot remover builtin textures'), show=True) + self.images.takeItem(self.images.row(self.selected_item)) + +if __name__ == '__main__': + app = QApplication([]) # noqa + d = TextureChooser() + d.exec_() + print (d.texture) From b49417adfdc26520bc9f98857577ef1556e96596 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Tue, 15 Oct 2013 11:45:52 +0530 Subject: [PATCH 18/51] Fix removal of textures not working Also credit subtlepatterns in the texture chooser dialog. --- src/calibre/gui2/preferences/texture_chooser.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/calibre/gui2/preferences/texture_chooser.py b/src/calibre/gui2/preferences/texture_chooser.py index c48d274759..e10d7d7233 100644 --- a/src/calibre/gui2/preferences/texture_chooser.py +++ b/src/calibre/gui2/preferences/texture_chooser.py @@ -10,7 +10,7 @@ import glob, os, string, shutil from functools import partial from PyQt4.Qt import ( QDialog, QVBoxLayout, QListWidget, QListWidgetItem, Qt, QIcon, - QApplication, QSize, QPixmap, QDialogButtonBox, QTimer) + QApplication, QSize, QPixmap, QDialogButtonBox, QTimer, QLabel) from calibre.constants import config_dir from calibre.gui2 import choose_files, error_dialog @@ -50,6 +50,10 @@ class TextureChooser(QDialog): il.itemSelectionChanged.connect(self.update_remove_state) l.addWidget(il) + self.ad = ad = QLabel(_('The builtin textures come from subtlepatterns.com.')) + ad.setOpenExternalLinks(True) + ad.setWordWrap(True) + l.addWidget(ad) self.bb = bb = QDialogButtonBox(QDialogButtonBox.Ok|QDialogButtonBox.Cancel) bb.accepted.connect(self.accept) bb.rejected.connect(self.reject) @@ -137,6 +141,7 @@ class TextureChooser(QDialog): if self.selected_fname.startswith(':'): return error_dialog(self, _('Cannot remove'), _('Cannot remover builtin textures'), show=True) + os.remove(unicode(self.selected_item.data(Qt.UserRole+1).toString())) self.images.takeItem(self.images.row(self.selected_item)) if __name__ == '__main__': From d1f35bebdfa167d1dfe679d4b917b5c802ba3244 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Tue, 15 Oct 2013 16:23:13 +0530 Subject: [PATCH 19/51] Hook up global undo/redo --- src/calibre/gui2/tweak_book/boss.py | 16 ++++++++++++++-- src/calibre/gui2/tweak_book/file_list.py | 4 ++-- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/calibre/gui2/tweak_book/boss.py b/src/calibre/gui2/tweak_book/boss.py index 1857e91900..fe7e56ada9 100644 --- a/src/calibre/gui2/tweak_book/boss.py +++ b/src/calibre/gui2/tweak_book/boss.py @@ -87,11 +87,23 @@ class Boss(QObject): set_current_container(nc) self.update_global_history_actions() + def apply_container_update_to_gui(self): + container = current_container() + self.gui.file_list.build(container) + self.update_global_history_actions() + # TODO: Apply to other GUI elements + def do_global_undo(self): - pass + container = self.global_undo.undo() + if container is not None: + set_current_container(container) + self.apply_container_update_to_gui() def do_global_redo(self): - pass + container = self.global_undo.redo() + if container is not None: + set_current_container(container) + self.apply_container_update_to_gui() def delete_requested(self, spine_items, other_items): if not self.check_dirtied(): diff --git a/src/calibre/gui2/tweak_book/file_list.py b/src/calibre/gui2/tweak_book/file_list.py index 910aaaed80..1fc2eb4cb4 100644 --- a/src/calibre/gui2/tweak_book/file_list.py +++ b/src/calibre/gui2/tweak_book/file_list.py @@ -96,11 +96,11 @@ class FileList(QTreeWidget): return s def set_state(self, state): - for category, item in self.categories: + for category, item in self.categories.iteritems(): item.setExpanded(category in state['expanded']) self.verticalScrollBar().setValue(state['pos']) for parent in self.categories.itervalues(): - for c in (parent.child(i) for i in parent.childCount()): + for c in (parent.child(i) for i in xrange(parent.childCount())): name = unicode(c.data(0, NAME_ROLE).toString()) if name in state['selected']: c.setSelected(True) From 4768f29bf2d18dd0d8e10e8a0a89e5ede682186f Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Tue, 15 Oct 2013 20:49:10 +0530 Subject: [PATCH 20/51] Update Wired Magazine --- recipes/wired.recipe | 112 ++++++++++++++++++++----------------------- 1 file changed, 53 insertions(+), 59 deletions(-) diff --git a/recipes/wired.recipe b/recipes/wired.recipe index 965d8a82ac..aacbd903d9 100644 --- a/recipes/wired.recipe +++ b/recipes/wired.recipe @@ -1,9 +1,8 @@ __license__ = 'GPL v3' -__copyright__ = '2012, mkydgr' +__copyright__ = '2010-2013, Darko Miletic ' ''' www.wired.com -based on the (broken) built-in recipe by Darko Miletic ''' import re @@ -12,12 +11,11 @@ from calibre.web.feeds.news import BasicNewsRecipe class Wired(BasicNewsRecipe): title = 'Wired Magazine' - __author__ = 'mkydgr' - description = 'Technology News' + __author__ = 'Darko Miletic' + description = 'Gaming news' publisher = 'Conde Nast Digital' - category = '' - oldest_article = 500 - delay = 1 + category = 'news, games, IT, gadgets' + oldest_article = 32 max_articles_per_feed = 100 no_stylesheets = True encoding = 'utf-8' @@ -25,10 +23,16 @@ class Wired(BasicNewsRecipe): masthead_url = 'http://www.wired.com/images/home/wired_logo.gif' language = 'en' publication_type = 'magazine' - extra_css = ' body{font-family: Arial,Verdana,sans-serif} .entryDescription li {display: inline; list-style-type: none} ' - index = 'http://www.wired.com/magazine' - departments = ['features','start','test','play','found', 'reviews'] - + extra_css = """ + h1, .entry-header{font-family: brandon-grotesque,anchor-web,Helvetica,Arial,sans-serif} + .entry-header{display: block;} + .entry-header ul{ list-style-type:disc;} + .author, .entryDate, .entryTime, .entryEdit, .entryCategories{display: inline} + .entry-header li{text-transform: uppercase;} + div#container{font-family: 'Exchange SSm 4r', Georgia, serif} + """ + index = 'http://www.wired.com/magazine/' + preprocess_regexps = [(re.compile(r'', re.DOTALL|re.IGNORECASE),lambda match: '')] conversion_options = { 'comment' : description @@ -38,56 +42,37 @@ class Wired(BasicNewsRecipe): } keep_only_tags = [dict(name='div', attrs={'class':'post'})] - remove_tags_after = dict(name='div', attrs={'class':'tweetmeme_button'}) + remove_tags_after = dict(name='div', attrs={'id':'container'}) remove_tags = [ - dict(name=['object','embed','iframe','link']) - ,dict(name='div', attrs={'class':['podcast_storyboard','tweetmeme_button']}) + dict(name=['object','embed','iframe','link','meta','base']) + ,dict(name='div', attrs={'class':['social-top','podcast_storyboard','tweetmeme_button']}) ,dict(attrs={'id':'ff_bottom_nav'}) ,dict(name='a',attrs={'href':'http://www.wired.com/app'}) + ,dict(name='div', attrs={'id':'mag-bug'}) ] - remove_attributes = ['height','width'] + remove_attributes = ['height','width','lang','border','clear'] def parse_index(self): totalfeeds = [] - soup = self.index_to_soup(self.index) - - #department feeds - depts = soup.find('div',attrs={'id':'department-posts'}) - - if depts: - for ditem in self.departments: - darticles = [] - department = depts.find('h3',attrs={'id':'department-'+ditem}) - if department: - #print '\n###### Found department %s ########'%(ditem) - - el = department.next - while el and (el.__class__.__name__ == 'NavigableString' or el.name != 'h3'): - if el.__class__.__name__ != 'NavigableString': - #print '\t ... element',el.name - if el.name == 'ul': - for artitem in el.findAll('li'): - #print '\t\t ... article',repr(artitem) - feed_link = artitem.find('a') - #print '\t\t\t ... link',repr(feed_link) - if feed_link and feed_link.has_key('href'): - url = self.makeurl(feed_link['href']) - title = self.tag_to_string(feed_link) - date = strftime(self.timefmt) - #print '\t\t ... found "%s" %s'%(title,url) - darticles.append({ - 'title' :title - ,'date' :date - ,'url' :url - ,'description':'' - }) - el = None - else: - el = el.next - - totalfeeds.append((ditem.capitalize(), darticles)) + majorf = soup.find('div',attrs={'class':'entry'}) + if majorf: + articles = [] + checker = [] + for a in majorf.findAll('a', href=True): + if a['href'].startswith('http://www.wired.com/') and a['href'].endswith('/'): + title = self.tag_to_string(a) + url = a['href'] + if title.lower() != 'read more' and url not in checker: + checker.append(url) + articles.append({ + 'title' :title + ,'date' :strftime(self.timefmt) + ,'url' :a['href'] + ,'description':'' + }) + totalfeeds.append(('Articles', articles)) return totalfeeds def get_cover_url(self): @@ -95,7 +80,7 @@ class Wired(BasicNewsRecipe): soup = self.index_to_soup(self.index) cover_item = soup.find('div',attrs={'class':'spread-image'}) if cover_item: - cover_url = self.makeurl(cover_item.a.img['src']) + cover_url = 'http://www.wired.com' + cover_item.a.img['src'] return cover_url def print_version(self, url): @@ -104,10 +89,19 @@ class Wired(BasicNewsRecipe): def preprocess_html(self, soup): for item in soup.findAll(style=True): del item['style'] + for item in soup.findAll('a'): + if item.string is not None: + tstr = item.string + item.replaceWith(tstr) + else: + item.name='span' + for atrs in ['href','target','alt','title','name','id']: + if item.has_key(atrs): + del item[atrs] + for item in soup.findAll('img'): + if not item.has_key('alt'): + item['alt'] = 'image' + if item.has_key('data-lazy-src'): + item['src'] = item['data-lazy-src'] + del item['data-lazy-src'] return soup - - def makeurl(self, addr): - if addr[:4] != 'http' : addr='http://www.wired.com' + addr - while addr[-2:] == '//' : addr=addr[:-1] - return addr - From bec396158afb520b487adf6091df42bdbf3eb18c Mon Sep 17 00:00:00 2001 From: Kovid Goyal <kovid@kovidgoyal.net> Date: Tue, 15 Oct 2013 22:03:43 +0530 Subject: [PATCH 21/51] Update Wall Street Journal See #1239477 (Private bug) --- recipes/wsj.recipe | 49 +++++++-------------- recipes/wsj_free.recipe | 98 +++++++++++++++++++---------------------- 2 files changed, 61 insertions(+), 86 deletions(-) diff --git a/recipes/wsj.recipe b/recipes/wsj.recipe index 8c68668745..c138fb2a04 100644 --- a/recipes/wsj.recipe +++ b/recipes/wsj.recipe @@ -8,17 +8,10 @@ import copy # http://online.wsj.com/page/us_in_todays_paper.html -def filter_classes(x): - if not x: - return False - bad_classes = {'articleInsetPoll', 'trendingNow', 'sTools', 'printSummary', 'mostPopular', 'relatedCollection'} - classes = frozenset(x.split()) - return len(bad_classes.intersection(classes)) > 0 - class WallStreetJournal(BasicNewsRecipe): title = 'The Wall Street Journal' - __author__ = 'Kovid Goyal, Sujata Raman, and Joshua Oster-Morris' + __author__ = 'Kovid Goyal and Joshua Oster-Morris' description = 'News and current affairs' needs_subscription = True language = 'en' @@ -39,23 +32,16 @@ class WallStreetJournal(BasicNewsRecipe): .byline{color:blue;font-family:Arial,Helvetica,sans-serif; font-size:xx-small} h6{color:#333333; font-family:Georgia,"Century Schoolbook","Times New Roman",Times,serif; font-size:small;font-style:italic; } .paperLocation{color:#666666; font-size:xx-small}''' - - remove_tags_before = dict(name='h1') + keep_only_tags = [ + dict(name='h1'), dict(name='h2', attrs={'class':['subhead', 'subHed deck']}), + dict(name='span', itemprop='author', rel='author'), + dict(name='article', id='articleBody'), + dict(name='div', id='article_story_body'), + ] remove_tags = [ - dict(id=["articleTabs_tab_article", - "articleTabs_tab_comments", 'msnLinkback', 'yahooLinkback', - 'articleTabs_panel_comments', 'footer', 'emailThisScrim', 'emailConfScrim', 'emailErrorScrim', - "articleTabs_tab_interactive", "articleTabs_tab_video", - "articleTabs_tab_map", "articleTabs_tab_slideshow", - "articleTabs_tab_quotes", "articleTabs_tab_document", - "printModeAd", "aFbLikeAuth", "videoModule", - "mostRecommendations", "topDiscussions"]), - {'class':['footer_columns','hidden', 'network','insetCol3wide','interactive','video','slideshow','map','insettip', - 'insetClose','more_in', "insetContent", 'articleTools_bottom', 'aTools', "tooltip", "adSummary", "nav-inline"]}, - dict(rel='shortcut icon'), - {'class':filter_classes}, - ] - remove_tags_after = [dict(id="article_story_body"), {'class':"article story"},] + dict(attrs={'class':['insetButton', 'insettipBox']}), + dict(name='span', attrs={'data-country-code':True, 'data-ticker-code':True}), + ] use_javascript_to_login = True @@ -72,15 +58,12 @@ class WallStreetJournal(BasicNewsRecipe): if picdiv is not None: self.add_toc_thumbnail(article,picdiv['src']) - def postprocess_html(self, soup, first): - for tag in soup.findAll(name=['table', 'tr', 'td']): - tag.name = 'div' - - for tag in soup.findAll('div', dict(id=[ - "articleThumbnail_1", "articleThumbnail_2", "articleThumbnail_3", - "articleThumbnail_4", "articleThumbnail_5", "articleThumbnail_6", - "articleThumbnail_7"])): - tag.extract() + def preprocess_html(self, soup): + # Remove thumbnail for zoomable images + for div in soup.findAll('div', attrs={'class':lambda x: x and 'insetZoomTargetBox' in x.split()}): + img = div.find('img') + if img is not None: + img.extract() return soup diff --git a/recipes/wsj_free.recipe b/recipes/wsj_free.recipe index 5f3cf476c7..eea9789f79 100644 --- a/recipes/wsj_free.recipe +++ b/recipes/wsj_free.recipe @@ -33,21 +33,16 @@ class WallStreetJournal(BasicNewsRecipe): h6{color:#333333; font-family:Georgia,"Century Schoolbook","Times New Roman",Times,serif; font-size:small;font-style:italic; } .paperLocation{color:#666666; font-size:xx-small}''' - remove_tags_before = dict(name='h1') + keep_only_tags = [ + dict(name='h1'), dict(name='h2', attrs={'class':['subhead', 'subHed deck']}), + dict(name='span', itemprop='author', rel='author'), + dict(name='article', id='articleBody'), + dict(name='div', id='article_story_body'), + ] remove_tags = [ - dict(id=["articleTabs_tab_article", - "articleTabs_tab_comments", - "articleTabs_tab_interactive","articleTabs_tab_video","articleTabs_tab_map","articleTabs_tab_slideshow", - "articleTabs_tab_quotes"]), - {'class':['footer_columns','network','insetCol3wide','interactive','video','slideshow','map','insettip','insetClose','more_in', "insetContent", 'articleTools_bottom', 'aTools', "tooltip", "adSummary", "nav-inline"]}, - dict(name='div', attrs={'data-flash-settings':True}), - {'class':['insetContent embedType-interactive insetCol3wide','insetCol6wide','insettipUnit']}, - dict(rel='shortcut icon'), - {'class':lambda x: x and 'sTools' in x}, - {'class':lambda x: x and 'printSummary' in x}, - {'class':lambda x: x and 'mostPopular' in x}, - ] - remove_tags_after = [dict(id="article_story_body"), {'class':"article story"},] + dict(attrs={'class':['insetButton', 'insettipBox']}), + dict(name='span', attrs={'data-country-code':True, 'data-ticker-code':True}), + ] def populate_article_metadata(self, article, soup, first): if first and hasattr(self, 'add_toc_thumbnail'): @@ -55,12 +50,12 @@ class WallStreetJournal(BasicNewsRecipe): if picdiv is not None: self.add_toc_thumbnail(article,picdiv['src']) - def postprocess_html(self, soup, first): - for tag in soup.findAll(name=['table', 'tr', 'td']): - tag.name = 'div' - - for tag in soup.findAll('div', dict(id=["articleThumbnail_1", "articleThumbnail_2", "articleThumbnail_3", "articleThumbnail_4", "articleThumbnail_5", "articleThumbnail_6", "articleThumbnail_7"])): - tag.extract() + def preprocess_html(self, soup): + # Remove thumbnail for zoomable images + for div in soup.findAll('div', attrs={'class':lambda x: x and 'insetZoomTargetBox' in x.split()}): + img = div.find('img') + if img is not None: + img.extract() return soup @@ -69,7 +64,6 @@ class WallStreetJournal(BasicNewsRecipe): href = 'http://online.wsj.com' + href return href - def wsj_get_index(self): return self.index_to_soup('http://online.wsj.com/itp') @@ -83,7 +77,7 @@ class WallStreetJournal(BasicNewsRecipe): except: articles = [] if articles: - feeds.append((title, articles)) + feeds.append((title, articles)) return feeds def parse_index(self): @@ -99,16 +93,16 @@ class WallStreetJournal(BasicNewsRecipe): for a in div.findAll('a', href=lambda x: x and '/itp/' in x): pageone = a['href'].endswith('pageone') if pageone: - title = 'Front Section' - url = self.abs_wsj_url(a['href']) - feeds = self.wsj_add_feed(feeds,title,url) - title = 'What''s News' - url = url.replace('pageone','whatsnews') - feeds = self.wsj_add_feed(feeds,title,url) + title = 'Front Section' + url = self.abs_wsj_url(a['href']) + feeds = self.wsj_add_feed(feeds,title,url) + title = 'What''s News' + url = url.replace('pageone','whatsnews') + feeds = self.wsj_add_feed(feeds,title,url) else: - title = self.tag_to_string(a) - url = self.abs_wsj_url(a['href']) - feeds = self.wsj_add_feed(feeds,title,url) + title = self.tag_to_string(a) + url = self.abs_wsj_url(a['href']) + feeds = self.wsj_add_feed(feeds,title,url) return feeds def wsj_find_wn_articles(self, url): @@ -117,21 +111,21 @@ class WallStreetJournal(BasicNewsRecipe): whats_news = soup.find('div', attrs={'class':lambda x: x and 'whatsNews-simple' in x}) if whats_news is not None: - for a in whats_news.findAll('a', href=lambda x: x and '/article/' in x): - container = a.findParent(['p']) - meta = a.find(attrs={'class':'meta_sectionName'}) - if meta is not None: - meta.extract() - title = self.tag_to_string(a).strip() - url = a['href'] - desc = '' - if container is not None: - desc = self.tag_to_string(container) + for a in whats_news.findAll('a', href=lambda x: x and '/article/' in x): + container = a.findParent(['p']) + meta = a.find(attrs={'class':'meta_sectionName'}) + if meta is not None: + meta.extract() + title = self.tag_to_string(a).strip() + url = a['href'] + desc = '' + if container is not None: + desc = self.tag_to_string(container) - articles.append({'title':title, 'url':url, - 'description':desc, 'date':''}) + articles.append({'title':title, 'url':url, + 'description':desc, 'date':''}) - self.log('\tFound WN article:', title) + self.log('\tFound WN article:', title) return articles @@ -140,18 +134,18 @@ class WallStreetJournal(BasicNewsRecipe): whats_news = soup.find('div', attrs={'class':lambda x: x and 'whatsNews-simple' in x}) if whats_news is not None: - whats_news.extract() + whats_news.extract() articles = [] flavorarea = soup.find('div', attrs={'class':lambda x: x and 'ahed' in x}) if flavorarea is not None: - flavorstory = flavorarea.find('a', href=lambda x: x and x.startswith('/article')) - if flavorstory is not None: - flavorstory['class'] = 'mjLinkItem' - metapage = soup.find('span', attrs={'class':lambda x: x and 'meta_sectionName' in x}) - if metapage is not None: - flavorstory.append( copy.copy(metapage) ) #metapage should always be A1 because that should be first on the page + flavorstory = flavorarea.find('a', href=lambda x: x and x.startswith('/article')) + if flavorstory is not None: + flavorstory['class'] = 'mjLinkItem' + metapage = soup.find('span', attrs={'class':lambda x: x and 'meta_sectionName' in x}) + if metapage is not None: + flavorstory.append(copy.copy(metapage)) # metapage should always be A1 because that should be first on the page for a in soup.findAll('a', attrs={'class':'mjLinkItem'}, href=True): container = a.findParent(['li', 'div']) @@ -176,5 +170,3 @@ class WallStreetJournal(BasicNewsRecipe): self.log('\tFound article:', title) return articles - - From c58e7eb2e8a57bd1f8f768f88a7ab98d42f533fe Mon Sep 17 00:00:00 2001 From: Kovid Goyal <kovid@kovidgoyal.net> Date: Wed, 16 Oct 2013 10:03:21 +0530 Subject: [PATCH 22/51] Implement saving of main window state and quit action --- src/calibre/gui2/tweak_book/__init__.py | 2 ++ src/calibre/gui2/tweak_book/boss.py | 28 +++++++++++++++--- src/calibre/gui2/tweak_book/ui.py | 39 +++++++++++++++++++++++-- 3 files changed, 63 insertions(+), 6 deletions(-) diff --git a/src/calibre/gui2/tweak_book/__init__.py b/src/calibre/gui2/tweak_book/__init__.py index 72e61e5ae1..63519c9bea 100644 --- a/src/calibre/gui2/tweak_book/__init__.py +++ b/src/calibre/gui2/tweak_book/__init__.py @@ -6,6 +6,8 @@ from __future__ import (unicode_literals, division, absolute_import, __license__ = 'GPL v3' __copyright__ = '2013, Kovid Goyal <kovid at kovidgoyal.net>' +from calibre.utils.config import JSONConfig +tprefs = JSONConfig('tweak_book_gui') _current_container = None diff --git a/src/calibre/gui2/tweak_book/boss.py b/src/calibre/gui2/tweak_book/boss.py index fe7e56ada9..0b6eb73944 100644 --- a/src/calibre/gui2/tweak_book/boss.py +++ b/src/calibre/gui2/tweak_book/boss.py @@ -8,13 +8,13 @@ __copyright__ = '2013, Kovid Goyal <kovid at kovidgoyal.net>' import tempfile, shutil -from PyQt4.Qt import QObject +from PyQt4.Qt import QObject, QApplication from calibre.gui2 import error_dialog, choose_files from calibre.ptempfile import PersistentTemporaryDirectory from calibre.ebooks.oeb.polish.main import SUPPORTED from calibre.ebooks.oeb.polish.container import get_container, clone_container -from calibre.gui2.tweak_book import set_current_container, current_container +from calibre.gui2.tweak_book import set_current_container, current_container, tprefs from calibre.gui2.tweak_book.undo import GlobalUndoHistory class Boss(QObject): @@ -72,14 +72,15 @@ class Boss(QObject): self.global_undo.open_book(container) self.gui.update_window_title() self.gui.file_list.build(container, preserve_state=False) + self.gui.action_save.setEnabled(False) self.update_global_history_actions() def update_global_history_actions(self): gu = self.global_undo - for x, text in (('undo', _('&Undo')), ('redo', '&Redo')): + for x, text in (('undo', _('&Revert to before')), ('redo', '&Revert to after')): ac = getattr(self.gui, 'action_global_%s' % x) ac.setEnabled(getattr(gu, 'can_' + x)) - ac.setText(text + ' ' + getattr(gu, x + '_msg')) + ac.setText(text + ' ' + (getattr(gu, x + '_msg') or '...')) def add_savepoint(self, msg): nc = clone_container(current_container(), self.mkdtemp()) @@ -113,6 +114,25 @@ class Boss(QObject): c.remove_from_spine(spine_items) for name in other_items: c.remove_item(name) + self.gui.action_save.setEnabled(True) self.gui.file_list.delete_done(spine_items, other_items) + # TODO: Update other GUI elements + def save_book(self): + pass + def quit(self): + if not self.confirm_quit(): + return + self.save_state() + QApplication.instance().quit() + + def confirm_quit(self): + return True + + def shutdown(self): + self.save_state() + + def save_state(self): + with tprefs: + self.gui.save_state() diff --git a/src/calibre/gui2/tweak_book/ui.py b/src/calibre/gui2/tweak_book/ui.py index 93275368a6..bd8b90b2c4 100644 --- a/src/calibre/gui2/tweak_book/ui.py +++ b/src/calibre/gui2/tweak_book/ui.py @@ -6,10 +6,10 @@ from __future__ import (unicode_literals, division, absolute_import, __license__ = 'GPL v3' __copyright__ = '2013, Kovid Goyal <kovid at kovidgoyal.net>' -from PyQt4.Qt import QDockWidget, Qt, QLabel, QIcon, QAction +from PyQt4.Qt import QDockWidget, Qt, QLabel, QIcon, QAction, QApplication from calibre.gui2.main_window import MainWindow -from calibre.gui2.tweak_book import current_container +from calibre.gui2.tweak_book import current_container, tprefs from calibre.gui2.tweak_book.file_list import FileListWidget from calibre.gui2.tweak_book.job import BlockingJob from calibre.gui2.tweak_book.boss import Boss @@ -18,6 +18,7 @@ from calibre.gui2.keyboard import Manager as KeyboardManager class Main(MainWindow): APP_NAME = _('Tweak Book') + STATE_VERSION = 0 def __init__(self, opts): MainWindow.__init__(self, opts, disable_automatic_gc=True) @@ -41,6 +42,9 @@ class Main(MainWindow): self.setCentralWidget(self.l) self.boss(self) + g = QApplication.instance().desktop().availableGeometry(self) + self.resize(g.width()-50, g.height()-50) + self.restore_state() self.keyboard.finalize() @@ -62,12 +66,17 @@ class Main(MainWindow): _('Revert book to before the last action (Undo)')) self.action_global_redo = reg('forward.png', _('&Revert to after'), self.boss.do_global_redo, 'global-redo', 'Ctrl+Right', _('Revert book state to after the next action (Redo)')) + self.action_save = reg('save.png', _('&Save'), self.boss.save_book, 'save-book', 'Ctrl+S', _('Save book')) + self.action_save.setEnabled(False) + self.action_quit = reg('quit.png', _('&Quit'), self.boss.quit, 'quit', 'Ctrl+Q', _('Quit')) def create_menubar(self): b = self.menuBar() f = b.addMenu(_('&File')) f.addAction(self.action_open_book) + f.addAction(self.action_save) + f.addAction(self.action_quit) e = b.addMenu(_('&Edit')) e.addAction(self.action_global_undo) @@ -75,12 +84,15 @@ class Main(MainWindow): def create_toolbar(self): self.global_bar = b = self.addToolBar(_('Global')) + b.setObjectName('global_bar') # Needed for saveState b.addAction(self.action_open_book) b.addAction(self.action_global_undo) b.addAction(self.action_global_redo) + b.addAction(self.action_save) def create_docks(self): self.file_list_dock = d = QDockWidget(_('&Files Browser'), self) + d.setObjectName('file_list_dock') # Needed for saveState d.setAllowedAreas(Qt.LeftDockWidgetArea | Qt.RightDockWidgetArea) self.file_list = FileListWidget(d) d.setWidget(self.file_list) @@ -92,3 +104,26 @@ class Main(MainWindow): def update_window_title(self): self.setWindowTitle(self.current_metadata.title + ' [%s] - %s' %(current_container().book_type.upper(), self.APP_NAME)) + + def closeEvent(self, e): + if not self.boss.confirm_quit(): + e.ignore() + return + try: + self.boss.shutdown() + except: + import traceback + traceback.print_exc() + e.accept() + + def save_state(self): + tprefs.set('main_window_geometry', bytearray(self.saveGeometry())) + tprefs.set('main_window_state', bytearray(self.saveState(self.STATE_VERSION))) + + def restore_state(self): + geom = tprefs.get('main_window_geometry', None) + if geom is not None: + self.restoreGeometry(geom) + state = tprefs.get('main_window_state', None) + if state is not None: + self.restoreState(state, self.STATE_VERSION) From f11ab7d0c3ab1b32076f66ed36997cf3321a1309 Mon Sep 17 00:00:00 2001 From: Kovid Goyal <kovid@kovidgoyal.net> Date: Wed, 16 Oct 2013 11:19:38 +0530 Subject: [PATCH 23/51] Use same code for initializing CC comments editor as for builtin comments editor --- src/calibre/gui2/custom_column_widgets.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/calibre/gui2/custom_column_widgets.py b/src/calibre/gui2/custom_column_widgets.py index 4223a638f2..5cbd318ee9 100644 --- a/src/calibre/gui2/custom_column_widgets.py +++ b/src/calibre/gui2/custom_column_widgets.py @@ -234,9 +234,12 @@ class Comments(Base): self.widgets = [self._box] def setter(self, val): - if val is None: + if not val or not val.strip(): val = '' - self._tb.html = comments_to_html(val) + else: + val = comments_to_html(val) + self._tb.html = val + self._tb.wyswyg_dirtied() def getter(self): val = unicode(self._tb.html).strip() From e60dce0133ef1505f9961680f9195d893da76d82 Mon Sep 17 00:00:00 2001 From: Kovid Goyal <kovid@kovidgoyal.net> Date: Wed, 16 Oct 2013 13:22:34 +0530 Subject: [PATCH 24/51] Properly initialize standalone comments editing box --- src/calibre/gui2/dialogs/comments_dialog.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/calibre/gui2/dialogs/comments_dialog.py b/src/calibre/gui2/dialogs/comments_dialog.py index 2734a1bd21..eee23f4b3e 100644 --- a/src/calibre/gui2/dialogs/comments_dialog.py +++ b/src/calibre/gui2/dialogs/comments_dialog.py @@ -18,8 +18,8 @@ class CommentsDialog(QDialog, Ui_CommentsDialog): self.setWindowFlags(self.windowFlags()&(~Qt.WindowContextHelpButtonHint)) self.setWindowIcon(icon) - if text is not None: - self.textbox.html = comments_to_html(text) + self.textbox.html = comments_to_html(text) if text else '' + self.textbox.wyswyg_dirtied() # self.textbox.setTabChangesFocus(True) self.buttonBox.button(QDialogButtonBox.Ok).setText(_('&OK')) self.buttonBox.button(QDialogButtonBox.Cancel).setText(_('&Cancel')) From 8cc9440847c0942dc5e6595274615506b820e6d4 Mon Sep 17 00:00:00 2001 From: Kovid Goyal <kovid@kovidgoyal.net> Date: Wed, 16 Oct 2013 13:53:17 +0530 Subject: [PATCH 25/51] Move join_with_timeout into the utils module --- src/calibre/gui2/library/alternate_views.py | 13 +------------ src/calibre/utils/__init__.py | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/src/calibre/gui2/library/alternate_views.py b/src/calibre/gui2/library/alternate_views.py index 75178b09a7..44c361e129 100644 --- a/src/calibre/gui2/library/alternate_views.py +++ b/src/calibre/gui2/library/alternate_views.py @@ -8,7 +8,6 @@ __copyright__ = '2013, Kovid Goyal <kovid at kovidgoyal.net>' import itertools, operator, os from types import MethodType -from time import time from threading import Event, Thread from Queue import LifoQueue from functools import wraps, partial @@ -23,6 +22,7 @@ from PyQt4.Qt import ( from calibre import fit_image, prints, prepare_string_for_xml from calibre.ebooks.metadata import fmt_sidx +from calibre.utils import join_with_timeout from calibre.gui2 import gprefs, config from calibre.gui2.library.caches import CoverCache, ThumbnailCache from calibre.utils.config import prefs, tweaks @@ -482,17 +482,6 @@ class CoverDelegate(QStyledItemDelegate): return True return False -def join_with_timeout(q, timeout=2): - q.all_tasks_done.acquire() - try: - endtime = time() + timeout - while q.unfinished_tasks: - remaining = endtime - time() - if remaining <= 0.0: - raise RuntimeError('Waiting for queue to clear timed out') - q.all_tasks_done.wait(remaining) - finally: - q.all_tasks_done.release() # }}} # The View {{{ diff --git a/src/calibre/utils/__init__.py b/src/calibre/utils/__init__.py index 48f75c0428..ae68ee3b9b 100644 --- a/src/calibre/utils/__init__.py +++ b/src/calibre/utils/__init__.py @@ -7,3 +7,19 @@ __docformat__ = 'restructuredtext en' Miscelleaneous utilities. ''' +from time import time + +def join_with_timeout(q, timeout=2): + ''' Join the queue q with a specified timeout. Blocks until all tasks on + the queue are done or times out with a runtime error. ''' + q.all_tasks_done.acquire() + try: + endtime = time() + timeout + while q.unfinished_tasks: + remaining = endtime - time() + if remaining <= 0.0: + raise RuntimeError('Waiting for queue to clear timed out') + q.all_tasks_done.wait(remaining) + finally: + q.all_tasks_done.release() + From f4d132b8230234d69d2227c1d72a797418e14513 Mon Sep 17 00:00:00 2001 From: Kovid Goyal <kovid@kovidgoyal.net> Date: Wed, 16 Oct 2013 16:12:53 +0530 Subject: [PATCH 26/51] Start work on saving --- src/calibre/gui2/tweak_book/boss.py | 10 ++- src/calibre/gui2/tweak_book/save.py | 125 ++++++++++++++++++++++++++++ src/calibre/gui2/tweak_book/ui.py | 6 ++ 3 files changed, 139 insertions(+), 2 deletions(-) create mode 100644 src/calibre/gui2/tweak_book/save.py diff --git a/src/calibre/gui2/tweak_book/boss.py b/src/calibre/gui2/tweak_book/boss.py index 0b6eb73944..076f6edb82 100644 --- a/src/calibre/gui2/tweak_book/boss.py +++ b/src/calibre/gui2/tweak_book/boss.py @@ -16,14 +16,16 @@ from calibre.ebooks.oeb.polish.main import SUPPORTED from calibre.ebooks.oeb.polish.container import get_container, clone_container from calibre.gui2.tweak_book import set_current_container, current_container, tprefs from calibre.gui2.tweak_book.undo import GlobalUndoHistory +from calibre.gui2.tweak_book.save import SaveManager class Boss(QObject): - def __init__(self, parent=None): + def __init__(self, parent): QObject.__init__(self, parent) self.global_undo = GlobalUndoHistory() self.container_count = 0 self.tdir = None + self.save_manager = SaveManager(parent) def __call__(self, gui): self.gui = gui @@ -40,6 +42,7 @@ class Boss(QObject): def open_book(self, path=None): if not self.check_dirtied(): return + # TODO: Check if a save is in progress and abort if it is if not hasattr(path, 'rpartition'): path = choose_files(self.gui, 'open-book-for-tweaking', _('Choose book'), @@ -119,7 +122,10 @@ class Boss(QObject): # TODO: Update other GUI elements def save_book(self): - pass + self.gui.action_save.setEnabled(False) + tdir = tempfile.mkdtemp(prefix='save-%05d-' % self.container_count, dir=self.tdir) + container = clone_container(current_container(), tdir) + self.save_manager.schedule(tdir, container) def quit(self): if not self.confirm_quit(): diff --git a/src/calibre/gui2/tweak_book/save.py b/src/calibre/gui2/tweak_book/save.py new file mode 100644 index 0000000000..c18ce6de11 --- /dev/null +++ b/src/calibre/gui2/tweak_book/save.py @@ -0,0 +1,125 @@ +#!/usr/bin/env python +# vim:fileencoding=utf-8 +from __future__ import (unicode_literals, division, absolute_import, + print_function) + +__license__ = 'GPL v3' +__copyright__ = '2013, Kovid Goyal <kovid at kovidgoyal.net>' + +import shutil +from threading import Thread +from Queue import LifoQueue, Empty + +from PyQt4.Qt import (QObject, pyqtSignal, QLabel, QWidget, QHBoxLayout, Qt) + +from calibre.utils import join_with_timeout +from calibre.gui2.progress_indicator import ProgressIndicator + +class SaveWidget(QWidget): + + def __init__(self, parent=None): + QWidget.__init__(self, parent) + self.l = l = QHBoxLayout(self) + self.setLayout(l) + self.label = QLabel('') + self.pi = ProgressIndicator(self, 24) + l.addWidget(self.label) + l.addWidget(self.pi) + l.setContentsMargins(0, 0, 0, 0) + self.pi.setVisible(False) + self.stop() + + def start(self): + self.pi.setVisible(True) + self.pi.startAnimation() + self.label.setText(_('Saving...')) + + def stop(self): + self.pi.setVisible(False) + self.pi.stopAnimation() + self.label.setText(_('Saved')) + +class SaveManager(QObject): + + start_save = pyqtSignal() + report_error = pyqtSignal(object) + save_done = pyqtSignal() + + def __init__(self, parent): + QObject.__init__(self, parent) + self.count = 0 + self.last_saved = -1 + self.requests = LifoQueue() + t = Thread(name='save-thread', target=self.run) + t.daemon = True + t.start() + self.status_widget = w = SaveWidget(parent) + self.start_save.connect(w.start, type=Qt.QueuedConnection) + self.save_done.connect(w.stop, type=Qt.QueuedConnection) + + def schedule(self, tdir, container): + self.count += 1 + self.requests.put((self.count, tdir, container)) + + def run(self): + while True: + x = self.requests.get() + if x is None: + self.requests.task_done() + self.__empty_queue() + break + try: + count, tdir, container = x + self.process_save(count, tdir, container) + except: + import traceback + traceback.print_exc() + finally: + self.requests.task_done() + + def __empty_queue(self): + ' Only to be used during shutdown ' + while True: + try: + self.requests.get_nowait() + except Empty: + break + else: + self.requests.task_done() + + def process_save(self, count, tdir, container): + if count <= self.last_saved: + shutil.rmtree(tdir, ignore_errors=True) + return + self.last_saved = count + self.start_save.emit() + try: + self.do_save(tdir, container) + except: + import traceback + self.report_error.emit(traceback.format_exc()) + self.save_done.emit() + + def do_save(self, tdir, container): + try: + import time + time.sleep(10) + finally: + shutil.rmtree(tdir, ignore_errors=True) + + @property + def has_tasks(self): + return bool(self.requests.unfinished_tasks) + + def wait(self, timeout=30): + if timeout is None: + self.requests.join() + else: + try: + join_with_timeout(self.requests, timeout) + except RuntimeError: + return False + return True + + def shutdown(self): + self.requests.put(None) diff --git a/src/calibre/gui2/tweak_book/ui.py b/src/calibre/gui2/tweak_book/ui.py index bd8b90b2c4..66ffd5ce54 100644 --- a/src/calibre/gui2/tweak_book/ui.py +++ b/src/calibre/gui2/tweak_book/ui.py @@ -8,6 +8,7 @@ __copyright__ = '2013, Kovid Goyal <kovid at kovidgoyal.net>' from PyQt4.Qt import QDockWidget, Qt, QLabel, QIcon, QAction, QApplication +from calibre.constants import __appname__, get_version from calibre.gui2.main_window import MainWindow from calibre.gui2.tweak_book import current_container, tprefs from calibre.gui2.tweak_book.file_list import FileListWidget @@ -39,6 +40,11 @@ class Main(MainWindow): self.status_bar = self.statusBar() self.l = QLabel('Placeholder') + self.status_bar.addPermanentWidget(self.boss.save_manager.status_widget) + self.status_bar.addWidget(QLabel(_('%s %s created by %s') % (__appname__, get_version(), 'Kovid Goyal'))) + f = self.status_bar.font() + f.setBold(True) + self.status_bar.setFont(f) self.setCentralWidget(self.l) self.boss(self) From 494a252f3f2e6eb955c00c331c9865cabfb63148 Mon Sep 17 00:00:00 2001 From: Kovid Goyal <kovid@kovidgoyal.net> Date: Wed, 16 Oct 2013 17:57:15 +0530 Subject: [PATCH 27/51] Saving implemented --- src/calibre/ebooks/oeb/polish/container.py | 9 +++++++++ src/calibre/gui2/tweak_book/boss.py | 23 ++++++++++++++++++++-- src/calibre/gui2/tweak_book/save.py | 19 ++++++++++++++---- 3 files changed, 45 insertions(+), 6 deletions(-) diff --git a/src/calibre/ebooks/oeb/polish/container.py b/src/calibre/ebooks/oeb/polish/container.py index 66efb697c7..b8362b73c9 100644 --- a/src/calibre/ebooks/oeb/polish/container.py +++ b/src/calibre/ebooks/oeb/polish/container.py @@ -745,6 +745,10 @@ class EpubContainer(Container): f.write(guess_type('a.epub')) zip_rebuilder(self.root, outpath) + @property + def path_to_ebook(self): + return self.pathtoepub + # }}} # AZW3 {{{ @@ -839,6 +843,11 @@ class AZW3Container(Container): oeb = create_oebbook(default_log, opf, plumber.opts) set_cover(oeb) outp.convert(oeb, outpath, inp, plumber.opts, default_log) + + @property + def path_to_ebook(self): + return self.pathtoepub + # }}} def get_container(path, log=None, tdir=None): diff --git a/src/calibre/gui2/tweak_book/boss.py b/src/calibre/gui2/tweak_book/boss.py index 076f6edb82..575978bdc3 100644 --- a/src/calibre/gui2/tweak_book/boss.py +++ b/src/calibre/gui2/tweak_book/boss.py @@ -10,7 +10,7 @@ import tempfile, shutil from PyQt4.Qt import QObject, QApplication -from calibre.gui2 import error_dialog, choose_files +from calibre.gui2 import error_dialog, choose_files, question_dialog, info_dialog from calibre.ptempfile import PersistentTemporaryDirectory from calibre.ebooks.oeb.polish.main import SUPPORTED from calibre.ebooks.oeb.polish.container import get_container, clone_container @@ -26,6 +26,7 @@ class Boss(QObject): self.container_count = 0 self.tdir = None self.save_manager = SaveManager(parent) + self.save_manager.report_error.connect(self.report_save_error) def __call__(self, gui): self.gui = gui @@ -42,7 +43,10 @@ class Boss(QObject): def open_book(self, path=None): if not self.check_dirtied(): return - # TODO: Check if a save is in progress and abort if it is + if self.save_manager.has_tasks: + return info_dialog(self.gui, _('Cannot open'), + _('The current book is being saved, you cannot open a new book until' + ' the saving is completed'), show=True) if not hasattr(path, 'rpartition'): path = choose_files(self.gui, 'open-book-for-tweaking', _('Choose book'), @@ -95,6 +99,7 @@ class Boss(QObject): container = current_container() self.gui.file_list.build(container) self.update_global_history_actions() + self.gui.action_save.setEnabled(True) # TODO: Apply to other GUI elements def do_global_undo(self): @@ -127,6 +132,11 @@ class Boss(QObject): container = clone_container(current_container(), tdir) self.save_manager.schedule(tdir, container) + def report_save_error(self, tb): + error_dialog(self.gui, _('Could not save'), + _('Saving of the book failed. Click "Show Details"' + ' for more information.'), det_msg=tb, show=True) + def quit(self): if not self.confirm_quit(): return @@ -134,10 +144,19 @@ class Boss(QObject): QApplication.instance().quit() def confirm_quit(self): + if self.save_manager.has_tasks: + if not question_dialog( + self.gui, _('Are you sure?'), _( + 'The current book is being saved in the background, quitting will abort' + ' the save process, are you sure?'), default_yes=False): + return False + return True def shutdown(self): self.save_state() + self.save_manager.shutdown() + self.save_manager.wait(0.1) def save_state(self): with tprefs: diff --git a/src/calibre/gui2/tweak_book/save.py b/src/calibre/gui2/tweak_book/save.py index c18ce6de11..6c89a75413 100644 --- a/src/calibre/gui2/tweak_book/save.py +++ b/src/calibre/gui2/tweak_book/save.py @@ -6,14 +6,17 @@ from __future__ import (unicode_literals, division, absolute_import, __license__ = 'GPL v3' __copyright__ = '2013, Kovid Goyal <kovid at kovidgoyal.net>' -import shutil +import shutil, os from threading import Thread from Queue import LifoQueue, Empty from PyQt4.Qt import (QObject, pyqtSignal, QLabel, QWidget, QHBoxLayout, Qt) -from calibre.utils import join_with_timeout +from calibre.constants import iswindows +from calibre.ptempfile import PersistentTemporaryFile from calibre.gui2.progress_indicator import ProgressIndicator +from calibre.utils import join_with_timeout +from calibre.utils.filenames import atomic_rename class SaveWidget(QWidget): @@ -101,10 +104,18 @@ class SaveManager(QObject): self.save_done.emit() def do_save(self, tdir, container): + temp = None try: - import time - time.sleep(10) + path = container.path_to_ebook + temp = PersistentTemporaryFile( + prefix=('_' if iswindows else '.'), suffix=os.path.splitext(path)[1], dir=os.path.dirname(path)) + temp.close() + temp = temp.name + container.commit(temp) + atomic_rename(temp, path) finally: + if temp and os.path.exists(temp): + os.remove(temp) shutil.rmtree(tdir, ignore_errors=True) @property From 1e3d8983e15e62da5bcd92e296fa9b555c3a5eaf Mon Sep 17 00:00:00 2001 From: Kovid Goyal <kovid@kovidgoyal.net> Date: Wed, 16 Oct 2013 20:40:26 +0530 Subject: [PATCH 28/51] ... --- src/calibre/devices/eb600/driver.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/calibre/devices/eb600/driver.py b/src/calibre/devices/eb600/driver.py index fbb323d6e5..0e19363c60 100644 --- a/src/calibre/devices/eb600/driver.py +++ b/src/calibre/devices/eb600/driver.py @@ -59,6 +59,8 @@ class TOLINO(EB600): VENDOR_NAME = ['DEUTSCHE'] WINDOWS_MAIN_MEM = WINDOWS_CARD_A_MEM = ['_TELEKOMTOLINO'] + # There are apparently two versions of this device, one with swapped + # drives and one without, see https://bugs.launchpad.net/bugs/1240504 def linux_swap_drives(self, drives): if len(drives) < 2 or not drives[1] or not drives[2]: return drives From 12718e6785bb9855ec143552e86511e13fd4c488 Mon Sep 17 00:00:00 2001 From: Kovid Goyal <kovid@kovidgoyal.net> Date: Wed, 16 Oct 2013 21:16:26 +0530 Subject: [PATCH 29/51] Confirm on quit if unsaved changes present --- src/calibre/gui2/tweak_book/boss.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/calibre/gui2/tweak_book/boss.py b/src/calibre/gui2/tweak_book/boss.py index 575978bdc3..053cea151e 100644 --- a/src/calibre/gui2/tweak_book/boss.py +++ b/src/calibre/gui2/tweak_book/boss.py @@ -150,6 +150,12 @@ class Boss(QObject): 'The current book is being saved in the background, quitting will abort' ' the save process, are you sure?'), default_yes=False): return False + if self.gui.action_save.isEnabled(): + if not question_dialog( + self.gui, _('Are you sure?'), _( + 'The current book has unsaved changes, you will lose them if you quit,' + ' are you sure?'), default_yes=False): + return False return True From 8d544eaada733a70dfdd5edeaaa764ab659b9939 Mon Sep 17 00:00:00 2001 From: Kovid Goyal <kovid@kovidgoyal.net> Date: Wed, 16 Oct 2013 21:33:22 +0530 Subject: [PATCH 30/51] Sort non spine items in the file list --- src/calibre/gui2/tweak_book/file_list.py | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/src/calibre/gui2/tweak_book/file_list.py b/src/calibre/gui2/tweak_book/file_list.py index 1fc2eb4cb4..abe0724843 100644 --- a/src/calibre/gui2/tweak_book/file_list.py +++ b/src/calibre/gui2/tweak_book/file_list.py @@ -6,6 +6,7 @@ from __future__ import (unicode_literals, division, absolute_import, __license__ = 'GPL v3' __copyright__ = '2013, Kovid Goyal <kovid at kovidgoyal.net>' +from binascii import hexlify from PyQt4.Qt import ( QWidget, QTreeWidget, QGridLayout, QSize, Qt, QTreeWidgetItem, QIcon, QStyledItemDelegate, QStyle, QPixmap, QPainter, pyqtSignal) @@ -16,6 +17,7 @@ from calibre.ebooks.oeb.polish.container import guess_type from calibre.ebooks.oeb.polish.cover import get_cover_page_name, get_raster_cover_name from calibre.gui2 import error_dialog from calibre.gui2.tweak_book import current_container +from calibre.utils.icu import sort_key TOP_ICON_SIZE = 24 NAME_ROLE = Qt.UserRole @@ -73,7 +75,6 @@ class FileList(QTreeWidget): self.setAutoExpandDelay(1000) self.setAnimated(True) self.setMouseTracking(True) - self.in_drop_event = False self.setContextMenuPolicy(Qt.CustomContextMenu) self.customContextMenuRequested.connect(self.show_context_menu) self.root = self.invisibleRootItem() @@ -158,6 +159,7 @@ class FileList(QTreeWidget): # We have an exact duplicate (can happen if there are # duplicates in the spine) item.setText(0, processed[name].text(0)) + item.setText(1, processed[name].text(1)) return parts = name.split('/') @@ -166,6 +168,7 @@ class FileList(QTreeWidget): text = parts.pop() + '/' + text seen[text] = item item.setText(0, text) + item.setText(1, hexlify(sort_key(text))) def render_emblems(item, emblems): emblems = tuple(emblems) @@ -238,14 +241,16 @@ class FileList(QTreeWidget): continue processed[name] = create_item(name) - for c in self.categories.itervalues(): + for name, c in self.categories.iteritems(): c.setExpanded(True) + if name != 'text': + c.sortChildren(1, Qt.AscendingOrder) if preserve_state: self.set_state(state) def show_context_menu(self, point): - pass + pass # TODO: Implement this def keyPressEvent(self, ev): if ev.key() in (Qt.Key_Delete, Qt.Key_Backspace): @@ -283,6 +288,14 @@ class FileList(QTreeWidget): for c in removals: c.parent().removeChild(c) + def dropEvent(self, event): + text = self.categories['text'] + pre_drop_order = {text.child(i):i for i in xrange(text.childCount())} + super(FileList, self).dropEvent(event) + current_order = {text.child(i):i for i in xrange(text.childCount())} + if current_order != pre_drop_order: + pass # TODO: Implement this + class FileListWidget(QWidget): delete_requested = pyqtSignal(object, object) From 66a88b5d6eadb2ea66c5e028a08332be96857626 Mon Sep 17 00:00:00 2001 From: Kovid Goyal <kovid@kovidgoyal.net> Date: Thu, 17 Oct 2013 08:20:19 +0530 Subject: [PATCH 31/51] Fix #1240644 [Chapter threshold maximum of 99 is insufficient](https://bugs.launchpad.net/calibre/+bug/1240644) --- src/calibre/gui2/convert/toc.ui | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/calibre/gui2/convert/toc.ui b/src/calibre/gui2/convert/toc.ui index 6140816804..0e7b6530ea 100644 --- a/src/calibre/gui2/convert/toc.ui +++ b/src/calibre/gui2/convert/toc.ui @@ -15,7 +15,11 @@ </property> <layout class="QGridLayout" name="gridLayout"> <item row="7" column="1"> - <widget class="QSpinBox" name="opt_toc_threshold"/> + <widget class="QSpinBox" name="opt_toc_threshold"> + <property name="maximum"> + <number>10000</number> + </property> + </widget> </item> <item row="1" column="0" colspan="2"> <widget class="QCheckBox" name="opt_use_auto_toc"> From 42cc5b28132cc34cc094311fc23f743342cc5c1b Mon Sep 17 00:00:00 2001 From: Kovid Goyal <kovid@kovidgoyal.net> Date: Thu, 17 Oct 2013 08:26:05 +0530 Subject: [PATCH 32/51] Update Newsweek Polska --- recipes/newsweek_polska.recipe | 356 +++++++++++++++++++++------------ 1 file changed, 223 insertions(+), 133 deletions(-) diff --git a/recipes/newsweek_polska.recipe b/recipes/newsweek_polska.recipe index ec50e0f438..0a608579ff 100644 --- a/recipes/newsweek_polska.recipe +++ b/recipes/newsweek_polska.recipe @@ -2,173 +2,263 @@ #!/usr/bin/env python __license__ = 'GPL v3' -__copyright__ = '2010, matek09, matek09@gmail.com; 2012, admroz, a.rozewicki@gmail.com' +__copyright__ = '2010, matek09, matek09@gmail.com; 2012-2013, admroz, a.rozewicki@gmail.com' +import re from calibre.web.feeds.news import BasicNewsRecipe from calibre.ptempfile import PersistentTemporaryFile from string import capwords import datetime +from calibre.ebooks.BeautifulSoup import BeautifulSoup class Newsweek(BasicNewsRecipe): - # how many issues to go back, 0 means get the most current one - BACK_ISSUES = 2 + # how many issues to go back, 0 means get the most current one + BACK_ISSUES = 1 - EDITION = '0' - DATE = None - YEAR = datetime.datetime.now().year + EDITION = '0' + DATE = None + YEAR = datetime.datetime.now().year - title = u'Newsweek Polska' - __author__ = 'matek09, admroz' - description = 'Weekly magazine' - encoding = 'utf-8' - language = 'pl' - remove_javascript = True + title = u'Newsweek Polska' + __author__ = 'matek09, admroz' + description = 'Weekly magazine' + encoding = 'utf-8' + language = 'pl' + remove_javascript = True - temp_files = [] - articles_are_obfuscated = True + temp_files = [] + articles_are_obfuscated = True - # - # Parses each article - # - def get_obfuscated_article(self, url): - br = self.get_browser() - br.open(url) - source = br.response().read() - page = self.index_to_soup(source) + # + # Parses article contents from one page + # + def get_article_divs(self, css, main_section): + strs = [] - main_section = page.find(id='mainSection') + # get all divs with given css class + article_divs = main_section.findAll('div', attrs={'class' : css}) + for article_div in article_divs: - title = main_section.find('h1') - info = main_section.find('ul', attrs={'class' : 'articleInfo'}) - authors = info.find('li').find('h4') - article = main_section.find('div', attrs={'id' : 'article'}) + # remove sections like 'read more...' etc. + for p in article_div.findAll('p'): - # remove related articles box - related = article.find('div', attrs={'class' : 'relatedBox'}) - if related is not None: - related.extract() + if p.find('span', attrs={'style' : 'color: #800000; font-size: medium;'}): + p.extract() + continue - # remove div with social networking links and links to - # other articles in web version - for div in article.findAll('div'): - if div.find('span', attrs={'class' : 'google-plus'}): - div.extract() + if p.find('span', attrs={'style' : 'font-size: medium; color: #800000;'}): + p.extract() + continue - for p in div.findAll('p'): - if p.find('span', attrs={'style' : 'color: rgb(255, 0, 0);'}): - p.extract() - continue - for a in p.findAll('a'): - if a.find('span', attrs={'style' : 'font-size: larger;'}): - a.extract() + if p.find('span', attrs={'style' : 'font-size: medium;'}): + p.extract() + continue + + if p.find('span', attrs={'style' : 'color: #800000;'}): + p.extract() + continue + + obj = p.find('object') + if obj: + obj.extract() + continue + + strong = p.find('strong') + if strong: + newest = re.compile("Tekst pochodzi z najnowszego numeru Tygodnika Newsweek") + if newest.search(str(strong)): + strong.extract() + continue + + itunes = p.find('a') + if itunes: + reurl = re.compile("itunes.apple.com") + if reurl.search(str(itunes['href'])): + p.extract() + continue + + imagedesc = p.find('div', attrs={'class' : 'image-desc'}) + if imagedesc: + redesc = re.compile("Okładka numeru") + if (redesc.search(str(imagedesc))): + p.extract() + continue - html = unicode(title) + unicode(authors) + unicode(article) - next = main_section.find('li', attrs={'class' : 'next'}) - while next: - url = next.find('a')['href'] - br.open(url) - source = br.response().read() - page = self.index_to_soup(source) - main_section = page.find(id='mainSection') - article = main_section.find('div', attrs={'id' : 'article'}) - aside = article.find(id='articleAside') - if aside is not None: - aside.extract() - html = html + unicode(article) - next = main_section.find('li', attrs={'class' : 'next'}) + # get actual contents + for content in article_div.contents: + strs.append("".join(str(content))) + + # return contents as a string + return unicode("".join(strs)) - self.temp_files.append(PersistentTemporaryFile('_temparse.html')) - self.temp_files[-1].write(html) - self.temp_files[-1].close() - return self.temp_files[-1].name + # + # Articles can be divided into several pages, this method parses them recursevely + # + def get_article_page(self, br, url, page): + br.open(url) + source = br.response().read() + + html = '' + + matches = re.search(r'<article>(.*)</article>', source, re.DOTALL) + if matches is None: + print "no article tag found, returning..." + return + + main_section = BeautifulSoup(matches.group(0)) + + if page == 0: + title = main_section.find('h1') + html = html + unicode(title) + + authors = '' + authorBox = main_section.find('div', attrs={'class' : 'AuthorBox'}) + if authorBox is not None: + authorH4 = authorBox.find('h4') + if authorH4 is not None: + authors = self.tag_to_string(authorH4) + html = html + unicode(authors) + + info = main_section.find('p', attrs={'class' : 'lead'}) + html = html + unicode(info) + + html = html + self.get_article_divs('3917dc34e07c9c7180df2ea9ef103361845c8af42b71f51b960059226090a1ac articleStart', main_section) + html = html + self.get_article_divs('3917dc34e07c9c7180df2ea9ef103361845c8af42b71f51b960059226090a1ac', main_section) + + nextPage = main_section.find('a', attrs={'class' : 'next'}) + if nextPage: + html = html + self.get_article_page(br, nextPage['href'], page+1) + + return html + + # + # Parses each article + # + def get_obfuscated_article(self, url): + br = self.get_browser() + html = self.get_article_page(br, url, 0) + self.temp_files.append(PersistentTemporaryFile('_temparse.html')) + self.temp_files[-1].write(html) + self.temp_files[-1].close() + return self.temp_files[-1].name - # - # Goes back given number of issues. It also knows how to go back - # to the previous year if there are not enough issues in the current one - # - def find_last_issue(self, archive_url): - archive_soup = self.index_to_soup(archive_url) - select = archive_soup.find('select', attrs={'id' : 'paper_issue_select'}) - options = select.findAll(lambda tag: tag.name == 'option' and tag.has_key('value')) + # + # Goes back given number of issues. It also knows how to go back + # to the previous year if there are not enough issues in the current one + # + def find_last_issue(self, archive_url): + archive_soup = self.index_to_soup(archive_url, True) - # check if need to go back to previous year - if len(options) > self.BACK_ISSUES: - option = options[self.BACK_ISSUES]; - self.EDITION = option['value'].replace('http://www.newsweek.pl/wydania/','') - self.index_to_soup('http://www.newsweek.pl/wydania/' + self.EDITION) - else: - self.BACK_ISSUES = self.BACK_ISSUES - len(options) - self.YEAR = self.YEAR - 1 - self.find_last_issue(archive_url + ',' + str(self.YEAR)) + # workaround because html is so messed up that find() method on soup returns None + # and therefore we need to extract subhtml that we need + matches = re.search(r'<ul class="rightIssueList">(.*?)</ul>', archive_soup, re.DOTALL) + if matches is None: + return + + subSoup = BeautifulSoup(matches.group(0)) + issueLinks = subSoup.findAll('a') + + # check if need to go back to previous year + if len(issueLinks) > self.BACK_ISSUES: + link = issueLinks[self.BACK_ISSUES]; + self.EDITION = link['href'].replace('http://www.newsweek.pl/wydania/','') + self.index_to_soup('http://www.newsweek.pl/wydania/' + self.EDITION) + else: + self.BACK_ISSUES = self.BACK_ISSUES - len(issueLinks) + self.YEAR = self.YEAR - 1 + self.find_last_issue(archive_url + '/' + str(self.YEAR)) - # - # Looks for the last issue which we want to download. Then goes on each - # section and article and stores them (assigning to sections) - # - def parse_index(self): - archive_url = 'http://www.newsweek.pl/wydania/archiwum' - self.find_last_issue(archive_url) - soup = self.index_to_soup('http://www.newsweek.pl/wydania/' + self.EDITION) - self.DATE = self.tag_to_string(soup.find('span', attrs={'class' : 'data'})) - main_section = soup.find(id='mainSection') - img = main_section.find(lambda tag: tag.name == 'img' and tag.has_key('alt') and tag.has_key('title')) - self.cover_url = img['src'] - feeds = [] - articles = {} - sections = [] + # + # Looks for the last issue which we want to download. Then goes on each + # section and article and stores them (assigning to sections) + # + def parse_index(self): + archive_url = 'http://www.newsweek.pl/wydania/archiwum' + self.find_last_issue(archive_url) + soup = self.index_to_soup('http://www.newsweek.pl/wydania/' + self.EDITION) - news_list = main_section.find('ul', attrs={'class' : 'newsList'}) - section = 'Inne' + matches = re.search(r'<div class="Issue-Entry">(.*)ARTICLE_BOTTOM', soup.prettify(), re.DOTALL) + if matches is None: + return - for li in news_list.findAll('li'): - h3 = li.find('h3') - if h3 is not None: - section = capwords(self.tag_to_string(h3)) - continue - else: - h2 = li.find('h2') - if h2 is not None: - article = self.create_article(h2) - if article is None : - continue + main_section = BeautifulSoup(matches.group(0)) - if articles.has_key(section): - articles[section].append(article) - else: - articles[section] = [article] - sections.append(section) + # date + matches = re.search(r'(\d{2}-\d{2}-\d{4})', self.tag_to_string(main_section.find('h2'))) + if matches: + self.DATE = matches.group(0) + + # cover + img = main_section.find(lambda tag: tag.name == 'img' and tag.has_key('alt') and tag.has_key('title')) + self.cover_url = img['src'] + feeds = [] + articles = {} + sections = [] + + # sections + for sectionUl in main_section.findAll('ul', attrs={'class' : 'whatsin'}): + + # section header + header = sectionUl.find('li', attrs={'class' : 'header'}) + if header is None: + continue + + section = capwords(self.tag_to_string(header)) + + # articles in section + articleUl = sectionUl.find('ul') + if articleUl is None: + continue + + for articleLi in articleUl.findAll('li'): + # check if article is closed which should be skipped + closed = articleLi.find('span', attrs={'class' : 'closeart'}) + if closed is not None: + continue + + article = self.create_article(articleLi) + if article is None : + continue + + if articles.has_key(section): + articles[section].append(article) + else: + articles[section] = [article] + sections.append(section) + + for section in sections: +# print("%s -> %d" % (section, len(articles[section]))) +# +# for article in articles[section]: +# print(" - %s" % article) + + feeds.append((section, articles[section])) + + return feeds - for section in sections: - feeds.append((section, articles[section])) - return feeds + # + # Creates each article metadata (skips locked ones). The content will + # be extracted later by other method (get_obfuscated_article). + # + def create_article(self, articleLi): + article = {} + a = articleLi.find('a') + if a is None: + return None - # - # Creates each article metadata (skips locked ones). The content will - # be extracted later by other method (get_obfuscated_article). - # - def create_article(self, h2): - article = {} - a = h2.find('a') - if a is None: - return None + article['title'] = self.tag_to_string(a) + article['url'] = a['href'] + article['date'] = self.DATE + article['description'] = '' - article['title'] = self.tag_to_string(a) - article['url'] = a['href'] - article['date'] = self.DATE - desc = h2.findNext('p') - - if desc is not None: - article['description'] = self.tag_to_string(desc) - else: - article['description'] = '' - return article + return article From 1c0849446b89957cde0622645b48005349c47156 Mon Sep 17 00:00:00 2001 From: Kovid Goyal <kovid@kovidgoyal.net> Date: Thu, 17 Oct 2013 09:07:15 +0530 Subject: [PATCH 33/51] Conversion: Handle embed font family and filter css conflict Conversion: If both embed font family and the filter css option to remove fonts are set, do not remove the font specified by the embed font family option. --- src/calibre/ebooks/oeb/transforms/flatcss.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/calibre/ebooks/oeb/transforms/flatcss.py b/src/calibre/ebooks/oeb/transforms/flatcss.py index 9c8442d391..c3b7f6f625 100644 --- a/src/calibre/ebooks/oeb/transforms/flatcss.py +++ b/src/calibre/ebooks/oeb/transforms/flatcss.py @@ -410,7 +410,10 @@ class CSSFlattener(object): if cssdict: for x in self.filter_css: - cssdict.pop(x, None) + popval = cssdict.pop(x, None) + if (self.body_font_family and popval and x == 'font-family' and + popval.partition(',')[0][1:-1] == self.body_font_family.partition(',')[0][1:-1]): + cssdict[x] = popval if cssdict: if self.lineh and self.fbase and tag != 'body': From 09775678bb0b0bcda31fe077cb71a38c2f857ac9 Mon Sep 17 00:00:00 2001 From: Kovid Goyal <kovid@kovidgoyal.net> Date: Thu, 17 Oct 2013 12:28:00 +0530 Subject: [PATCH 34/51] Fix custom device driver swap main and card option not working --- src/calibre/devices/user_defined/driver.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/calibre/devices/user_defined/driver.py b/src/calibre/devices/user_defined/driver.py index a88264c517..2449d5062c 100644 --- a/src/calibre/devices/user_defined/driver.py +++ b/src/calibre/devices/user_defined/driver.py @@ -120,7 +120,8 @@ class USER_DEFINED(USBMS): self.plugin_needs_delayed_initialization = False def windows_sort_drives(self, drives): - if len(drives) < 2: return drives + if len(drives) < 2: + return drives e = self.settings().extra_customization if not e[self.OPT_SWAP_MAIN_AND_CARD]: return drives @@ -132,7 +133,8 @@ class USER_DEFINED(USBMS): return drives def linux_swap_drives(self, drives): - if len(drives) < 2 or not drives[1] or not drives[2]: return drives + if len(drives) < 2 or not drives[0] or not drives[1]: + return drives e = self.settings().extra_customization if not e[self.OPT_SWAP_MAIN_AND_CARD]: return drives @@ -143,7 +145,8 @@ class USER_DEFINED(USBMS): return tuple(drives) def osx_sort_names(self, names): - if len(names) < 2: return names + if len(names) < 2: + return names e = self.settings().extra_customization if not e[self.OPT_SWAP_MAIN_AND_CARD]: return names From 6b575eba33499ef175ae5239567d323dfd03553d Mon Sep 17 00:00:00 2001 From: Kovid Goyal <kovid@kovidgoyal.net> Date: Thu, 17 Oct 2013 12:34:35 +0530 Subject: [PATCH 35/51] Windows: Check if the books' files are in use before deleting Fixes #1240788 [Calibre refused to delete book](https://bugs.launchpad.net/calibre/+bug/1240788) --- src/calibre/db/cache.py | 4 ++++ src/calibre/gui2/actions/delete.py | 13 ++++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/calibre/db/cache.py b/src/calibre/db/cache.py index 80361393c5..6a4ed4708e 100644 --- a/src/calibre/db/cache.py +++ b/src/calibre/db/cache.py @@ -1397,6 +1397,10 @@ class Cache(object): except: path = None path_map[book_id] = path + if iswindows: + paths = (x.replace(os.sep, '/') for x in path_map.itervalues() if x) + self.backend.windows_check_if_files_in_use(paths) + self.backend.remove_books(path_map, permanent=permanent) for field in self.fields.itervalues(): try: diff --git a/src/calibre/gui2/actions/delete.py b/src/calibre/gui2/actions/delete.py index ab5e52d69c..ddd71ee18f 100644 --- a/src/calibre/gui2/actions/delete.py +++ b/src/calibre/gui2/actions/delete.py @@ -5,6 +5,7 @@ __license__ = 'GPL v3' __copyright__ = '2010, Kovid Goyal <kovid@kovidgoyal.net>' __docformat__ = 'restructuredtext en' +import errno from functools import partial from collections import Counter @@ -360,7 +361,17 @@ class DeleteAction(InterfaceAction): return next_id = view.next_id if len(to_delete_ids) < 5: - view.model().delete_books_by_id(to_delete_ids) + try: + view.model().delete_books_by_id(to_delete_ids) + except IOError as err: + if err.errno == errno.EACCES: + import traceback + fname = getattr(err, 'filename', 'file') or 'file' + return error_dialog(self.gui, _('Permission denied'), + _('Could not access %s. Is it being used by another' + ' program? Click "Show details" for more information.')%fname, det_msg=traceback.format_exc(), + show=True) + self.library_ids_deleted2(to_delete_ids, next_id=next_id) else: self.__md = MultiDeleter(self.gui, to_delete_ids, From b059e839ac9da07986584213ae09d885252d96d5 Mon Sep 17 00:00:00 2001 From: Kovid Goyal <kovid@kovidgoyal.net> Date: Thu, 17 Oct 2013 13:02:47 +0530 Subject: [PATCH 36/51] Fix typos in linux_swap_drives() in a few other devices --- src/calibre/devices/eb600/driver.py | 2 +- src/calibre/devices/hanlin/driver.py | 2 +- src/calibre/devices/misc.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/calibre/devices/eb600/driver.py b/src/calibre/devices/eb600/driver.py index 0e19363c60..12812f3b9a 100644 --- a/src/calibre/devices/eb600/driver.py +++ b/src/calibre/devices/eb600/driver.py @@ -62,7 +62,7 @@ class TOLINO(EB600): # There are apparently two versions of this device, one with swapped # drives and one without, see https://bugs.launchpad.net/bugs/1240504 def linux_swap_drives(self, drives): - if len(drives) < 2 or not drives[1] or not drives[2]: + if len(drives) < 2 or not drives[0] or not drives[1]: return drives drives = list(drives) t = drives[0] diff --git a/src/calibre/devices/hanlin/driver.py b/src/calibre/devices/hanlin/driver.py index 513e083c6c..6ec93745c7 100644 --- a/src/calibre/devices/hanlin/driver.py +++ b/src/calibre/devices/hanlin/driver.py @@ -64,7 +64,7 @@ class HANLINV3(USBMS): return names def linux_swap_drives(self, drives): - if len(drives) < 2 or not drives[1] or not drives[2]: return drives + if len(drives) < 2 or not drives[0] or not drives[1]: return drives drives = list(drives) t = drives[0] drives[0] = drives[1] diff --git a/src/calibre/devices/misc.py b/src/calibre/devices/misc.py index f6d10ef1cf..43157480b9 100644 --- a/src/calibre/devices/misc.py +++ b/src/calibre/devices/misc.py @@ -461,7 +461,7 @@ class WAYTEQ(USBMS): def linux_swap_drives(self, drives): # See https://bugs.launchpad.net/bugs/1151901 - if len(drives) < 2 or not drives[1] or not drives[2]: + if len(drives) < 2 or not drives[0] or not drives[1]: return drives drives = list(drives) t = drives[0] From 73e7ddcefefbfdc28c4f148900bcebaca1268ce7 Mon Sep 17 00:00:00 2001 From: Kovid Goyal <kovid@kovidgoyal.net> Date: Thu, 17 Oct 2013 13:10:16 +0530 Subject: [PATCH 37/51] Update WSJ some more --- recipes/wsj.recipe | 13 +------------ recipes/wsj_free.recipe | 14 +------------- 2 files changed, 2 insertions(+), 25 deletions(-) diff --git a/recipes/wsj.recipe b/recipes/wsj.recipe index c138fb2a04..16a523baec 100644 --- a/recipes/wsj.recipe +++ b/recipes/wsj.recipe @@ -19,19 +19,8 @@ class WallStreetJournal(BasicNewsRecipe): max_articles_per_feed = 1000 timefmt = ' [%a, %b %d, %Y]' no_stylesheets = True + ignore_duplicate_articles = {'url'} - extra_css = '''h1{color:#093D72 ; font-size:large ; font-family:Georgia,"Century Schoolbook","Times New Roman",Times,serif; } - h2{color:#474537; font-family:Georgia,"Century Schoolbook","Times New Roman",Times,serif; font-size:small; font-style:italic;} - .subhead{color:gray; font-family:Georgia,"Century Schoolbook","Times New Roman",Times,serif; font-size:small; font-style:italic;} - .insettipUnit {color:#666666; font-family:Arial,Sans-serif;font-size:xx-small } - .targetCaption{ font-size:x-small; color:#333333; font-family:Arial,Helvetica,sans-serif} - .article{font-family :Arial,Helvetica,sans-serif; font-size:x-small} - .tagline {color:#333333; font-size:xx-small} - .dateStamp {color:#666666; font-family:Arial,Helvetica,sans-serif} - h3{color:blue ;font-family:Arial,Helvetica,sans-serif; font-size:xx-small} - .byline{color:blue;font-family:Arial,Helvetica,sans-serif; font-size:xx-small} - h6{color:#333333; font-family:Georgia,"Century Schoolbook","Times New Roman",Times,serif; font-size:small;font-style:italic; } - .paperLocation{color:#666666; font-size:xx-small}''' keep_only_tags = [ dict(name='h1'), dict(name='h2', attrs={'class':['subhead', 'subHed deck']}), dict(name='span', itemprop='author', rel='author'), diff --git a/recipes/wsj_free.recipe b/recipes/wsj_free.recipe index eea9789f79..c8857b60d7 100644 --- a/recipes/wsj_free.recipe +++ b/recipes/wsj_free.recipe @@ -19,19 +19,7 @@ class WallStreetJournal(BasicNewsRecipe): max_articles_per_feed = 1000 timefmt = ' [%a, %b %d, %Y]' no_stylesheets = True - - extra_css = '''h1{color:#093D72 ; font-size:large ; font-family:Georgia,"Century Schoolbook","Times New Roman",Times,serif; } - h2{color:#474537; font-family:Georgia,"Century Schoolbook","Times New Roman",Times,serif; font-size:small; font-style:italic;} - .subhead{color:gray; font-family:Georgia,"Century Schoolbook","Times New Roman",Times,serif; font-size:small; font-style:italic;} - .insettipUnit {color:#666666; font-family:Arial,Sans-serif;font-size:xx-small } - .targetCaption{ font-size:x-small; color:#333333; font-family:Arial,Helvetica,sans-serif} - .article{font-family :Arial,Helvetica,sans-serif; font-size:x-small} - .tagline {color:#333333; font-size:xx-small} - .dateStamp {color:#666666; font-family:Arial,Helvetica,sans-serif} - h3{color:blue ;font-family:Arial,Helvetica,sans-serif; font-size:xx-small} - .byline{color:blue;font-family:Arial,Helvetica,sans-serif; font-size:xx-small} - h6{color:#333333; font-family:Georgia,"Century Schoolbook","Times New Roman",Times,serif; font-size:small;font-style:italic; } - .paperLocation{color:#666666; font-size:xx-small}''' + ignore_duplicate_articles = {'url'} keep_only_tags = [ dict(name='h1'), dict(name='h2', attrs={'class':['subhead', 'subHed deck']}), From 965db8806596539bc286077c3b70fc98e8b56ea1 Mon Sep 17 00:00:00 2001 From: Kovid Goyal <kovid@kovidgoyal.net> Date: Thu, 17 Oct 2013 14:14:47 +0530 Subject: [PATCH 38/51] Printout tracebacks in debug mode for exception during template processing --- src/calibre/db/locking.py | 2 ++ src/calibre/utils/formatter.py | 6 +++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/calibre/db/locking.py b/src/calibre/db/locking.py index df27bbbb25..cc006f65f5 100644 --- a/src/calibre/db/locking.py +++ b/src/calibre/db/locking.py @@ -13,6 +13,8 @@ from calibre.utils.config_base import tweaks class LockingError(RuntimeError): + is_locking_error = True + def __init__(self, msg, extra=None): RuntimeError.__init__(self, msg) self.locking_debug_msg = extra diff --git a/src/calibre/utils/formatter.py b/src/calibre/utils/formatter.py index 2fa5901dde..34eb06a089 100644 --- a/src/calibre/utils/formatter.py +++ b/src/calibre/utils/formatter.py @@ -515,8 +515,8 @@ class TemplateFormatter(string.Formatter): try: ans = self.evaluate(fmt, [], kwargs).strip() except Exception as e: -# if DEBUG: -# traceback.print_exc() + if DEBUG and getattr(e, 'is_locking_error', False): + traceback.print_exc() ans = error_value + ' ' + e.message return ans @@ -529,7 +529,7 @@ class ValidateFormatter(TemplateFormatter): def validate(self, x): from calibre.ebooks.metadata.book.base import Metadata - self.book = Metadata(''); + self.book = Metadata('') return self.vformat(x, [], {}) validation_formatter = ValidateFormatter() From 9296118d7a8d589de969b5ca89a8fc8feb0db1cf Mon Sep 17 00:00:00 2001 From: Kovid Goyal <kovid@kovidgoyal.net> Date: Thu, 17 Oct 2013 14:22:16 +0530 Subject: [PATCH 39/51] Make deleting to recycle bin more robust Make deleting books to recycle bin more robust. Ensure that the temporary directory created during the move to recycle bin process is not left behind in case of errors. --- src/calibre/db/delete_service.py | 87 +++++++++++++++++++++----------- 1 file changed, 57 insertions(+), 30 deletions(-) diff --git a/src/calibre/db/delete_service.py b/src/calibre/db/delete_service.py index d512562473..6d3e41ebbb 100644 --- a/src/calibre/db/delete_service.py +++ b/src/calibre/db/delete_service.py @@ -6,10 +6,11 @@ from __future__ import (unicode_literals, division, absolute_import, __license__ = 'GPL v3' __copyright__ = '2013, Kovid Goyal <kovid at kovidgoyal.net>' -import os, tempfile, shutil, errno, time +import os, tempfile, shutil, errno, time, atexit from threading import Thread from Queue import Queue +from calibre.ptempfile import remove_dir from calibre.utils.recycle_bin import delete_tree, delete_file class DeleteService(Thread): @@ -40,39 +41,64 @@ class DeleteService(Thread): base_path = os.path.dirname(library_path) base = os.path.basename(library_path) try: - return tempfile.mkdtemp(prefix=base+' deleted ', dir=base_path) + ans = tempfile.mkdtemp(prefix=base+' deleted ', dir=base_path) except OSError: - return tempfile.mkdtemp(prefix=base+' deleted ') + ans = tempfile.mkdtemp(prefix=base+' deleted ') + atexit.register(remove_dir, ans) + return ans + + def remove_dir_if_empty(self, path): + try: + os.rmdir(path) + except OSError as e: + if e.errno == errno.ENOTEMPTY or len(os.listdir(path)) > 0: + # Some linux systems appear to raise an EPERM instead of an + # ENOTEMPTY, see https://bugs.launchpad.net/bugs/1240797 + return + raise def delete_books(self, paths, library_path): tdir = self.create_staging(library_path) self.queue_paths(tdir, paths, delete_empty_parent=True) def queue_paths(self, tdir, paths, delete_empty_parent=True): - queued = False + try: + self._queue_paths(tdir, paths, delete_empty_parent=delete_empty_parent) + except: + if os.path.exists(tdir): + shutil.rmtree(tdir, ignore_errors=True) + raise + + def _queue_paths(self, tdir, paths, delete_empty_parent=True): + requests = [] for path in paths: if os.path.exists(path): + basename = os.path.basename(path) + c = 0 + while True: + dest = os.path.join(tdir, basename) + if not os.path.exists(dest): + break + c += 1 + basename = '%d - %s' % (c, os.path.basename(path)) try: - shutil.move(path, tdir) + shutil.move(path, dest) except EnvironmentError: + if os.path.isdir(path): + # shutil.move may have partially copied the directory, + # so the subsequent call to move() will fail as the + # destination directory already exists + raise # Wait a little in case something has locked a file time.sleep(1) - shutil.move(path, tdir) + shutil.move(path, dest) if delete_empty_parent: - parent = os.path.dirname(path) - try: - os.rmdir(parent) - except OSError as e: - if e.errno != errno.ENOTEMPTY: - raise - self.requests.put(os.path.join(tdir, os.path.basename(path))) - queued = True - if not queued: - try: - os.rmdir(tdir) - except OSError as e: - if e.errno != errno.ENOTEMPTY: - raise + self.remove_dir_if_empty(os.path.dirname(path)) + requests.append(dest) + if not requests: + self.remove_dir_if_empty(tdir) + else: + self.requests.put(tdir) def delete_files(self, paths, library_path): tdir = self.create_staging(library_path) @@ -96,16 +122,17 @@ class DeleteService(Thread): 'Blocks until all pending deletes have completed' self.requests.join() - def do_delete(self, x): - if os.path.isdir(x): - delete_tree(x) - else: - delete_file(x) - try: - os.rmdir(os.path.dirname(x)) - except OSError as e: - if e.errno != errno.ENOTEMPTY: - raise + def do_delete(self, tdir): + if os.path.exists(tdir): + try: + for x in os.listdir(tdir): + x = os.path.join(tdir, x) + if os.path.isdir(x): + delete_tree(x) + else: + delete_file(x) + finally: + shutil.rmtree(tdir) __ds = None def delete_service(): From dba9397a5e457598f9f4d903b3e3447adf83dea8 Mon Sep 17 00:00:00 2001 From: Kovid Goyal <kovid@kovidgoyal.net> Date: Thu, 17 Oct 2013 15:25:26 +0530 Subject: [PATCH 40/51] Fix a few remaining downgrade locking errors Fix a few remaining call sites that could generate downgrade lock errors. Also speed up locking a little by aliasing the __enter__ and __exit__ methods on the wrapper lock object instead of wrapping them. --- src/calibre/db/cache.py | 30 +++++++++++++++++++----------- src/calibre/db/lazy.py | 2 +- src/calibre/db/legacy.py | 8 ++++---- src/calibre/db/locking.py | 39 +++++++++++++++++++++++++++++++-------- src/calibre/db/view.py | 4 ++-- 5 files changed, 57 insertions(+), 26 deletions(-) diff --git a/src/calibre/db/cache.py b/src/calibre/db/cache.py index 6a4ed4708e..fcb8b7c407 100644 --- a/src/calibre/db/cache.py +++ b/src/calibre/db/cache.py @@ -18,7 +18,7 @@ from calibre.constants import iswindows, preferred_encoding from calibre.customize.ui import run_plugins_on_import, run_plugins_on_postimport from calibre.db import SPOOL_SIZE, _get_next_series_num_for_list from calibre.db.categories import get_categories -from calibre.db.locking import create_locks, DowngradeLockError +from calibre.db.locking import create_locks, DowngradeLockError, SafeReadLock from calibre.db.errors import NoSuchFormat from calibre.db.fields import create_field, IDENTITY, InvalidLinkTable from calibre.db.search import Search @@ -57,11 +57,8 @@ def wrap_simple(lock, func): return func(*args, **kwargs) except DowngradeLockError: # We already have an exclusive lock, no need to acquire a shared - # lock. This can happen when updating the search cache in the - # presence of composite columns. Updating the search cache holds an - # exclusive lock, but searching a composite column involves - # reading field values via ProxyMetadata which tries to get a - # shared lock. + # lock. See the safe_read_lock properties documentation for why + # this is necessary. return func(*args, **kwargs) return call_func_with_lock @@ -118,6 +115,17 @@ class Cache(object): self._search_api = Search(self, 'saved_searches', self.field_metadata.get_search_terms()) self.initialize_dynamic() + @property + def safe_read_lock(self): + ''' A safe read lock is a lock that does nothing if the thread already + has a write lock, otherwise it acquires a read lock. This is necessary + to prevent DowngradeLockErrors, which can happen when updating the + search cache in the presence of composite columns. Updating the search + cache holds an exclusive lock, but searching a composite column + involves reading field values via ProxyMetadata which tries to get a + shared lock. There may be other scenarios that trigger this as well. ''' + return SafeReadLock(self.read_lock) + @write_api def initialize_dynamic(self): # Reconstruct the user categories, putting them into field_metadata @@ -501,7 +509,7 @@ class Cache(object): x = self.format_metadata_cache[book_id].get(fmt, None) if x is not None: return x - with self.read_lock: + with self.safe_read_lock: try: name = self.fields['formats'].format_fname(book_id, fmt) path = self._field_for('path', book_id).replace('/', os.sep) @@ -545,7 +553,7 @@ class Cache(object): cover_as_data is True then as mi.cover_data. ''' - with self.read_lock: + with self.safe_read_lock: mi = self._get_metadata(book_id, get_user_categories=get_user_categories) if get_cover: @@ -751,7 +759,7 @@ class Cache(object): ext = ('.'+fmt.lower()) if fmt else '' if as_path: if preserve_filename: - with self.read_lock: + with self.safe_read_lock: try: fname = self.fields['formats'].format_fname(book_id, fmt) except: @@ -777,7 +785,7 @@ class Cache(object): return None ret = pt.name elif as_file: - with self.read_lock: + with self.safe_read_lock: try: fname = self.fields['formats'].format_fname(book_id, fmt) except: @@ -878,7 +886,7 @@ class Cache(object): @api def get_categories(self, sort='name', book_ids=None, icon_map=None, already_fixed=None): try: - with self.read_lock: + with self.safe_read_lock: return get_categories(self, sort=sort, book_ids=book_ids, icon_map=icon_map) except InvalidLinkTable as err: bad_field = err.field_name diff --git a/src/calibre/db/lazy.py b/src/calibre/db/lazy.py index 8935110b65..fbe37713d5 100644 --- a/src/calibre/db/lazy.py +++ b/src/calibre/db/lazy.py @@ -132,7 +132,7 @@ def adata_getter(field): author_ids, adata = cache['adata'] except KeyError: db = dbref() - with db.read_lock: + with db.safe_read_lock: author_ids = db._field_ids_for('authors', book_id) adata = db._author_data(author_ids) cache['adata'] = (author_ids, adata) diff --git a/src/calibre/db/legacy.py b/src/calibre/db/legacy.py index 64205173e8..cc69ca963e 100644 --- a/src/calibre/db/legacy.py +++ b/src/calibre/db/legacy.py @@ -154,7 +154,7 @@ class LibraryDatabase(object): return tuple(self.new_api.all_book_ids()) def is_empty(self): - with self.new_api.read_lock: + with self.new_api.safe_read_lock: return not bool(self.new_api.fields['title'].table.book_col_map) def get_usage_count_by_id(self, field): @@ -363,7 +363,7 @@ class LibraryDatabase(object): def authors_with_sort_strings(self, index, index_is_id=False): book_id = index if index_is_id else self.id(index) - with self.new_api.read_lock: + with self.new_api.safe_read_lock: authors = self.new_api._field_ids_for('authors', book_id) adata = self.new_api._author_data(authors) return [(aid, adata[aid]['name'], adata[aid]['sort'], adata[aid]['link']) for aid in authors] @@ -379,7 +379,7 @@ class LibraryDatabase(object): self.notify('metadata', list(changed_books)) def book_on_device(self, book_id): - with self.new_api.read_lock: + with self.new_api.safe_read_lock: return self.new_api.fields['ondevice'].book_on_device(book_id) def book_on_device_string(self, book_id): @@ -393,7 +393,7 @@ class LibraryDatabase(object): return self.new_api.fields['ondevice'].book_on_device_func def books_in_series(self, series_id): - with self.new_api.read_lock: + with self.new_api.safe_read_lock: book_ids = self.new_api._books_for_field('series', series_id) ff = self.new_api._field_for return sorted(book_ids, key=lambda x:ff('series_index', x)) diff --git a/src/calibre/db/locking.py b/src/calibre/db/locking.py index cc006f65f5..7d9bd21712 100644 --- a/src/calibre/db/locking.py +++ b/src/calibre/db/locking.py @@ -213,16 +213,15 @@ class RWLockWrapper(object): self._shlock = shlock self._is_shared = is_shared - def __enter__(self): + def acquire(self): self._shlock.acquire(shared=self._is_shared) - return self - def __exit__(self, *args): - self.release() - - def release(self): + def release(self, *args): self._shlock.release() + __enter__ = acquire + __exit__ = release + def owns_lock(self): return self._shlock.owns_lock() @@ -231,11 +230,11 @@ class DebugRWLockWrapper(RWLockWrapper): def __init__(self, *args, **kwargs): RWLockWrapper.__init__(self, *args, **kwargs) - def __enter__(self): + def acquire(self): print ('#' * 120, file=sys.stderr) print ('acquire called: thread id:', current_thread(), 'shared:', self._is_shared, file=sys.stderr) traceback.print_stack() - RWLockWrapper.__enter__(self) + RWLockWrapper.acquire(self) print ('acquire done: thread id:', current_thread(), file=sys.stderr) print ('_' * 120, file=sys.stderr) @@ -247,4 +246,28 @@ class DebugRWLockWrapper(RWLockWrapper): print ('release done: thread id:', current_thread(), 'is_shared:', self._shlock.is_shared, 'is_exclusive:', self._shlock.is_exclusive, file=sys.stderr) print ('_' * 120, file=sys.stderr) + __enter__ = acquire + __exit__ = release +class SafeReadLock(object): + + def __init__(self, read_lock): + self.read_lock = read_lock + self.acquired = False + + def acquire(self): + try: + self.read_lock.acquire() + except DowngradeLockError: + pass + else: + self.acquired = True + return self + + def release(self, *args): + if self.acquired: + self.read_lock.release() + self.acquired = False + + __enter__ = acquire + __exit__ = release diff --git a/src/calibre/db/view.py b/src/calibre/db/view.py index 1a3d195e66..ff6b1cd1b0 100644 --- a/src/calibre/db/view.py +++ b/src/calibre/db/view.py @@ -205,7 +205,7 @@ class View(object): def get_series_sort(self, idx, index_is_id=True, default_value=''): book_id = idx if index_is_id else self.index_to_id(idx) - with self.cache.read_lock: + with self.cache.safe_read_lock: lang_map = self.cache.fields['languages'].book_value_map lang = lang_map.get(book_id, None) or None if lang: @@ -223,7 +223,7 @@ class View(object): def get_author_data(self, idx, index_is_id=True, default_value=None): id_ = idx if index_is_id else self.index_to_id(idx) - with self.cache.read_lock: + with self.cache.safe_read_lock: ids = self.cache._field_ids_for('authors', id_) adata = self.cache._author_data(ids) ans = [':::'.join((adata[aid]['name'], adata[aid]['sort'], adata[aid]['link'])) for aid in ids if aid in adata] From 28ca52be0b3495196b920424b797c757cdaf0f71 Mon Sep 17 00:00:00 2001 From: Kovid Goyal <kovid@kovidgoyal.net> Date: Thu, 17 Oct 2013 15:31:09 +0530 Subject: [PATCH 41/51] ... --- src/calibre/db/cache.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/calibre/db/cache.py b/src/calibre/db/cache.py index fcb8b7c407..0313e6ffe6 100644 --- a/src/calibre/db/cache.py +++ b/src/calibre/db/cache.py @@ -57,7 +57,7 @@ def wrap_simple(lock, func): return func(*args, **kwargs) except DowngradeLockError: # We already have an exclusive lock, no need to acquire a shared - # lock. See the safe_read_lock properties documentation for why + # lock. See the safe_read_lock properties' documentation for why # this is necessary. return func(*args, **kwargs) return call_func_with_lock @@ -123,7 +123,12 @@ class Cache(object): search cache in the presence of composite columns. Updating the search cache holds an exclusive lock, but searching a composite column involves reading field values via ProxyMetadata which tries to get a - shared lock. There may be other scenarios that trigger this as well. ''' + shared lock. There may be other scenarios that trigger this as well. + + This property returns a new lock object on every access. This lock + object is not recursive (for performance) and must only be used in a + with statement as ``with cache.safe_read_lock:`` otherwise bad things + will happen.''' return SafeReadLock(self.read_lock) @write_api From abcaae49e27b841edd358dff8cabadaca6e20464 Mon Sep 17 00:00:00 2001 From: Kovid Goyal <kovid@kovidgoyal.net> Date: Thu, 17 Oct 2013 15:41:29 +0530 Subject: [PATCH 42/51] Fix dump and restore not working on windows --- src/calibre/db/backend.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/calibre/db/backend.py b/src/calibre/db/backend.py index 9d085935f0..9806ad927e 100644 --- a/src/calibre/db/backend.py +++ b/src/calibre/db/backend.py @@ -1008,7 +1008,7 @@ class DB(object): callback(_('Restoring database from SQL') + '...') with closing(Connection(tmpdb)) as conn: shell = Shell(db=conn, encoding='utf-8') - shell.process_command('.read ' + fname) + shell.process_command('.read ' + fname.replace(os.sep, '/')) conn.execute('PRAGMA user_version=%d;'%uv) self.close() From bbac6e953d0edc052cdf57ec361dbd56a88e193e Mon Sep 17 00:00:00 2001 From: Kovid Goyal <kovid@kovidgoyal.net> Date: Thu, 17 Oct 2013 16:29:17 +0530 Subject: [PATCH 43/51] Tolino driver: Add an option to swap the main memory and card in calibre Fixes #1240504 [Tolino Shine: Please change (again, sorry) device order](https://bugs.launchpad.net/calibre/+bug/1240504) --- src/calibre/devices/eb600/driver.py | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/calibre/devices/eb600/driver.py b/src/calibre/devices/eb600/driver.py index 12812f3b9a..67a8bb5242 100644 --- a/src/calibre/devices/eb600/driver.py +++ b/src/calibre/devices/eb600/driver.py @@ -59,10 +59,24 @@ class TOLINO(EB600): VENDOR_NAME = ['DEUTSCHE'] WINDOWS_MAIN_MEM = WINDOWS_CARD_A_MEM = ['_TELEKOMTOLINO'] + EXTRA_CUSTOMIZATION_MESSAGE = [ + _('Swap main and card A') + + ':::' + + _('Check this box if the device\'s main memory is being seen as card a and the card ' + 'is being seen as main memory. Some Tolino devices may need this option.'), + ] + + EXTRA_CUSTOMIZATION_DEFAULT = [ + True, + ] + + OPT_SWAP_MEMORY = 0 + # There are apparently two versions of this device, one with swapped # drives and one without, see https://bugs.launchpad.net/bugs/1240504 def linux_swap_drives(self, drives): - if len(drives) < 2 or not drives[0] or not drives[1]: + e = self.settings().extra_customization + if len(drives) < 2 or not drives[0] or not drives[1] or not e[self.OPT_SWAP_MEMORY]: return drives drives = list(drives) t = drives[0] @@ -71,7 +85,8 @@ class TOLINO(EB600): return tuple(drives) def windows_sort_drives(self, drives): - if len(drives) < 2: + e = self.settings().extra_customization + if len(drives) < 2 or not e[self.OPT_SWAP_MEMORY]: return drives main = drives.get('main', None) carda = drives.get('carda', None) From 4e46d4a9b3893b93dd6b22e339d2ca1eaf37310a Mon Sep 17 00:00:00 2001 From: Kovid Goyal <kovid@kovidgoyal.net> Date: Fri, 18 Oct 2013 09:56:00 +0530 Subject: [PATCH 44/51] Fix bug in handling change of filename but not foldername Fix a bug triggered in very special circumstances (primarily on windows) that could cause duplicate files entries (hard links) to be created for a books' files when changing the title and author. The bug was triggered only if the title or author were between 32 and 35 characters in length and the book entry had originally been created by a pre 1.x version of calibre. --- src/calibre/db/backend.py | 32 +++++++++++++++++++++--------- src/calibre/db/tests/filesystem.py | 14 +++++++++++++ 2 files changed, 37 insertions(+), 9 deletions(-) diff --git a/src/calibre/db/backend.py b/src/calibre/db/backend.py index 9806ad927e..03187036f9 100644 --- a/src/calibre/db/backend.py +++ b/src/calibre/db/backend.py @@ -1406,6 +1406,8 @@ class DB(object): source_ok = current_path and os.path.exists(spath) wam = WindowsAtomicFolderMove(spath) if iswindows and source_ok else None + format_map = {} + original_format_map = {} try: if not os.path.exists(tpath): os.makedirs(tpath) @@ -1416,22 +1418,34 @@ class DB(object): windows_atomic_move=wam, use_hardlink=True) for fmt in formats: dest = os.path.join(tpath, fname+'.'+fmt.lower()) - self.copy_format_to(book_id, fmt, formats_field.format_fname(book_id, fmt), current_path, + format_map[fmt] = dest + ofmt_fname = formats_field.format_fname(book_id, fmt) + original_format_map[fmt] = os.path.join(spath, ofmt_fname+'.'+fmt.lower()) + self.copy_format_to(book_id, fmt, ofmt_fname, current_path, dest, windows_atomic_move=wam, use_hardlink=True) # Update db to reflect new file locations for fmt in formats: formats_field.table.set_fname(book_id, fmt, fname, self) path_field.table.set_path(book_id, path, self) - # Delete not needed directories + # Delete not needed files and directories if source_ok: - if os.path.exists(spath) and not samefile(spath, tpath): - if wam is not None: - wam.delete_originals() - self.rmtree(spath) - parent = os.path.dirname(spath) - if len(os.listdir(parent)) == 0: - self.rmtree(parent) + if os.path.exists(spath): + if samefile(spath, tpath): + # The format filenames may have changed while the folder + # name remains the same + for fmt, opath in original_format_map.iteritems(): + npath = format_map.get(fmt, None) + if npath and os.path.abspath(npath.lower()) != os.path.abspath(opath.lower()) and samefile(opath, npath): + # opath and npath are different hard links to the same file + os.unlink(opath) + else: + if wam is not None: + wam.delete_originals() + self.rmtree(spath) + parent = os.path.dirname(spath) + if len(os.listdir(parent)) == 0: + self.rmtree(parent) finally: if wam is not None: wam.close_handles() diff --git a/src/calibre/db/tests/filesystem.py b/src/calibre/db/tests/filesystem.py index 5821c41433..132be6961b 100644 --- a/src/calibre/db/tests/filesystem.py +++ b/src/calibre/db/tests/filesystem.py @@ -76,6 +76,8 @@ class FilesystemTest(BaseTest): f = open(fpath, 'rb') with self.assertRaises(IOError): cache.set_field('title', {1:'Moved'}) + with self.assertRaises(IOError): + cache.remove_books({1}) f.close() self.assertNotEqual(cache.field_for('title', 1), 'Moved', 'Title was changed despite file lock') @@ -106,3 +108,15 @@ class FilesystemTest(BaseTest): self.assertLessEqual(len(cache.field_for('path', 1)), cache.backend.PATH_LIMIT * 2) fpath = cache.format_abspath(1, cache.formats(1)[0]) self.assertLessEqual(len(fpath), len(cache.backend.library_path) + cache.backend.PATH_LIMIT * 4) + + def test_fname_change(self): + ' Test the changing of the filename but not the folder name ' + cache = self.init_cache() + title = 'a'*30 + 'bbb' + cache.backend.PATH_LIMIT = 100 + cache.set_field('title', {3:title}) + cache.add_format(3, 'TXT', BytesIO(b'xxx')) + cache.backend.PATH_LIMIT = 40 + cache.set_field('title', {3:title}) + fpath = cache.format_abspath(3, 'TXT') + self.assertEqual(sorted([os.path.basename(fpath)]), sorted(os.listdir(os.path.dirname(fpath)))) From 68b5b16625aa97cf7c43eeaaf8228e9deac65cdf Mon Sep 17 00:00:00 2001 From: Kovid Goyal <kovid@kovidgoyal.net> Date: Fri, 18 Oct 2013 10:07:48 +0530 Subject: [PATCH 45/51] Refactor out the code to get windows file ids --- src/calibre/utils/filenames.py | 35 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/src/calibre/utils/filenames.py b/src/calibre/utils/filenames.py index 02040fe0cc..a4aee1a9ec 100644 --- a/src/calibre/utils/filenames.py +++ b/src/calibre/utils/filenames.py @@ -201,32 +201,31 @@ def case_preserving_open_file(path, mode='wb', mkdir_mode=0o777): fpath = os.path.join(cpath, fname) return ans, fpath -def samefile_windows(src, dst): +def windows_get_fileid(path): + ''' The fileid uniquely identifies actual file contents (it is the same for + all hardlinks to a file). Similar to inode number on linux. ''' import win32file from pywintypes import error + if isbytestring(path): + path = path.decode(filesystem_encoding) + try: + h = win32file.CreateFile(path, 0, 0, None, win32file.OPEN_EXISTING, + win32file.FILE_FLAG_BACKUP_SEMANTICS, 0) + try: + data = win32file.GetFileInformationByHandle(h) + finally: + win32file.CloseHandle(h) + except (error, EnvironmentError): + return None + return data[4], data[8], data[9] +def samefile_windows(src, dst): samestring = (os.path.normcase(os.path.abspath(src)) == os.path.normcase(os.path.abspath(dst))) if samestring: return True - handles = [] - - def get_fileid(x): - if isbytestring(x): - x = x.decode(filesystem_encoding) - try: - h = win32file.CreateFile(x, 0, 0, None, win32file.OPEN_EXISTING, - win32file.FILE_FLAG_BACKUP_SEMANTICS, 0) - handles.append(h) - data = win32file.GetFileInformationByHandle(h) - except (error, EnvironmentError): - return None - return (data[4], data[8], data[9]) - - a, b = get_fileid(src), get_fileid(dst) - for h in handles: - win32file.CloseHandle(h) + a, b = windows_get_fileid(src), windows_get_fileid(dst) if a is None and b is None: return False return a == b From 6946dc518129a3ead156dd216e69b2feee04eed2 Mon Sep 17 00:00:00 2001 From: Kovid Goyal <kovid@kovidgoyal.net> Date: Fri, 18 Oct 2013 10:55:20 +0530 Subject: [PATCH 46/51] Windows atomic folder move: Handle multiple hardlinks to the same file in a folder --- src/calibre/db/tests/filesystem.py | 19 +++++++++++++++++++ src/calibre/utils/filenames.py | 30 ++++++++++++++++++++++++++++-- 2 files changed, 47 insertions(+), 2 deletions(-) diff --git a/src/calibre/db/tests/filesystem.py b/src/calibre/db/tests/filesystem.py index 132be6961b..5b84d89496 100644 --- a/src/calibre/db/tests/filesystem.py +++ b/src/calibre/db/tests/filesystem.py @@ -81,6 +81,25 @@ class FilesystemTest(BaseTest): f.close() self.assertNotEqual(cache.field_for('title', 1), 'Moved', 'Title was changed despite file lock') + # Test on folder with hardlinks + from calibre.ptempfile import TemporaryDirectory + from calibre.utils.filenames import hardlink_file, WindowsAtomicFolderMove + raw = b'xxx' + with TemporaryDirectory() as tdir1, TemporaryDirectory() as tdir2: + a, b = os.path.join(tdir1, 'a'), os.path.join(tdir1, 'b') + a = os.path.join(tdir1, 'a') + with open(a, 'wb') as f: + f.write(raw) + hardlink_file(a, b) + wam = WindowsAtomicFolderMove(tdir1) + wam.copy_path_to(a, os.path.join(tdir2, 'a')) + wam.copy_path_to(b, os.path.join(tdir2, 'b')) + wam.delete_originals() + self.assertEqual([], os.listdir(tdir1)) + self.assertEqual({'a', 'b'}, set(os.listdir(tdir2))) + self.assertEqual(raw, open(os.path.join(tdir2, 'a'), 'rb').read()) + self.assertEqual(raw, open(os.path.join(tdir2, 'b'), 'rb').read()) + def test_library_move(self): ' Test moving of library ' from calibre.ptempfile import TemporaryDirectory diff --git a/src/calibre/utils/filenames.py b/src/calibre/utils/filenames.py index a4aee1a9ec..e998a11c7f 100644 --- a/src/calibre/utils/filenames.py +++ b/src/calibre/utils/filenames.py @@ -318,6 +318,7 @@ class WindowsAtomicFolderMove(object): import win32file, winerror from pywintypes import error + from collections import defaultdict if isbytestring(path): path = path.decode(filesystem_encoding) @@ -325,7 +326,13 @@ class WindowsAtomicFolderMove(object): if not os.path.exists(path): return - for x in os.listdir(path): + names = os.listdir(path) + name_to_fileid = {x:windows_get_fileid(os.path.join(path, x)) for x in names} + fileid_to_names = defaultdict(set) + for name, fileid in name_to_fileid.iteritems(): + fileid_to_names[fileid].add(name) + + for x in names: f = os.path.normcase(os.path.abspath(os.path.join(path, x))) if not os.path.isfile(f): continue @@ -340,6 +347,20 @@ class WindowsAtomicFolderMove(object): win32file.FILE_SHARE_DELETE, None, win32file.OPEN_EXISTING, win32file.FILE_FLAG_SEQUENTIAL_SCAN, 0) except error as e: + if getattr(e, 'winerror', 0) == winerror.ERROR_SHARING_VIOLATION: + # The file could be a hardlink to an already opened file, + # in which case we use the same handle for both files + fileid = name_to_fileid[x] + found = False + for other in fileid_to_names[fileid]: + other = os.path.normcase(os.path.abspath(os.path.join(path, other))) + if other in self.handle_map: + self.handle_map[f] = self.handle_map[other] + found = True + break + if found: + continue + self.close_handles() if getattr(e, 'winerror', 0) == winerror.ERROR_SHARING_VIOLATION: err = IOError(errno.EACCES, @@ -370,6 +391,8 @@ class WindowsAtomicFolderMove(object): return except: pass + + win32file.SetFilePointer(handle, 0, win32file.FILE_BEGIN) with lopen(dest, 'wb') as f: while True: hr, raw = win32file.ReadFile(handle, 1024*1024) @@ -380,6 +403,7 @@ class WindowsAtomicFolderMove(object): f.write(raw) def release_file(self, path): + ' Release the lock on the file pointed to by path. Will also release the lock on any hardlinks to path ' key = None for p, h in self.handle_map.iteritems(): if samefile_windows(path, p): @@ -388,7 +412,9 @@ class WindowsAtomicFolderMove(object): if key is not None: import win32file win32file.CloseHandle(key[1]) - self.handle_map.pop(key[0]) + remove = [f for f, h in self.handle_map.iteritems() if h is key[1]] + for x in remove: + self.handle_map.pop(x) def close_handles(self): import win32file From 17f951e98a4827a5807df21ceb345ce5122e466f Mon Sep 17 00:00:00 2001 From: Kovid Goyal <kovid@kovidgoyal.net> Date: Fri, 18 Oct 2013 11:12:00 +0530 Subject: [PATCH 47/51] version 1.7 --- Changelog.yaml | 67 ++++++++++++++++++++++++++++++++++++++++ src/calibre/constants.py | 2 +- 2 files changed, 68 insertions(+), 1 deletion(-) diff --git a/Changelog.yaml b/Changelog.yaml index 881e58457c..9a4cfaa8c6 100644 --- a/Changelog.yaml +++ b/Changelog.yaml @@ -20,6 +20,73 @@ # new recipes: # - title: +- version: 1.7.0 + date: 2013-10-18 + + new features: + - title: "Cover grid: Allow using images as the background for the cover grid. To choose an image, go to Preferences->Look & Feel->Cover Grid." + tickets: [1239194] + + - title: "An option to mark newly added books with a temporary mark. Option is in Preferences->Adding books." + tickets: [1238609] + + - title: "Edit metadata dialog: Allow turning off the cover size displayed in the bottom right corner of the cover by right clicking the cover and choosing 'Hide cover size'. It can be restored the same way." + + bug fixes: + - title: "Conversion: If both embed font family and the filter css option to remove fonts are set, do not remove the font specified by the embed font family option." + + - title: "Fix a few remaining situations that could cause formats column to show an error message about SHLock" + + - title: "Make deleting books to recycle bin more robust. Ensure that the temporary directory created during the move to recycle bin process is not left behind in case of errors." + + - title: "Windows: Check if the books' files are in use before deleting" + + - title: "Fix custom device driver swap main and card option not working. Also fix swapping not happening for a few devices on linux" + tickets: [1240504] + + - title: "Edit metadata dialog: The Edit metadata dialog currently limits its max size based on the geometry of the smallest attached screen. Change that to use the geometry of the screen on which it will be shown." + tickets: [1239597] + + - title: "HTMLZ Output: Fix <style> tag placed inside <body> instead of <head>." + tickets: [1239530] + + - title: "HTMLZ Output: Fix inline styles not escaping quotes properly." + tickets: [1239527] + + - title: "HTMLZ Output: Fix incorrect handling of some self closing tags like <br>." + tickets: [1239555] + + - title: "Content server: Fix single item categories not working with reverse proxy setup." + tickets: [1238987] + + - title: "Fix a bug that could cause calibre to crash when switching from a large library to a smaller library with marked books." + tickets: [1239210] + + - title: "Get Books: Fix downloading of some books in formats that do not have metadata yielding nonsense titles" + + - title: "Allow marked book button to be added to main toolbar when device is connected" + tickets: [1239163] + + - title: "Fix error if a marked book is deleted/merged." + tickets: [1239161] + + - title: "Template language: Fix formatter function days_between to compute the right value when the answer is negative." + + - title: "Windows: Fix spurious file in use by other process error if the book's folder contained multiple hardlinks pointing to the same file" + tickets: [1240788, 1240194] + + - title: "Windows: Fix duplicate files being created in very special circumstances when changing title and/or author. (the title or author had to be between 31 and 35 characters lng and the book entry had to have been created by a pre 1.x version of calibre)." + + improved recipes: + - Wall Street Journal + - Newsweek Polska + - Wired Magazine + - cracked.com + - Television Without Pity + - Carta + - Diagonales + + - version: 1.6.0 date: 2013-10-11 diff --git a/src/calibre/constants.py b/src/calibre/constants.py index d1762209bd..807bf5d74c 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 = (1, 6, 0) +numeric_version = (1, 7, 0) __version__ = u'.'.join(map(unicode, numeric_version)) __author__ = u"Kovid Goyal <kovid@kovidgoyal.net>" From 1de7cdedc07e55f248f1bb0100ee5d3515ac6402 Mon Sep 17 00:00:00 2001 From: Kovid Goyal <kovid@kovidgoyal.net> Date: Fri, 18 Oct 2013 11:18:53 +0530 Subject: [PATCH 48/51] ... --- Changelog.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Changelog.yaml b/Changelog.yaml index 9a4cfaa8c6..0d29ea91a2 100644 --- a/Changelog.yaml +++ b/Changelog.yaml @@ -72,10 +72,10 @@ - title: "Template language: Fix formatter function days_between to compute the right value when the answer is negative." - - title: "Windows: Fix spurious file in use by other process error if the book's folder contained multiple hardlinks pointing to the same file" + - title: "Windows: Fix spurious file in use by other process error if the book's folder contained multiple hard links pointing to the same file" tickets: [1240788, 1240194] - - title: "Windows: Fix duplicate files being created in very special circumstances when changing title and/or author. (the title or author had to be between 31 and 35 characters lng and the book entry had to have been created by a pre 1.x version of calibre)." + - title: "Windows: Fix duplicate files being created in very special circumstances when changing title and/or author. (the title or author had to be between 31 and 35 characters long and the book entry had to have been created by a pre 1.x version of calibre). You can check if your library has any such duplicates and remove them, by using the Check Library tool (Right click the calibre button on the toolbar and select Library Maintenance->Check Library)." improved recipes: - Wall Street Journal From bc85b0948e7223676261dba0e50811e743495a9a Mon Sep 17 00:00:00 2001 From: Kovid Goyal <kovid@kovidgoyal.net> Date: Fri, 18 Oct 2013 11:46:03 +0530 Subject: [PATCH 49/51] ... --- src/calibre/utils/filenames.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/calibre/utils/filenames.py b/src/calibre/utils/filenames.py index e998a11c7f..4bf1cffee3 100644 --- a/src/calibre/utils/filenames.py +++ b/src/calibre/utils/filenames.py @@ -352,12 +352,13 @@ class WindowsAtomicFolderMove(object): # in which case we use the same handle for both files fileid = name_to_fileid[x] found = False - for other in fileid_to_names[fileid]: - other = os.path.normcase(os.path.abspath(os.path.join(path, other))) - if other in self.handle_map: - self.handle_map[f] = self.handle_map[other] - found = True - break + if fileid is not None: + for other in fileid_to_names[fileid]: + other = os.path.normcase(os.path.abspath(os.path.join(path, other))) + if other in self.handle_map: + self.handle_map[f] = self.handle_map[other] + found = True + break if found: continue From cb617f76be32682a7e282c400ab7804f639f90a4 Mon Sep 17 00:00:00 2001 From: Kovid Goyal <kovid@kovidgoyal.net> Date: Fri, 18 Oct 2013 11:47:27 +0530 Subject: [PATCH 50/51] ... --- src/calibre/gui2/tweak_book/ui.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/calibre/gui2/tweak_book/ui.py b/src/calibre/gui2/tweak_book/ui.py index 66ffd5ce54..d54f55ed8e 100644 --- a/src/calibre/gui2/tweak_book/ui.py +++ b/src/calibre/gui2/tweak_book/ui.py @@ -41,7 +41,7 @@ class Main(MainWindow): self.status_bar = self.statusBar() self.l = QLabel('Placeholder') self.status_bar.addPermanentWidget(self.boss.save_manager.status_widget) - self.status_bar.addWidget(QLabel(_('%s %s created by %s') % (__appname__, get_version(), 'Kovid Goyal'))) + self.status_bar.addWidget(QLabel(_('{0} {1} created by {2}').format(__appname__, get_version(), 'Kovid Goyal'))) f = self.status_bar.font() f.setBold(True) self.status_bar.setFont(f) From 4e086bb3d6e4a3b020e0393abf4b896b93b2957f Mon Sep 17 00:00:00 2001 From: Kovid Goyal <kovid@kovidgoyal.net> Date: Fri, 18 Oct 2013 15:26:27 +0530 Subject: [PATCH 51/51] Ensure installers have correct permissions --- setup/upload.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/setup/upload.py b/setup/upload.py index 5d1936c739..e1a7fbbbc5 100644 --- a/setup/upload.py +++ b/setup/upload.py @@ -138,6 +138,8 @@ class UploadInstallers(Command): # {{{ available = set(glob.glob('dist/*')) files = {x:installer_description(x) for x in all_possible.intersection(available)} + for x in files: + os.chmod(x, stat.S_IRUSR|stat.S_IWUSR|stat.S_IRGRP|stat.S_IROTH) sizes = {os.path.basename(x):os.path.getsize(x) for x in files} self.record_sizes(sizes) tdir = mkdtemp()

3Uf(d_GRoMv9&dVh93 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 literal 0 HcmV?d00001 diff --git a/resources/images/textures/light_wood.png b/resources/images/textures/light_wood.png new file mode 100644 index 0000000000000000000000000000000000000000..0b4c35f8c321b6774e256e0cfff178831eaec894 GIT binary patch literal 171492 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�PuS{(pUIjbS(mr@{oiUEfz9lw@*OnemWM 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