don't eat extension's dot in sanitize_filename_ext

it's too confusing: caused bugs in core itself (#630)
This commit is contained in:
Eric Le Lay 2019-06-09 16:05:16 +02:00
parent cc3e0563fd
commit 42cd004935
4 changed files with 8 additions and 9 deletions

View file

@ -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

View file

@ -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):

View file

@ -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)

View file

@ -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):