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 diff --git a/src/calibre/devices/apple/driver.py b/src/calibre/devices/apple/driver.py index b7d5ac36d2..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) @@ -2754,8 +2753,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 +2763,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 +2783,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 +2795,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 +2811,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 +2848,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 +2858,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 +2891,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 +2919,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: @@ -2975,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