def get_target_audio_file_filename(self, filename, id3, trackn_max_digits): """ Get a tunned filename. Arguments: :param filename: string e.g.: file.mp3 :param id3: dictionary -- dictionary which includes mutagen data for each key :paran trackn_max_digits: integer :return: string """ filename_name, filename_ext = os.path.basename(os.path.splitext(filename)[0]), os.path.splitext(filename)[1] (trackn, artist, title) = (id3.get('trackn', []), id3.get('artist', []), id3.get('title', [])) if trackn[0] and artist[0] and title[0]: filename_name = "%s %s - %s" %(self.get_trackn_padded(trackn, trackn_max_digits), artist, title) elif artist[0] and title[0]: filename_name = "%s - %s" %(artist, title) return "%s%s" %(slugy(filename_name, "_"), filename_ext)
def get_top_hat_target_dir(self, directory, id3, is_a_va_album=False): """ Get a "magic" tune directory name from id3 data, determinated as: If there is data on id3_album, id3_artist and id3_genre, creates a string with them, else original path. In any case, it slugs the final string before returning it. Arguments: :param directory: string -- e.g.: directory :param id3: dictionary :param is_a_va_album: boolean :return: string """ (artist, album, genre) = (id3.get('artist', ('',))[0], id3.get('album', ('',))[0], id3.get('genre', ('',))[0]) if album and artist and is_a_va_album is False: directory = "%s - %s" %(artist, album) elif album and is_a_va_album is True: directory = "%s" %(album) if 'soundtrack' in str(genre).lower(): directory = "OST - %s" %(directory) return slugy(directory, ' ', False)