diff --git a/src/calibre/gui2/dialogs/epub.py b/src/calibre/gui2/dialogs/epub.py index 0773440b01..e61d034642 100644 --- a/src/calibre/gui2/dialogs/epub.py +++ b/src/calibre/gui2/dialogs/epub.py @@ -176,19 +176,19 @@ class Config(ResizableDialog, Ui_Dialog): def get_metadata(self): title, authors = self.get_title_and_authors() mi = MetaInformation(title, authors) - publisher = unicode(self.publisher.text()) + publisher = unicode(self.publisher.text()).strip() if publisher: mi.publisher = publisher - author_sort = unicode(self.author_sort.text()) + author_sort = unicode(self.author_sort.text()).strip() if author_sort: mi.author_sort = author_sort - comments = unicode(self.comment.toPlainText()) + comments = unicode(self.comment.toPlainText()).strip() if comments: mi.comments = comments mi.series_index = int(self.series_index.value()) if self.series.currentIndex() > -1: - mi.series = unicode(self.series.currentText()) - tags = [t.strip() for t in unicode(self.tags.text()).split(',')] + mi.series = unicode(self.series.currentText()).strip() + tags = [t.strip() for t in unicode(self.tags.text()).strip().split(',')] if tags: mi.tags = tags @@ -267,6 +267,7 @@ class Config(ResizableDialog, Ui_Dialog): ).exec_() return mi = self.get_metadata() + self.user_mi = mi self.read_settings() self.cover_file = None if self.row is not None: diff --git a/src/calibre/gui2/tools.py b/src/calibre/gui2/tools.py index aca2da74e2..7185f73a37 100644 --- a/src/calibre/gui2/tools.py +++ b/src/calibre/gui2/tools.py @@ -52,10 +52,10 @@ def convert_single(fmt, parent, db, comics, others): temp_files.append(d.cover_file) opts.cover = d.cover_file.name temp_files.extend([d.opf_file, pt, of]) - jobs.append(('any2'+fmt, args, _('Convert book: ')+d.mi.title, + jobs.append(('any2'+fmt, args, _('Convert book: ')+d.mi.title, fmt.upper(), row_id, temp_files)) changed = True - + for row, row_id in zip(comics, comics_ids): mi = db.get_metadata(row) title = author = _('Unknown') @@ -72,7 +72,7 @@ def convert_single(fmt, parent, db, comics, others): try: data = db.format(row, _fmt.upper()) if data is not None: - break + break except: continue pt = PersistentTemporaryFile('.'+_fmt) @@ -84,12 +84,12 @@ def convert_single(fmt, parent, db, comics, others): opts.verbose = 2 args = [pt.name, opts] changed = True - jobs.append(('comic2'+fmt, args, _('Convert comic: ')+opts.title, + jobs.append(('comic2'+fmt, args, _('Convert comic: ')+opts.title, fmt.upper(), row_id, [pt, of])) - + return jobs, changed - - + + def convert_single_lrf(parent, db, comics, others): changed = False @@ -114,10 +114,10 @@ def convert_single_lrf(parent, db, comics, others): if d.cover_file: temp_files.append(d.cover_file) temp_files.extend([pt, of]) - jobs.append(('any2lrf', [cmdline], _('Convert book: ')+d.title(), + jobs.append(('any2lrf', [cmdline], _('Convert book: ')+d.title(), 'LRF', row_id, temp_files)) changed = True - + for row, row_id in zip(comics, comics_ids): mi = db.get_metadata(row) title = author = _('Unknown') @@ -134,7 +134,7 @@ def convert_single_lrf(parent, db, comics, others): try: data = db.format(row, fmt.upper()) if data is not None: - break + break except: continue if data is None: @@ -148,19 +148,20 @@ def convert_single_lrf(parent, db, comics, others): opts.verbose = 1 args = [pt.name, opts] changed = True - jobs.append(('comic2lrf', args, _('Convert comic: ')+opts.title, + jobs.append(('comic2lrf', args, _('Convert comic: ')+opts.title, 'LRF', row_id, [pt, of])) - + return jobs, changed def convert_bulk(fmt, parent, db, comics, others): if others: d = get_dialog(fmt)(parent, db) if d.exec_() != QDialog.Accepted: - others = [] + others, user_mi = [], None else: opts = d.opts opts.verbose = 2 + user_mi = d.user_mi if comics: comic_opts = ComicConf.get_bulk_conversion_options(parent) if not comic_opts: @@ -171,7 +172,7 @@ def convert_bulk(fmt, parent, db, comics, others): if total == 0: return parent.status_bar.showMessage(_('Starting Bulk conversion of %d books')%total, 2000) - + for i, row in enumerate(others+comics): row_id = db.id(row) if row in others: @@ -188,6 +189,11 @@ def convert_bulk(fmt, parent, db, comics, others): continue options = opts.copy() mi = db.get_metadata(row) + if user_mi is not None: + if user_mi.series_index == 1: + user_mi.series_index = None + mi.smart_update(user_mi) + db.set_metadata(db.id(row), mi) opf = OPFCreator(os.getcwdu(), mi) opf_file = PersistentTemporaryFile('.opf') opf.render(opf_file) @@ -223,10 +229,10 @@ def convert_bulk(fmt, parent, db, comics, others): try: data = db.format(row, _fmt.upper()) if data is not None: - break + break except: continue - + pt = PersistentTemporaryFile('.'+_fmt.lower()) pt.write(data) pt.close() @@ -236,17 +242,17 @@ def convert_bulk(fmt, parent, db, comics, others): options.verbose = 1 args = [pt.name, options] desc = _('Convert book %d of %d (%s)')%(i+1, total, repr(mi.title)) - jobs.append(('comic2'+fmt, args, desc, fmt.upper(), row_id, [pt, of])) - + jobs.append(('comic2'+fmt, args, desc, fmt.upper(), row_id, [pt, of])) + if bad_rows: res = [] for row in bad_rows: title = db.title(row) res.append('
Could not convert %d of %d books, because no suitable source format was found.
Could not convert %d of %d books, because no suitable source format was found.