diff --git a/bin/embedly_oembed b/bin/embedly_oembed index d45d444..da946ef 100755 --- a/bin/embedly_oembed +++ b/bin/embedly_oembed @@ -65,5 +65,11 @@ Embedly::Config.logging = true if options.verbose options.args[:urls] = ARGV api = Embedly::API.new options.marshal_dump -objs = [api.send(action.to_sym, options.args)].flatten.collect{|o| o.marshal_dump} -puts JSON.pretty_generate(objs) +begin + objs = [api.send(action.to_sym, options.args)].flatten.collect{|o| o.marshal_dump} + puts JSON.pretty_generate(objs) +rescue Embedly::BadResponseException => e + puts "#{e.response.code} :: #{e.response.message}" +end + + diff --git a/lib/embedly/api.rb b/lib/embedly/api.rb index 099ee08..c2f66d0 100644 --- a/lib/embedly/api.rb +++ b/lib/embedly/api.rb @@ -2,6 +2,7 @@ require 'json' require 'ostruct' require 'embedly/model' +require 'embedly/exceptions' require 'querystring' @@ -107,7 +108,7 @@ def apicall opts host, port = uri_parse(endpoint) response = Net::HTTP.start(host, port) do |http| - http.get(path, {'User-Agent' => user_agent}) + http.get(path, {'User-Agent' => user_agent, 'Referer' => 'Your mom', 'X-Real-IP' => '204.9.220.42'}) end if response.code.to_i == 200 @@ -117,8 +118,8 @@ def apicall opts Embedly::EmbedlyObject.new(o) end else - logger.error { response.inspect } - raise 'An unexpected error occurred' + logger.debug { response } + raise Embedly::BadResponseException.new response end # re-insert rejects into response diff --git a/lib/embedly/exceptions.rb b/lib/embedly/exceptions.rb new file mode 100644 index 0000000..973d581 --- /dev/null +++ b/lib/embedly/exceptions.rb @@ -0,0 +1,7 @@ +class Embedly::BadResponseException < RuntimeError + attr_accessor :response + + def initialize response + @response ||= response + end +end