def add_track(self, loc, trackdb): track = trackdb.get_track_by_loc(loc) if not track: track = Track(loc) respone = trackdb.add_track_from_trackobj(track) if not respone: return False tr_album = track.get_tag_raw('album', True) tr_albumartist = track.get_tag_raw('albumartist', True) if tr_albumartist == u'': tr_albumartist = track.get_tag_raw('artist', True) album = self.get_album_from_info(tr_album, tr_albumartist) if not album: # create new album album = Album(tr_album, tr_albumartist) self.__albums[(tr_album, tr_albumartist)] = album album.unchecked_add_song(track) self.__total_duration += track.get_tag_raw('__length') # cover = coverdb.get_cover(tr_album, tr_albumartist) # if not cover: # tr_cover = track.get_tag_disk('cover') # if tr_cover: # coverdb.add_cover(tr_album, tr_albumartist, tr_cover) return track
def remove_track(self, loc, trackdb): """ Remove song from playlist with given location. """ track = trackdb.get_track_by_loc(loc) if not track: track = Track(loc) if not track._scan_valid: return False tr_album = track.get_tag_raw('album', True) tr_albumartist = track.get_tag_raw('albumartist', True) if tr_albumartist == u'': tr_albumartist = track.get_tag_raw('artist', True) album = self.get_album_from_info(tr_album, tr_albumartist) if not album: return False return album.remove_track(loc)