Sha256: aa372974eafee05250ba46b43806ca4d74dffa4295225dcb7af2cb1f6badef5b
Contents?: true
Size: 1.14 KB
Versions: 1
Compression:
Stored size: 1.14 KB
Contents
require 'net/http' require 'json' ### # Stupid simple class for uploading to imgur. # # client = Imgur2.new 'my imgur key' # p File.open(ARGV[0], 'rb') { |f| # client.upload f # } class Imgur2 < Struct.new(:key) VERSION = '1.0.0' def self.run argv client = Imgur2.new '65aea9a07b4f6110c90248ffa247d41a' fh = argv[0] ? File.open(argv[0], 'rb') : $stdin link = client.upload(fh)['upload']['links']['original'] client.paste link puts link ensure fh.close end def upload io url = URI.parse 'http://api.imgur.com/2/upload.json' JSON.parse Net::HTTP.start(url.host) { |http| post = Net::HTTP::Post.new url.path post.set_form_data('key' => key, 'image' => [io.read].pack('m'), 'type' => 'base64') http.request(post).body } end ## # Tries to find clipboard copy executable and if found puts +link+ in your # clipboard. def paste link clipboard = %w{ /usr/bin/pbcopy /usr/bin/xclip }.find { |path| File.exist? path } if clipboard IO.popen clipboard, 'w' do |io| io.write link end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
imgur2-1.0.0 | lib/imgur2.rb |