Ejemplo n.º 1
0
    def AddToRemoveFromPlaylist(self, playlistID):
        selected = self.list[self.selected]
        if self.browser.level == 'tracks_list':
            logger.info("Adding track to playlist")
            Database.AddToPlaylist(selected['id'], playlistID)

        elif self.browser.level == 'playlist_tracks':
            logger.info("Deleting track from playlist")
            Database.RemoveFromPlaylist(selected['id'], playlistID)

        elif self.browser.level == 'fs_playlist':
            logger.info("Deleting track from filesystem playlist")
            Database.RemoveFromFilesystemPlaylist(selected['location'],
                                                  playlistID)

        elif self.browser.level == 'path':
            logger.info("Adding track to filesystem playlist")
            logger.debug5(
                "************ at AddToRemoveFromPlaylist() , selected: %s" %
                selected)
            from publish.RecursiveParser import RecursiveParser
            if os.path.isdir(selected['location']):
                # if selection is a directory, add files recursively
                parser = RecursiveParser()
                supportedFormats = ['ogg']
                files = parser.getRecursiveFileList(selected['location'],
                                                    supportedFormats)
                for file in files:
                    Database.AddToFilesystemPlaylist(os.path.basename(file),
                                                     file, playlistID)

            Database.AddToFilesystemPlaylist(selected['name'],
                                             selected['location'], playlistID)

        else:
            logger.info(
                "Not a track (self.browser.level = %s) .. not adding to playlist"
                % self.browser.level)