class Imgurr::ImgurAPI
Constants
- API_PUBLIC_KEY
- API_URI
- ENDPOINTS
Public Class Methods
delete(delete_hash)
click to toggle source
Public: Upload an image
args - The image path for the image to upload
# File lib/imgurr/imgurAPI.rb, line 73 def delete(delete_hash) request = Net::HTTP::Delete.new(API_URI.request_uri + ENDPOINTS[:image] + delete_hash) request.add_field('Authorization', API_PUBLIC_KEY) response = web_client.request(request) handle_delete_response(response.body) end
get_info(image_id)
click to toggle source
Public: Get info about an image
args - The image imgur id
# File lib/imgurr/imgurAPI.rb, line 61 def get_info(image_id) request = Net::HTTP::Get.new(API_URI.request_uri + ENDPOINTS[:image] + image_id) request.add_field('Authorization', API_PUBLIC_KEY) response = web_client.request(request) handle_info_response(response.body) end
handle_delete_response(response)
click to toggle source
Public: Handle API Response: Delete Image
args - Response data
# File lib/imgurr/imgurAPI.rb, line 122 def handle_delete_response(response) data = JSON.parse(response) puts JSON.pretty_unparse(data) if Imgurr::DEBUG data['success'] end
handle_info_response(response)
click to toggle source
Public: Handle API Response: Get image Info
args - Response data
# File lib/imgurr/imgurAPI.rb, line 99 def handle_info_response(response) data = JSON.parse(response) puts JSON.pretty_unparse(data) if Imgurr::DEBUG if data['success'] return " Image ID : #{data['data']['id']} Views : #{data['data']['views']} Bandwidth : #{Numbers.to_human(data['data']['bandwidth'])} Title : #{data['data']['title'].nil? ? 'None' : data['data']['title']} Desc : #{data['data']['description'].nil? ? 'None' : data['data']['description']} Animated : #{data['data']['animated']} Width : #{data['data']['width']} px Height : #{data['data']['height']} px Link : #{data['data']['link']} ".gsub(/^ {8}/, '') end ImgurErrors.handle_error(response) end
handle_upload_response(response, source_path)
click to toggle source
Public: Handle API Response: Uploaded Image
args - Response data
# File lib/imgurr/imgurAPI.rb, line 85 def handle_upload_response(response, source_path) data = JSON.parse(response) puts JSON.pretty_unparse(data) if Imgurr::DEBUG if data['success'] storage.add_hash(data['data']['id'], data['data']['deletehash'], source_path) return [data['data']['link'], true] end [ImgurErrors.handle_error(response), false] end
options()
click to toggle source
Public: accesses the global options
Returns Options dictionary
# File lib/imgurr/imgurAPI.rb, line 28 def options Imgurr.options end
storage()
click to toggle source
Public: accesses the in-memory JSON representation.
Returns a Storage
instance.
# File lib/imgurr/imgurAPI.rb, line 21 def storage Imgurr.storage end
upload(image_path)
click to toggle source
Public: Upload an image
args - The image path for the image to upload
# File lib/imgurr/imgurAPI.rb, line 45 def upload(image_path) params = {:image => File.read(image_path)} params[:title] = options[:title] unless options[:title].nil? params[:description] = options[:desc] unless options[:desc].nil? request = Net::HTTP::Post.new(API_URI.request_uri + ENDPOINTS[:image]) request.set_form_data(params) request.add_field('Authorization', API_PUBLIC_KEY) response = web_client.request(request) handle_upload_response(response.body, image_path) end
web_client()
click to toggle source
HTTP Client used for API requests TODO: Confirm SSL Certificate
# File lib/imgurr/imgurAPI.rb, line 34 def web_client http = Net::HTTP.new(API_URI.host, API_URI.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE http end