CCCPaste

class_Album

class Album:
    def __init__(self, name, *songs):
        self.name = name
        self.songs = list(songs)
        self.published = False
        
        
    def add_song(self, song):
        if song.single:
            return f"Cannot add {song.name}. It's a single"
        if self.published:
            return "Cannot add songs. Album is published."
        if song in self.songs:
            return f"Song is already in the album."
            
        self.songs.append(song)
        return f"Song {song.name} has been added to the album {self.name}."
        
    def remove_song(self, song_name):
        if self.published:
            return f"Cannot remove songs. Album is published."
        for song in self.songs:
            if song.name = song_name:
                self.songs.remove(song)
                return f"Removed song {song.name} from album {self.name}."
                
        return f"Song is not in the album."
        
    def publish(self):
        if self.published:
            return f"Album {self.name} is already published."
        self.published = True
        return f"Album {self.name} has been published."
            
    def details(self):
        result += f"Album {self.name}\n"
        for song in self.songs:
            result += f'== {song.get_info()}\n'
        return result.strip()