Sha256: d52a25706595f0f917f3711779e0c1816a1f1b008cb27b18ceb6fe6dd008229a

Contents?: true

Size: 1.17 KB

Versions: 1

Compression:

Stored size: 1.17 KB

Contents

require 'colorize'
require 'fileutils'
require 'spotify_to_mp3/app/stream_track_ids'

module SpotifyToMp3
  class App
    def initialize(track_id_resolver, grooveshark)
      @track_id_resolver = track_id_resolver
      @grooveshark = grooveshark
    end

    def run
      StreamTrackIds.new(ARGF).each do |track_id|
        begin
          puts "Resolving \"#{track_id}\""
          track = @track_id_resolver.resolve(track_id)

          puts "Searching \"#{track}\" on Grooveshark"
          grooveshark_track = @grooveshark.get_track(track.grooveshark_query)

          print "Found \"#{grooveshark_track}\""
          if File.exists?(grooveshark_track.filename)
            # To know about songs no longer in download list
            FileUtils.touch grooveshark_track.filename

            puts ", already exists, skipping"
          else
            puts ", downloading..."
            @grooveshark.download(grooveshark_track)
          end
        rescue Exception => exception # For some reason without the "Exception" it is ignored
          puts exception.message.red
          # Continue with the next track
        end
      end
    rescue
      puts "#{$!}".red
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
spotify-to-mp3-0.6.0 lib/spotify_to_mp3/app.rb