mirror of
https://github.com/danbee/rippr
synced 2025-03-04 08:39:08 +00:00
Reads from CD and lists matching releases to choose from.
This commit is contained in:
parent
a29671577a
commit
f21d9dc8f3
23
bin/rippr
23
bin/rippr
@ -3,19 +3,30 @@
|
||||
require 'bundler'
|
||||
Bundler.setup
|
||||
|
||||
require 'ostruct'
|
||||
require 'thor'
|
||||
require 'musicbrainz'
|
||||
require 'rippr'
|
||||
|
||||
class Cli < Thor
|
||||
desc "rip", "Rip the CD currently in the drive."
|
||||
|
||||
def rip
|
||||
disc = 'pmzhT6ZlFiwSRCdVwV0eqire5_Y-'
|
||||
puts "Getting metadata from MusicBrainz..."
|
||||
metadata = Rippr::MetaData.new(disc)
|
||||
print metadata.releases
|
||||
begin
|
||||
disc = DiscId.read('/dev/rdisk2')
|
||||
rescue DiscId::DiscError
|
||||
puts "Disc not present."
|
||||
exit
|
||||
end
|
||||
|
||||
puts "Searching MusicBrainz..."
|
||||
metadata = Rippr::MetaData.new(disc.id)
|
||||
|
||||
release = metadata.choose_release
|
||||
|
||||
if release.nil?
|
||||
puts "No release selected."
|
||||
exit
|
||||
end
|
||||
puts release.id
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
24
lib/rippr.rb
24
lib/rippr.rb
@ -1,5 +1,8 @@
|
||||
require "musicbrainz_discid"
|
||||
require "rippr/version"
|
||||
require 'ostruct'
|
||||
require 'discid'
|
||||
require 'musicbrainz'
|
||||
require 'musicbrainz_discid'
|
||||
require 'rippr/version'
|
||||
|
||||
module Rippr
|
||||
class MetaData
|
||||
@ -14,14 +17,19 @@ module Rippr
|
||||
@discid = discid
|
||||
end
|
||||
|
||||
def choose_release
|
||||
return releases[0] if releases.count == 1
|
||||
puts "There are multiple matches, please choose:"
|
||||
releases.to_enum.with_index(1) do |release, index|
|
||||
puts "#{index}: #{release.title} (#{release.country})"
|
||||
end
|
||||
print "Choose a release: "
|
||||
index = STDIN.gets.chomp.to_i
|
||||
releases[index - 1] unless index.zero?
|
||||
end
|
||||
|
||||
def releases
|
||||
@releases ||= MusicBrainz::Release.find_by_discid(@discid)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
class DiscId
|
||||
def self.read(dev)
|
||||
OpenStruct.new(id: 'pmzhT6ZlFiwSRCdVwV0eqire5_Y-') # Stubbed for initial testing
|
||||
end
|
||||
end
|
||||
|
||||
Loading…
Reference in New Issue
Block a user