From d2682c31aca8e577934773e93f7237aa6cae9165 Mon Sep 17 00:00:00 2001 From: Mathieu Loiseau <mathieu.loiseau@liris.cnrs.fr> Date: Tue, 17 May 2022 16:21:31 +0200 Subject: [PATCH] read and modify tags --- g_ol_m.py | 3 ++- good_ol_mixtape.py | 31 ++++++++++++++++++++++++++----- 2 files changed, 28 insertions(+), 6 deletions(-) diff --git a/g_ol_m.py b/g_ol_m.py index 4beb6b5..0a9c6b3 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 0849d94..34d76a8 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) -- GitLab