diff --git a/g_ol_m.py b/g_ol_m.py index 4beb6b50f7efa16036c13ab3c153a8e19419902c..0a9c6b367499a43eef3d815c49cd65695754fb87 100755 --- a/g_ol_m.py +++ b/g_ol_m.py @@ -6,8 +6,9 @@ import argparse from good_ol_mixtape import MixTape parser = argparse.ArgumentParser(description="Créer une mix-tape") parser.add_argument("-p", "--playlist", help="le fichier .m3u8 de la playlist", type=str) +parser.add_argument("-t", "--mix_title", help="le titre du mix", type=str, default = None) args = parser.parse_args() if __name__ == "__main__": - mx = MixTape(args.playlist) + mx = MixTape(args.playlist, args.mix_title) print(mx) diff --git a/good_ol_mixtape.py b/good_ol_mixtape.py index 0849d9430fc4681b3de54a083073e467bebf0e0c..34d76a8d5b9a63c489e30fc8069a8a96d05890f4 100644 --- a/good_ol_mixtape.py +++ b/good_ol_mixtape.py @@ -6,11 +6,26 @@ import music_tag from urllib.parse import unquote class Song: - def __init__(self,song_path): - self.file = music_tag.load_file(song_path) + def __init__(self,song_path, mixAlbum = None, mixNumber = None): + self.track = music_tag.load_file(song_path) + self.title = self.track['title'].first + self.o_album = self.track['album'].first + self.artist = self.track['artist'].first + self.o_number = self.track['tracknumber'].first + self.o_year = self.track['year'].first + if mixAlbum != None: + self.set_mixTitle(mixAlbum) + if mixNumber != None: + self.set_numInMix(mixNumber) + + def set_mixTitle(self, mixAlbum): + self.track['album']=mixAlbum + + def set_numInMix(self, mixNumber): + self.track['tracknumber']=mixNumber def __str__(self): - return str(self.file['title']) + return f"{self.track['tracknumber'].first}. {self.track['album'].first}/{self.title} — {self.artist} (track #{self.o_number} of {self.o_album})" class MixTape: @classmethod @@ -21,11 +36,17 @@ class MixTape: else: return unquote(res) - def __init__(self, pl_path): + def __init__(self, pl_path, title = None): self.playlist = [] + self.title = title + num = 1 for s in m3u8.load(pl_path).segments: try: - self.playlist.append(Song(MixTape.uri2path(s.uri))) + if self.title == None : + self.playlist.append(Song(MixTape.uri2path(s.uri))) + else: + self.playlist.append(Song(MixTape.uri2path(s.uri), self.title, num)) + num += 1 except ValueError as e: print(e)