From 6e28eb1713cf1d76249d7854faa3d1ce9f6e3241 Mon Sep 17 00:00:00 2001 From: GRiker Date: Fri, 13 May 2011 05:01:03 -0600 Subject: [PATCH 1/3] Added src/calibre_plugins/ to ignore list --- .bzrignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.bzrignore b/.bzrignore index aa6637bc7a..005391bf46 100644 --- a/.bzrignore +++ b/.bzrignore @@ -31,3 +31,4 @@ nbproject/ .pydevproject .settings/ *.DS_Store +calibre_plugins/ \ No newline at end of file From 654d55c3493b704c6626bc112c6b01e3062edde8 Mon Sep 17 00:00:00 2001 From: GRiker Date: Wed, 18 May 2011 08:30:46 -0600 Subject: [PATCH 2/3] revised logic in _update_iTunes_metadata() to properly utilized title_sort plugboard transform values. If present, overrides setting title_sort to index/series when USE_SERIES_AS_CATEGORY is true. Fixes bug #783229 --- src/calibre/devices/apple/driver.py | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/src/calibre/devices/apple/driver.py b/src/calibre/devices/apple/driver.py index b7d5ac36d2..4201215a0f 100644 --- a/src/calibre/devices/apple/driver.py +++ b/src/calibre/devices/apple/driver.py @@ -2754,8 +2754,7 @@ class ITUNES(DriverBase): lb_added.description.set("%s %s" % (self.description_prefix,strftime('%Y-%m-%d %H:%M:%S'))) lb_added.enabled.set(True) lb_added.sort_artist.set(icu_title(metadata_x.author_sort)) - lb_added.sort_name.set(metadata.title_sort) - + lb_added.sort_name.set(metadata_x.title_sort) if db_added: db_added.name.set(metadata_x.title) @@ -2765,7 +2764,7 @@ class ITUNES(DriverBase): db_added.description.set("%s %s" % (self.description_prefix,strftime('%Y-%m-%d %H:%M:%S'))) db_added.enabled.set(True) db_added.sort_artist.set(icu_title(metadata_x.author_sort)) - db_added.sort_name.set(metadata.title_sort) + db_added.sort_name.set(metadata_x.title_sort) if metadata_x.comments: if lb_added: @@ -2785,6 +2784,7 @@ class ITUNES(DriverBase): # Set genre from series if available, else first alpha tag # Otherwise iTunes grabs the first dc:subject from the opf metadata + # If title_sort applied in plugboard, that overrides using series/index as title_sort if metadata_x.series and self.settings().extra_customization[self.USE_SERIES_AS_CATEGORY]: if DEBUG: self.log.info(" ITUNES._update_iTunes_metadata()") @@ -2796,7 +2796,9 @@ class ITUNES(DriverBase): fraction = index-integer series_index = '%04d%s' % (integer, str('%0.4f' % fraction).lstrip('0')) if lb_added: - lb_added.sort_name.set("%s %s" % (self.title_sorter(metadata_x.series), series_index)) + # If no title_sort plugboard tweak, create sort_name from series/index + if metadata.title_sort == metadata_x.title_sort: + lb_added.sort_name.set("%s %s" % (self.title_sorter(metadata_x.series), series_index)) lb_added.episode_ID.set(metadata_x.series) lb_added.episode_number.set(metadata_x.series_index) @@ -2810,7 +2812,9 @@ class ITUNES(DriverBase): break if db_added: - db_added.sort_name.set("%s %s" % (self.title_sorter(metadata_x.series), series_index)) + # If no title_sort plugboard tweak, create sort_name from series/index + if metadata.title_sort == metadata_x.title_sort: + db_added.sort_name.set("%s %s" % (self.title_sorter(metadata_x.series), series_index)) db_added.episode_ID.set(metadata_x.series) db_added.episode_number.set(metadata_x.series_index) @@ -2845,7 +2849,7 @@ class ITUNES(DriverBase): lb_added.Description = ("%s %s" % (self.description_prefix,strftime('%Y-%m-%d %H:%M:%S'))) lb_added.Enabled = True lb_added.SortArtist = icu_title(metadata_x.author_sort) - lb_added.SortName = metadata.title_sort + lb_added.SortName = metadata_x.title_sort if db_added: db_added.Name = metadata_x.title @@ -2855,7 +2859,7 @@ class ITUNES(DriverBase): db_added.Description = ("%s %s" % (self.description_prefix,strftime('%Y-%m-%d %H:%M:%S'))) db_added.Enabled = True db_added.SortArtist = icu_title(metadata_x.author_sort) - db_added.SortName = metadata.title_sort + db_added.SortName = metadata_x.title_sort if metadata_x.comments: if lb_added: @@ -2888,7 +2892,9 @@ class ITUNES(DriverBase): fraction = index-integer series_index = '%04d%s' % (integer, str('%0.4f' % fraction).lstrip('0')) if lb_added: - lb_added.SortName = "%s %s" % (self.title_sorter(metadata_x.series), series_index) + # If no title_sort plugboard tweak, create sort_name from series/index + if metadata.title_sort == metadata_x.title_sort: + lb_added.SortName = "%s %s" % (self.title_sorter(metadata_x.series), series_index) lb_added.EpisodeID = metadata_x.series try: @@ -2914,7 +2920,9 @@ class ITUNES(DriverBase): break if db_added: - db_added.SortName = "%s %s" % (self.title_sorter(metadata_x.series), series_index) + # If no title_sort plugboard tweak, create sort_name from series/index + if metadata.title_sort == metadata_x.title_sort: + db_added.SortName = "%s %s" % (self.title_sorter(metadata_x.series), series_index) db_added.EpisodeID = metadata_x.series try: From fa3f01c95066c431d72cfe4dcfb6d7d092269431 Mon Sep 17 00:00:00 2001 From: GRiker Date: Thu, 19 May 2011 06:40:57 -0600 Subject: [PATCH 3/3] Further revisions after chaley's patch to library.save_to_disk:find_plugboard(). Fixes #783229 --- src/calibre/devices/apple/driver.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/calibre/devices/apple/driver.py b/src/calibre/devices/apple/driver.py index 4201215a0f..42949215b2 100644 --- a/src/calibre/devices/apple/driver.py +++ b/src/calibre/devices/apple/driver.py @@ -941,7 +941,7 @@ class ITUNES(DriverBase): # declared in use_plugboard_ext and a device name of ITUNES if DEBUG: self.log.info("ITUNES.set_plugboard()") - #self.log.info(' using plugboard %s' % plugboards) + #self.log.info(' plugboard: %s' % plugboards) self.plugboards = plugboards self.plugboard_func = pb_func @@ -1052,7 +1052,6 @@ class ITUNES(DriverBase): 'title': metadata[i].title, 'uuid': metadata[i].uuid } - # Report progress if self.report_progress is not None: self.report_progress((i+1)/file_count, _('%d of %d') % (i+1, file_count)) @@ -2744,7 +2743,7 @@ class ITUNES(DriverBase): # Update metadata from plugboard # If self.plugboard is None (no transforms), original metadata is returned intact metadata_x = self._xform_metadata_via_plugboard(metadata, this_book.format) - + self.log("metadata.title_sort: %s metadata_x.title_sort: %s" % (metadata.title_sort, metadata_x.title_sort)) if isosx: if lb_added: lb_added.name.set(metadata_x.title) @@ -2983,6 +2982,9 @@ class ITUNES(DriverBase): newmi.publisher if book.publisher != newmi.publisher else '')) self.log.info(" tags: %s %s" % (book.tags, ">>> %s" % newmi.tags if book.tags != newmi.tags else '')) + else: + self.log(" matching plugboard not found") + else: newmi = book return newmi