]> git.r.bdr.sh - rbdr/lyricli.rb/blobdiff - lib/lyricli/source_manager.rb
Add a README
[rbdr/lyricli.rb] / lib / lyricli / source_manager.rb
index ac1cd7fcd01263a6b8bac00127e6ac1219b3f90f..3befbd2ab0b6037bd29b457c318d7e51a40b25a6 100644 (file)
@@ -59,12 +59,17 @@ module Lyricli
 
     def current_track
       track = nil
 
     def current_track
       track = nil
+      lock = false
       @enabled_sources.each do |source|
         begin
           current_track = source.current_track
 
       @enabled_sources.each do |source|
         begin
           current_track = source.current_track
 
+          # This is a special thing for arguments. The thing is, they need to
+          # be inputted manually. So, if they are present they won't allow
+          # anyone else to give results. Makes sense, yet a bit hacky.
           unless current_track[:artist].nil? || current_track[:artist].empty? || current_track[:song].nil? || current_track[:song].empty?
           unless current_track[:artist].nil? || current_track[:artist].empty? || current_track[:song].nil? || current_track[:song].empty?
-            track = current_track
+            track = current_track unless lock
+            lock = true if source.class.name == "arguments"
           end
         rescue
           raise SourceConfigurationException
           end
         rescue
           raise SourceConfigurationException
@@ -75,7 +80,7 @@ module Lyricli
 
     def available_sources(format = false)
       path_root = File.expand_path(File.dirname(__FILE__))
 
     def available_sources(format = false)
       path_root = File.expand_path(File.dirname(__FILE__))
-      sources = Dir[path_root+"/sources/*"].map{ |s|
+      sources = Dir[path_root+"/sources/*.rb"].map{ |s|
         name = s.split("/").last.gsub(/\.rb/, "")
 
         # Add a star to denote enabled sources
         name = s.split("/").last.gsub(/\.rb/, "")
 
         # Add a star to denote enabled sources