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