From 18ebeb998d80a8b6c2351144fef5d51d53e4fe7e Mon Sep 17 00:00:00 2001 From: Mathieu Loiseau <mathieu.loiseau@liris.cnrs.fr> Date: Tue, 17 May 2022 16:50:44 +0200 Subject: [PATCH] author, image, number of tracks --- g_ol_m.py | 5 ++++- good_ol_mixtape.py | 29 ++++++++++++++++++++--------- 2 files changed, 24 insertions(+), 10 deletions(-) diff --git a/g_ol_m.py b/g_ol_m.py index 0a9c6b3..4d1ed58 100755 --- a/g_ol_m.py +++ b/g_ol_m.py @@ -7,8 +7,11 @@ 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) +parser.add_argument("-a", "--mix_author", help="l'auteur du mix", type=str, default = None) +parser.add_argument("-i", "--mix_image", help="la couverture du mix", type=str, default = None) args = parser.parse_args() if __name__ == "__main__": - mx = MixTape(args.playlist, args.mix_title) + mx = MixTape(args.playlist, args.mix_title, args.mix_author, args.mix_image) + mx.update_tags() print(mx) diff --git a/good_ol_mixtape.py b/good_ol_mixtape.py index f0da90c..d9d17d0 100644 --- a/good_ol_mixtape.py +++ b/good_ol_mixtape.py @@ -28,6 +28,12 @@ class Song: def set_numInMix(self, mixNumber): self.track['tracknumber']=mixNumber + def set_totalnum(self, totalNumber): + self.track['totaltracks']=totalNumber + + def set_albumArtist(self, albumArtist): + self.track['albumartist'] = albumArtist + def replace_artwork(self, newImagePath): tmpArt = [] for a in self.track['artwork'].values: @@ -39,10 +45,11 @@ class Song: self.track.append_tag('artwork', a) def update_tag(self): - self.track.save() + #self.track.save() + print("uncomment to update "+str(self)) def __str__(self): - return f"{self.track['tracknumber'].first}. {self.track['album'].first}/{self.title} — {self.artist} (track #{self.o_number} of {self.o_album})" + return f"{self.track['tracknumber'].first}/{self.track['totaltracks'].first}. {self.track['album'].first}/{self.title} — {self.artist} (track #{self.o_number} of {self.o_album})" class MixTape: @classmethod @@ -53,26 +60,30 @@ class MixTape: else: return unquote(res) - def __init__(self, pl_path, title = None): + def __init__(self, pl_path, title = None, author = None, img = None): self.playlist = [] self.title = title - num = 1 + self.author = author + self.cover = img + num = 0 for s in m3u8.load(pl_path).segments: try: 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 + self.playlist.append(Song(MixTape.uri2path(s.uri), self.title, num, self.author, self.cover)) except ValueError as e: print(e) + num -= 1 + + def update_tags(self): + for t in self.playlist: + t.set_totalnum(len(self.playlist)) + t.update_tag() def __str__(self): res = "" for track in self.playlist: res += track.__str__()+"\n" return res - -if __name__ == "__main__": - track = Song("sampleData/archive/02. NoName - Rainforest.flac", "test", 5, mixCover = "sampleData/CONNECTED.png") - print(track) -- GitLab