From 42cd0049356d70ecbc963a723ac8e41bb1261dae Mon Sep 17 00:00:00 2001 From: Eric Le Lay Date: Sun, 9 Jun 2019 16:05:16 +0200 Subject: [PATCH] don't eat extension's dot in sanitize_filename_ext it's too confusing: caused bugs in core itself (#630) --- share/gpodder/extensions/rename_download.py | 2 +- src/gpodder/gtkui/main.py | 2 +- src/gpodder/model.py | 1 - src/gpodder/util.py | 12 ++++++------ 4 files changed, 8 insertions(+), 9 deletions(-) diff --git a/share/gpodder/extensions/rename_download.py b/share/gpodder/extensions/rename_download.py index 53a8fead..56330a2e 100644 --- a/share/gpodder/extensions/rename_download.py +++ b/share/gpodder/extensions/rename_download.py @@ -63,7 +63,7 @@ class gPodderExtension: ext, PodcastEpisode.MAX_FILENAME_LENGTH, PodcastEpisode.MAX_FILENAME_WITH_EXT_LENGTH) - new_filename = os.path.join(dirname, new_basename + '.' + ext) + new_filename = os.path.join(dirname, new_basename + ext) if new_filename == current_filename: return current_filename diff --git a/src/gpodder/gtkui/main.py b/src/gpodder/gtkui/main.py index 6f6a0886..495b94c7 100644 --- a/src/gpodder/gtkui/main.py +++ b/src/gpodder/gtkui/main.py @@ -1717,7 +1717,7 @@ class gPodder(BuilderWidget, dbus.service.Object): PodcastEpisode.MAX_FILENAME_LENGTH, PodcastEpisode.MAX_FILENAME_WITH_EXT_LENGTH) if not filename.endswith(extension): - filename += "." + extension + filename += extension return filename def save_episodes_as_file(self, episodes): diff --git a/src/gpodder/model.py b/src/gpodder/model.py index e5e7426b..39dd9d3e 100644 --- a/src/gpodder/model.py +++ b/src/gpodder/model.py @@ -477,7 +477,6 @@ class PodcastEpisode(PodcastModelObject): ext, self.MAX_FILENAME_LENGTH, self.MAX_FILENAME_WITH_EXT_LENGTH) - ext = '.' + ext # Find a unique filename for this episode wanted_filename = self.find_unique_file_name(fn_template, ext) diff --git a/src/gpodder/util.py b/src/gpodder/util.py index 3fd717fe..0d5445a9 100644 --- a/src/gpodder/util.py +++ b/src/gpodder/util.py @@ -1501,17 +1501,17 @@ def sanitize_filename_ext(filename, ext, max_length, max_length_with_ext): Truncate filename if greater than max_length. Truncate extension if filename.extension is greater than max_length_with_ext. :param str filename: filename without extension - :param str ext: extension without dot - :return (str, str): (sanitized_truncated_filename, sanitized_extension_without_dot) + :param str ext: extension + :return (str, str): (sanitized_truncated_filename, sanitized_extension) >>> sanitize_filename_ext('podcast_4987_faz_essay_der_podcast_fur_die_geschichte' \ '_hinter_den_nachrichten_episode_4_04_die_macht_der_tater_brechen', \ - "mp3", 120, 131) - ('podcast_4987_faz_essay_der_podcast_fur_die_geschichte_hinter_den_nachrichten_episode_4_04_die_macht_der_tater_brechen', 'mp3') + ".mp3", 120, 131) + ('podcast_4987_faz_essay_der_podcast_fur_die_geschichte_hinter_den_nachrichten_episode_4_04_die_macht_der_tater_brechen', '.mp3') """ sanitized_fn = sanitize_filename(filename, max_length) - sanitized_ext = sanitize_filename(ext, max_length_with_ext - len(sanitized_fn) - 1) - return (sanitized_fn, sanitized_ext) + sanitized_ext = sanitize_filename(ext, max_length_with_ext - len(sanitized_fn)) + return (sanitized_fn, "." + sanitized_ext) def find_mount_point(directory):