diff --git a/good_ol_mixtape.py b/good_ol_mixtape.py index 34d76a8d5b9a63c489e30fc8069a8a96d05890f4..f0da90c416e6e5e1b9abf293913a84be092bedb7 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)