]> git.r.bdr.sh - rbdr/lyricli.rb/commitdiff
Remove the old lyricly.
authorBen Beltran <redacted>
Sat, 6 Oct 2012 06:54:23 +0000 (01:54 -0500)
committerBen Beltran <redacted>
Sat, 6 Oct 2012 06:54:23 +0000 (01:54 -0500)
lrc.rb [deleted file]

diff --git a/lrc.rb b/lrc.rb
deleted file mode 100755 (executable)
index 496d73b..0000000
--- a/lrc.rb
+++ /dev/null
@@ -1,131 +0,0 @@
-#!/usr/bin/env ruby -w
-
-require 'rubygems'
-require 'uri'
-require 'net/http'
-require 'multi_json'
-require 'nokogiri'
-require 'open-uri'
-
-# This shit causes a lot of warnings. Quick Hack.
-original_verbosity = $VERBOSE
-$VERBOSE = nil
-require 'rdio'
-$VERBOSE = original_verbosity
-
-class Lyricli
-
-  def initialize
-    @artist = ARGV[0]
-    @song = ARGV[1]
-
-    @rdio_key = "sddac5t8akqrzh5b6kg53jfm"
-    @rdio_secret = "PRcB8TggFr"
-    @token_path = File.expand_path("~/.rdio_token")
-
-    #Expand the symlink and get the path
-    if File.symlink?(__FILE__) then
-      path = File.dirname(File.readlink(__FILE__))
-    else
-      path = File.dirname(__FILE__)
-    end
-
-    # Get the current rdio track
-    @rdio = init_rdio
-    rdio_track
-
-    #Get the current iTunes track
-    current = `osascript #{path}/current_song.scpt`
-    if current and not current.empty? then
-      current = current.split("<-SEP->")
-      @artist ||= current[0]
-      @song ||= current[1]
-    end
-  end
-
-  def init_rdio
-
-    if File.exists?(@token_path)
-      f = File.new(@token_path, "r")
-      begin
-        token = MultiJson.decode(f.read)
-      rescue
-        token = create_rdio_token
-      end
-    else
-      token = create_rdio_token
-    end
-
-    Rdio::SimpleRdio.new([@rdio_key, @rdio_secret], token)
-  end
-
-  def rdio_track
-    u = @rdio.call('currentUser', {'extras' => "lastSongPlayed"})
-    @artist ||= u["result"]["lastSongPlayed"]["artist"]
-    @song ||= u["result"]["lastSongPlayed"]["name"]
-  end
-
-  def create_rdio_token
-    rdio = Rdio::SimpleRdio.new([@rdio_key, @rdio_secret])
-    puts "Go To This URL To Authorize App:"
-    auth_url = rdio.begin_authentication('oob')
-    puts auth_url
-    `open #{auth_url}`
-    print "Please type the authorization code: "
-    auth_code = gets.chomp
-    token = rdio.complete_authentication(auth_code)
-
-    f = File.new(@token_path, "w")
-    f.print(MultiJson.encode(token))
-    f.close
-
-    token
-  end
-
-  def exit_with_error
-    abort "Usage: #{$0} artist song"
-  end
-
-  def get_lyrics
-
-    #Use the API to search
-    uri = URI("http://lyrics.wikia.com/api.php?artist=#{self.sanitize_param @artist}&song=#{self.sanitize_param @song}&fmt=realjson")
-    begin
-      res = Net::HTTP.get(uri)
-      res = MultiJson.decode(res)
-
-      #Get the actual lyrics url
-      doc = Nokogiri::HTML(open(res['url']))
-      node = doc.search(".lyricbox").first
-    rescue
-      abort "Lyrics not found :("
-    end
-
-    #Remove the rtMatcher nodes
-    node.search(".rtMatcher").each do |n|
-      n.remove
-    end
-
-    #Maintain new lines
-    node.search("br").each do |br|
-      br.replace "\n"
-    end
-
-    #Retrieve the lyrics
-    puts node.inner_text
-  end
-
-  def check_params
-    self.exit_with_error if @artist.nil? or @artist.empty?
-    self.exit_with_error if @song.nil? or @song.empty?
-  end
-
-  def sanitize_param(p)
-    URI.encode_www_form_component(p.gsub(/ /, "+")).gsub("%2B", "+")
-  end
-end
-
-
-lrc = Lyricli.new
-lrc.check_params
-lrc.get_lyrics