From 405aea0cb5ac0e03c57e9ffb22d873629b5e8810 Mon Sep 17 00:00:00 2001 From: Mathieu Loiseau <mathieu.loiseau@liris.cnrs.fr> Date: Tue, 17 May 2022 16:39:07 +0200 Subject: [PATCH] update cover --- good_ol_mixtape.py | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/good_ol_mixtape.py b/good_ol_mixtape.py index 34d76a8..f0da90c 100644 --- a/good_ol_mixtape.py +++ b/good_ol_mixtape.py @@ -6,7 +6,7 @@ import music_tag from urllib.parse import unquote class Song: - def __init__(self,song_path, mixAlbum = None, mixNumber = None): + def __init__(self,song_path, mixAlbum = None, mixNumber = None, mixAuthor=None, mixCover=None): self.track = music_tag.load_file(song_path) self.title = self.track['title'].first self.o_album = self.track['album'].first @@ -17,6 +17,10 @@ class Song: self.set_mixTitle(mixAlbum) if mixNumber != None: self.set_numInMix(mixNumber) + if mixAuthor != None: + self.set_albumArtist(mixAuthor) + if mixCover != None: + self.replace_artwork(mixCover) def set_mixTitle(self, mixAlbum): self.track['album']=mixAlbum @@ -24,6 +28,19 @@ class Song: def set_numInMix(self, mixNumber): self.track['tracknumber']=mixNumber + def replace_artwork(self, newImagePath): + tmpArt = [] + for a in self.track['artwork'].values: + tmpArt.append(a)#.data) + self.track.remove_tag('artwork') + with open(newImagePath, 'rb') as img_in: + self.track.append_tag('artwork', img_in.read()) + for a in tmpArt: + self.track.append_tag('artwork', a) + + def update_tag(self): + self.track.save() + 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})" @@ -55,3 +72,7 @@ class MixTape: 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