lib/vlcraptor.rb in vlcraptor-0.3.0 vs lib/vlcraptor.rb in vlcraptor-0.4.0
- old
+ new
@@ -5,16 +5,21 @@
require_relative "vlcraptor/player"
require_relative "vlcraptor/player_controller"
require_relative "vlcraptor/preferences"
require_relative "vlcraptor/queue"
require_relative "vlcraptor/notifiers"
+require_relative "vlcraptor/scrobbler"
module Vlcraptor
def self.autoplay(value)
Vlcraptor::Preferences.new[:autoplay] = value == "on"
end
+ def self.clear
+ Vlcraptor::Queue.clear
+ end
+
def self.crossfade(value)
Vlcraptor::Preferences.new[:crossfade] = value == "on"
end
def self.history
@@ -22,22 +27,24 @@
end
def self.list
started = Vlcraptor::Preferences.new[:started]
offset = 0
+ index = 0
Vlcraptor::Queue.each do |track|
- array = []
+ array = [Rainbow(index.to_s).magenta]
array << Time.at(started + offset).strftime("%I:%M:%S") if started
array += [Rainbow(track[:title]).green, "by", Rainbow(track[:artist]).yellow]
array += ["from", Rainbow(track[:album]).cyan] if (track[:album] || "").length.positive?
if track[:length]
mins = track[:length] / 60
secs = track[:length] % 60
array << "(#{mins} minutes and #{secs} seconds)"
end
puts array.join(" ")
offset += track[:length]
+ index += 1
end
end
def self.pause
Vlcraptor::Preferences.new[:pause] = true
@@ -94,10 +101,14 @@
ensure
player_controller.cleanup
Curses.close_screen
end
+ def self.remove(index)
+ Vlcraptor::Queue.remove(index) { list }
+ end
+
def self.queue(paths)
paths.each do |path|
if File.file?(path)
Vlcraptor::Queue.add(path)
else
@@ -107,16 +118,24 @@
end
end
end
def self.scrobble(value)
- Vlcraptor::Preferences.new[:scrobble] = value == "on"
+ preferences = Vlcraptor::Preferences.new
+ preferences[:scrobble] = value == "on"
+ scrobbler = Vlcraptor::Scrobbler.load if preferences.scrobble?
+ preferences[:scrobble] = false unless scrobbler
end
def self.skip
Vlcraptor::Preferences.new[:skip] = true
end
def self.stop
Vlcraptor::Preferences.new[:stop] = true
+ end
+
+ def self.swap(args)
+ a, b = *args
+ Vlcraptor::Queue.swap(a, b) { list }
end
end