示例#1
0
    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
示例#2
0
 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)