Sha256: 14869bab6564a38ce39bf194c550eaf612f0d42b2a734e91abab78fdb286bc7b

Contents?: true

Size: 915 Bytes

Versions: 3

Compression:

Stored size: 915 Bytes

Contents

require 'spotify_to_mp3/track'

module SpotifyToMp3
  class QueryResolver
    def initialize(spotify)
      @spotify = spotify
    end

    def resolve(query)
      tracks = []

      if @spotify.track_uri?(query)
        spotify_track = @spotify.get_track(query)
        tracks << convert_spotify_track(spotify_track)
      elsif @spotify.album_uri?(query)
        spotify_album = @spotify.get_album(query)
        spotify_album.tracks.each { |track| tracks << convert_spotify_track(track) }
      else
        tracks << resolve_plain_track(query)
      end

      tracks
    end
    
    private

    def convert_spotify_track(track)
      description = "#{track.artist} - #{track.name}"
      grooveshark_query = "artist:\"#{track.artist}\" title:\"#{track.name}\""

      Track.new(description, grooveshark_query)
    end

    def resolve_plain_track(description)
      Track.new(description)
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
spotify-to-mp3-0.7.2 lib/spotify_to_mp3/query_resolver.rb
spotify-to-mp3-0.7.1 lib/spotify_to_mp3/query_resolver.rb
spotify-to-mp3-0.7.0 lib/spotify_to_mp3/query_resolver.rb