Sha256: add4f7e60bcd44de64ce91c1ecf30657d872622433b6ff1b699e32a81ef131e9

Contents?: true

Size: 1.15 KB

Versions: 1

Compression:

Stored size: 1.15 KB

Contents

module Grooveshark
  class Playlist
    attr_reader :id, :user_id
    attr_reader :name, :about, :picture, :username
    attr_reader :songs
    
    def initialize(client, data=nil, user_id=nil)
      @client = client
      @songs = []
    
      if data
        @id       = data['PlaylistID']
        @name     = data['Name']
        @about    = data['About']
        @picture  = data['Picture']
        @user_id  = data['UserID'] || user_id
        @username = data['Username']
      end
    end

    # Fetch playlist songs
    def load_songs
      @songs = @client.request('playlistGetSongs', :playlistID => @id)['Songs']
      @songs.map! { |s| Song.new(s) }
    end
    
    # Rename playlist
    def rename(name, description)
      begin
        @client.request('renamePlaylist', :playlistID => @id, :playlistName => name)
        @client.request('setPlaylistAbout', :playlistID => @id, :about => description)
        @name = name ; @about = description
        return true
      rescue
        return false
      end
    end
    
    # Delete existing playlist
    def delete
      @client.request('deletePlaylist', {:playlistID => @id, :name => @name})
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
grooveshark-0.1.1 lib/grooveshark/playlist.rb