def make_filename(self, current_filename, title, sortdate, podcast_title): dirname = os.path.dirname(current_filename) filename = os.path.basename(current_filename) basename, ext = os.path.splitext(filename) new_basename = [] new_basename.append(util.sanitize_encoding(title) + ext) if self.config.add_podcast_title: new_basename.insert(0, podcast_title) if self.config.add_sortdate: new_basename.insert(0, sortdate) new_basename = ' - '.join(new_basename) # On Windows, force ASCII encoding for filenames (bug 1724) new_basename = util.sanitize_filename(new_basename, use_ascii=gpodder.ui.win32) new_filename = os.path.join(dirname, new_basename) if new_filename == current_filename: return current_filename for filename in util.generate_names(new_filename): # Avoid filename collisions if not os.path.exists(filename): return filename
def find_unique_file_name(self, filename, extension): # Remove leading and trailing whitespace + dots (to avoid hidden files) filename = filename.strip("." + string.whitespace) + extension for name in util.generate_names(filename): if not self.db.episode_filename_exists(self.podcast_id, name) or self.download_filename == name: return name
def make_filename(self, current_filename, title, sortdate, podcast_title): dirname = os.path.dirname(current_filename) filename = os.path.basename(current_filename) basename, ext = os.path.splitext(filename) new_basename = [] new_basename.append(title) if self.config.add_podcast_title: new_basename.insert(0, podcast_title) if self.config.add_sortdate: new_basename.insert(0, sortdate) new_basename = ' - '.join(new_basename) # Remove unwanted characters and shorten filename (#494) # Also sanitize ext (see #591 where ext=.mp3?dest-id=754182) new_basename, ext = util.sanitize_filename_ext( new_basename, ext, PodcastEpisode.MAX_FILENAME_LENGTH, PodcastEpisode.MAX_FILENAME_WITH_EXT_LENGTH) new_filename = os.path.join(dirname, new_basename + '.' + ext) if new_filename == current_filename: return current_filename for filename in util.generate_names(new_filename): # Avoid filename collisions if not os.path.exists(filename): return filename
def make_filename(self, current_filename, title, sortdate, podcast_title): dirname = os.path.dirname(current_filename) filename = os.path.basename(current_filename) basename, ext = os.path.splitext(filename) ext = '.' + util.sanitize_filename(ext, PodcastEpisode.MAX_FILENAME_LENGTH) new_basename = [] new_basename.append(title) if self.config.add_podcast_title: new_basename.insert(0, podcast_title) if self.config.add_sortdate: new_basename.insert(0, sortdate) new_basename = ' - '.join(new_basename) # Remove unwanted characters and shorten filename (#494) new_basename = util.sanitize_filename(new_basename, PodcastEpisode.MAX_FILENAME_LENGTH) # add extension after sanitization, to keep it even if filename is longer than limit # (it's unlikely that new_basename + ext is longer than is allowed on platform). new_filename = os.path.join(dirname, new_basename + ext) if new_filename == current_filename: return current_filename for filename in util.generate_names(new_filename): # Avoid filename collisions if not os.path.exists(filename): return filename
def find_unique_folder_name(self, download_folder): # Remove trailing dots to avoid errors on Windows (bug 600) # Also remove leading dots to avoid hidden folders on Linux download_folder = download_folder.strip("." + string.whitespace) for folder_name in util.generate_names(download_folder): if not self.db.podcast_download_folder_exists(folder_name) or self.download_folder == folder_name: return folder_name
def find_unique_folder_name(self, download_folder): # Remove trailing dots to avoid errors on Windows (bug 600) # Also remove leading dots to avoid hidden folders on Linux download_folder = download_folder.strip('.' + string.whitespace) for folder_name in util.generate_names(download_folder): if (not self.db.podcast_download_folder_exists(folder_name) or self.download_folder == folder_name): return folder_name
def find_unique_file_name(self, filename, extension): # Remove leading and trailing whitespace + dots (to avoid hidden files) filename = filename.strip('.' + string.whitespace) + extension # Existing download folder names must not be used existing_names = [episode.download_filename for episode in self.podcast.episodes if episode is not self] for name in util.generate_names(filename): if name not in existing_names: return name
def find_unique_file_name(self, filename, extension): # Remove leading and trailing whitespace + dots (to avoid hidden files) filename = filename.strip('.' + string.whitespace) + extension # Existing download folder names must not be used existing_names = [episode.download_filename for episode in self.parent.episodes if episode is not self] for name in util.generate_names(filename): if name not in existing_names: return name
def find_unique_folder_name(self, download_folder): # Remove trailing dots to avoid errors on Windows (bug 600) # Also remove leading dots to avoid hidden folders on Linux download_folder = download_folder.strip('.' + string.whitespace) # Existing download folder names must not be used existing_names = [podcast.download_folder for podcast in self.model.get_podcasts() if podcast is not self] for folder_name in util.generate_names(download_folder): if folder_name not in existing_names: return folder_name
def find_unique_folder_name(self, download_folder): # Remove trailing dots to avoid errors on Windows (bug 600) # Also remove leading dots to avoid hidden folders on Linux download_folder = download_folder.strip('.' + string.whitespace) # Existing download folder names must not be used existing_names = [podcast.download_folder for podcast in self.model.get_podcasts() if podcast is not self] for folder_name in util.generate_names(download_folder): if folder_name not in existing_names: return folder_name
def make_filename(self, current_filename, title): dirname = os.path.dirname(current_filename) filename = os.path.basename(current_filename) basename, ext = os.path.splitext(filename) new_basename = util.sanitize_encoding(title) + ext new_filename = os.path.join(dirname, new_basename) if new_filename == current_filename: return current_filename for filename in util.generate_names(new_filename): # Avoid filename collisions if not os.path.exists(filename): return filename
def make_filename(self, current_filename, title): dirname = os.path.dirname(current_filename) filename = os.path.basename(current_filename) basename, ext = os.path.splitext(filename) new_basename = util.sanitize_encoding(title) + ext new_basename = util.sanitize_filename(new_basename) new_filename = os.path.join(dirname, new_basename) if new_filename == current_filename: return current_filename for filename in util.generate_names(new_filename): # Avoid filename collisions if not os.path.exists(filename): return filename
def make_filename(self, current_filename, title, sortdate = ''): dirname = os.path.dirname(current_filename) filename = os.path.basename(current_filename) basename, ext = os.path.splitext(filename) new_basename = sortdate + util.sanitize_encoding(title) + ext # On Windows, force ASCII encoding for filenames (bug 1724) new_basename = util.sanitize_filename(new_basename, use_ascii=gpodder.ui.win32) new_filename = os.path.join(dirname, new_basename) if new_filename == current_filename: return current_filename for filename in util.generate_names(new_filename): # Avoid filename collisions if not os.path.exists(filename): return filename
def make_filename(self, current_filename, title): dirname = os.path.dirname(current_filename) filename = os.path.basename(current_filename) basename, ext = os.path.splitext(filename) new_basename = util.sanitize_encoding(title) + ext # On Windows, force ASCII encoding for filenames (bug 1724) new_basename = util.sanitize_filename(new_basename, use_ascii=gpodder.ui.win32) new_filename = os.path.join(dirname, new_basename) if new_filename == current_filename: return current_filename for filename in util.generate_names(new_filename): # Avoid filename collisions if not os.path.exists(filename): return filename
def make_filename(self, current_filename, title, sortdate, podcast_title): dirname = os.path.dirname(current_filename) filename = os.path.basename(current_filename) basename, ext = os.path.splitext(filename) new_basename = [] new_basename.append(title + ext) if self.config.add_podcast_title: new_basename.insert(0, podcast_title) if self.config.add_sortdate: new_basename.insert(0, sortdate) new_basename = ' - '.join(new_basename) # On Windows, force ASCII encoding for filenames (bug 1724) new_basename = util.sanitize_filename(new_basename) new_filename = os.path.join(dirname, new_basename) if new_filename == current_filename: return current_filename for filename in util.generate_names(new_filename): # Avoid filename collisions if not os.path.exists(filename): return filename