mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Fix #783229 (iTunes Metadata Plugboard Override is Ignored / Incorrect)
This commit is contained in:
commit
7f341398d0
@ -31,3 +31,4 @@ nbproject/
|
|||||||
.pydevproject
|
.pydevproject
|
||||||
.settings/
|
.settings/
|
||||||
*.DS_Store
|
*.DS_Store
|
||||||
|
calibre_plugins/
|
@ -941,7 +941,7 @@ class ITUNES(DriverBase):
|
|||||||
# declared in use_plugboard_ext and a device name of ITUNES
|
# declared in use_plugboard_ext and a device name of ITUNES
|
||||||
if DEBUG:
|
if DEBUG:
|
||||||
self.log.info("ITUNES.set_plugboard()")
|
self.log.info("ITUNES.set_plugboard()")
|
||||||
#self.log.info(' using plugboard %s' % plugboards)
|
#self.log.info(' plugboard: %s' % plugboards)
|
||||||
self.plugboards = plugboards
|
self.plugboards = plugboards
|
||||||
self.plugboard_func = pb_func
|
self.plugboard_func = pb_func
|
||||||
|
|
||||||
@ -1052,7 +1052,6 @@ class ITUNES(DriverBase):
|
|||||||
'title': metadata[i].title,
|
'title': metadata[i].title,
|
||||||
'uuid': metadata[i].uuid }
|
'uuid': metadata[i].uuid }
|
||||||
|
|
||||||
|
|
||||||
# Report progress
|
# Report progress
|
||||||
if self.report_progress is not None:
|
if self.report_progress is not None:
|
||||||
self.report_progress((i+1)/file_count, _('%d of %d') % (i+1, file_count))
|
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
|
# Update metadata from plugboard
|
||||||
# If self.plugboard is None (no transforms), original metadata is returned intact
|
# If self.plugboard is None (no transforms), original metadata is returned intact
|
||||||
metadata_x = self._xform_metadata_via_plugboard(metadata, this_book.format)
|
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 isosx:
|
||||||
if lb_added:
|
if lb_added:
|
||||||
lb_added.name.set(metadata_x.title)
|
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.description.set("%s %s" % (self.description_prefix,strftime('%Y-%m-%d %H:%M:%S')))
|
||||||
lb_added.enabled.set(True)
|
lb_added.enabled.set(True)
|
||||||
lb_added.sort_artist.set(icu_title(metadata_x.author_sort))
|
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:
|
if db_added:
|
||||||
db_added.name.set(metadata_x.title)
|
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.description.set("%s %s" % (self.description_prefix,strftime('%Y-%m-%d %H:%M:%S')))
|
||||||
db_added.enabled.set(True)
|
db_added.enabled.set(True)
|
||||||
db_added.sort_artist.set(icu_title(metadata_x.author_sort))
|
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 metadata_x.comments:
|
||||||
if lb_added:
|
if lb_added:
|
||||||
@ -2785,6 +2783,7 @@ class ITUNES(DriverBase):
|
|||||||
|
|
||||||
# Set genre from series if available, else first alpha tag
|
# Set genre from series if available, else first alpha tag
|
||||||
# Otherwise iTunes grabs the first dc:subject from the opf metadata
|
# 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 metadata_x.series and self.settings().extra_customization[self.USE_SERIES_AS_CATEGORY]:
|
||||||
if DEBUG:
|
if DEBUG:
|
||||||
self.log.info(" ITUNES._update_iTunes_metadata()")
|
self.log.info(" ITUNES._update_iTunes_metadata()")
|
||||||
@ -2796,6 +2795,8 @@ class ITUNES(DriverBase):
|
|||||||
fraction = index-integer
|
fraction = index-integer
|
||||||
series_index = '%04d%s' % (integer, str('%0.4f' % fraction).lstrip('0'))
|
series_index = '%04d%s' % (integer, str('%0.4f' % fraction).lstrip('0'))
|
||||||
if lb_added:
|
if lb_added:
|
||||||
|
# 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.sort_name.set("%s %s" % (self.title_sorter(metadata_x.series), series_index))
|
||||||
lb_added.episode_ID.set(metadata_x.series)
|
lb_added.episode_ID.set(metadata_x.series)
|
||||||
lb_added.episode_number.set(metadata_x.series_index)
|
lb_added.episode_number.set(metadata_x.series_index)
|
||||||
@ -2810,6 +2811,8 @@ class ITUNES(DriverBase):
|
|||||||
break
|
break
|
||||||
|
|
||||||
if db_added:
|
if db_added:
|
||||||
|
# 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.sort_name.set("%s %s" % (self.title_sorter(metadata_x.series), series_index))
|
||||||
db_added.episode_ID.set(metadata_x.series)
|
db_added.episode_ID.set(metadata_x.series)
|
||||||
db_added.episode_number.set(metadata_x.series_index)
|
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.Description = ("%s %s" % (self.description_prefix,strftime('%Y-%m-%d %H:%M:%S')))
|
||||||
lb_added.Enabled = True
|
lb_added.Enabled = True
|
||||||
lb_added.SortArtist = icu_title(metadata_x.author_sort)
|
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:
|
if db_added:
|
||||||
db_added.Name = metadata_x.title
|
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.Description = ("%s %s" % (self.description_prefix,strftime('%Y-%m-%d %H:%M:%S')))
|
||||||
db_added.Enabled = True
|
db_added.Enabled = True
|
||||||
db_added.SortArtist = icu_title(metadata_x.author_sort)
|
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 metadata_x.comments:
|
||||||
if lb_added:
|
if lb_added:
|
||||||
@ -2888,6 +2891,8 @@ class ITUNES(DriverBase):
|
|||||||
fraction = index-integer
|
fraction = index-integer
|
||||||
series_index = '%04d%s' % (integer, str('%0.4f' % fraction).lstrip('0'))
|
series_index = '%04d%s' % (integer, str('%0.4f' % fraction).lstrip('0'))
|
||||||
if lb_added:
|
if lb_added:
|
||||||
|
# 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.SortName = "%s %s" % (self.title_sorter(metadata_x.series), series_index)
|
||||||
lb_added.EpisodeID = metadata_x.series
|
lb_added.EpisodeID = metadata_x.series
|
||||||
|
|
||||||
@ -2914,6 +2919,8 @@ class ITUNES(DriverBase):
|
|||||||
break
|
break
|
||||||
|
|
||||||
if db_added:
|
if db_added:
|
||||||
|
# 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.SortName = "%s %s" % (self.title_sorter(metadata_x.series), series_index)
|
||||||
db_added.EpisodeID = metadata_x.series
|
db_added.EpisodeID = metadata_x.series
|
||||||
|
|
||||||
@ -2975,6 +2982,9 @@ class ITUNES(DriverBase):
|
|||||||
newmi.publisher if book.publisher != newmi.publisher else ''))
|
newmi.publisher if book.publisher != newmi.publisher else ''))
|
||||||
self.log.info(" tags: %s %s" % (book.tags, ">>> %s" %
|
self.log.info(" tags: %s %s" % (book.tags, ">>> %s" %
|
||||||
newmi.tags if book.tags != newmi.tags else ''))
|
newmi.tags if book.tags != newmi.tags else ''))
|
||||||
|
else:
|
||||||
|
self.log(" matching plugboard not found")
|
||||||
|
|
||||||
else:
|
else:
|
||||||
newmi = book
|
newmi = book
|
||||||
return newmi
|
return newmi
|
||||||
|
Loading…
x
Reference in New Issue
Block a user