imagebin 0.3.6 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,17 +1,21 @@
1
1
  = imagebin
2
2
 
3
- imagebin is a CLI to http://imagebin.ca
3
+ imagebin is a CLI to http://imgur.com
4
+ This program looks for your API key in ~/.imgur.yaml
5
+
4
6
  Example: imagebin -f <pic.png>
5
7
 
6
8
  Options:
7
9
  -f, --file <file> Use a file for input
8
- -n, --name [name] Name
9
- -t, --tags [tags] Comma separated
10
- -d, --description [description] Description
11
- -p, --private Private
12
- -l, --link Direct link to picture file
13
10
  -h, --help Show this message
14
11
 
12
+
13
+ Here is an example of what ~/.imgur.yaml should look like:
14
+
15
+ ---
16
+ key: 543e908c545620bd1c44d43edf3a35a0
17
+
18
+
15
19
  == Copyright
16
20
 
17
21
  Copyright (c) 2009 dougsko. See LICENSE for details.
data/Rakefile CHANGED
@@ -5,12 +5,12 @@ begin
5
5
  require 'jeweler'
6
6
  Jeweler::Tasks.new do |gem|
7
7
  gem.name = "imagebin"
8
- gem.summary = %Q{Command line interface to imagebin.ca}
8
+ gem.summary = %Q{Command line interface to imgur.com}
9
9
  gem.email = "dougtko@gmail.com"
10
10
  gem.homepage = "http://github.com/dougsko/imagebin"
11
11
  gem.authors = ["dougsko"]
12
12
  gem.add_dependency 'httpclient'
13
- gem.description = 'Command line interface to imagebin.ca'
13
+ gem.description = 'Command line interface to imgur.com'
14
14
  gem.require_paths = ['/bin', '/lib']
15
15
  gem.files = FileList["[A-Z]*", "{bin,generators,lib,spec}/**/*"]
16
16
  gem.add_dependency "hpricot"
@@ -39,7 +39,7 @@ end
39
39
  task :default => :spec
40
40
 
41
41
  require 'rake/rdoctask'
42
- require 'darkfish-rdoc'
42
+ #require 'darkfish-rdoc'
43
43
  Rake::RDocTask.new do |rdoc|
44
44
  if File.exist?('VERSION.yml')
45
45
  config = YAML.load(File.read('VERSION.yml'))
@@ -54,7 +54,7 @@ Rake::RDocTask.new do |rdoc|
54
54
  rdoc.rdoc_files.include('lib/**/*.rb')
55
55
  rdoc.options += [
56
56
  '-N',
57
- '-f', 'darkfish',
57
+ # '-f', 'darkfish',
58
58
  ]
59
59
  end
60
60
 
@@ -1,4 +1,5 @@
1
1
  ---
2
- :major: 0
3
- :minor: 3
4
- :patch: 6
2
+ :minor: 0
3
+ :patch: 2
4
+ :build:
5
+ :major: 1
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
  #
3
3
  #
4
- # CLI to imagebin.ca
4
+ # CLI to imgur.com
5
5
  #
6
6
  # Copyright (C) 2009 dougsko
7
7
  #
@@ -23,43 +23,19 @@ require 'rubygems'
23
23
  require 'optparse'
24
24
  require 'imagebin'
25
25
 
26
- options = { "t" => "file",
27
- "name" => "",
28
- "tags" => "",
29
- "description" => "",
30
- "adult" => "f",
31
- "direct_link" => "0",
26
+ options = { "image" => "file",
27
+ "key" => "",
32
28
  }
33
29
 
34
30
  opts = OptionParser.new do |opts|
35
- opts.banner = "imagebin is a CLI to http://imagebin.ca
31
+ opts.banner = "imagebin is a CLI to http://imgur.com
36
32
  Example: imagebin -f <pic.png>"
37
33
 
38
34
  opts.separator ""
39
35
  opts.separator "Options:"
40
36
 
41
37
  opts.on("-f <file>", "--file <file>", String, "Use a file for input") do |file|
42
- options["f"] = file
43
- end
44
-
45
- opts.on("-n [name]", "--name [name]", String, "Name") do |n|
46
- options["name"] = n
47
- end
48
-
49
- opts.on("-t [tags]", "--tags [tags]", String, "Comma separated") do |tags|
50
- options["tags"] = tags
51
- end
52
-
53
- opts.on("-d [description]", "--description [description]", String, "Description") do |desc|
54
- options["description"] = desc
55
- end
56
-
57
- opts.on("-p", "--private", "Private") do |priv|
58
- options["adult"] = "t"
59
- end
60
-
61
- opts.on("-l", "--link", "Direct link to picture file") do |direct_link|
62
- options["direct_link"] = "1"
38
+ options["image"] = file
63
39
  end
64
40
 
65
41
  opts.on_tail("-h", "--help", "Show this message") do
@@ -70,12 +46,8 @@ end
70
46
 
71
47
  opts.parse(ARGV)
72
48
 
73
- if options["direct_link"] == "0"
74
- options.delete("direct_link")
75
- ibin = Imagebin.new(options)
76
- puts ibin.site_link
77
- elsif options["direct_link"] == "1"
78
- options.delete("direct_link")
79
- ibin = Imagebin.new(options)
80
- puts ibin.pic_link
81
- end
49
+ conf = YAML.load_file("#{ENV['HOME']}/.imgur.yaml")
50
+ options['key'] = conf['key']
51
+ ibin = Imagebin.new(options)
52
+ puts ibin.original_image
53
+
@@ -27,10 +27,11 @@ sleep delay
27
27
  # Take the screenshot with the 'import' command.
28
28
  system("#{import}", "-window", "root", "#{working_dir}/#{prefix}-#{i}.png")
29
29
 
30
- ibin = Imagebin.new({ "f" => "#{working_dir}/#{prefix}-#{i}.png",
31
- "adult" => "t",
30
+ conf = YAML.load_file("#{ENV['HOME']}/.imgur.yaml")
31
+ ibin = Imagebin.new({ "image" => "#{working_dir}/#{prefix}-#{i}.png",
32
+ "key" => conf['key'],
32
33
  })
33
34
 
34
- system("#{xmess}", "-nearmouse", "#{ibin.pic_link}")
35
+ system("#{xmess}", "-nearmouse", "#{ibin.original_image}")
35
36
 
36
37
  File.delete("#{working_dir}/#{prefix}-#{i}.png")
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
  #
3
- # imagebin.ca class
3
+ # imgur.com API
4
4
  #
5
5
 
6
6
  require 'rubygems'
@@ -8,51 +8,46 @@ require 'httpclient'
8
8
  require 'hpricot'
9
9
 
10
10
  class Imagebin
11
- # This method takes a hash containing the variables in the POST
12
- # request.
13
- #
14
- # ibin = Imagebin.new( { "t" => "file",
15
- # "name" => "",
16
- # "tags" => "",
17
- # "description" => "",
18
- # "adult" => "f",
19
- # "f" => "file_path",
20
- # })
21
- #
22
11
  def initialize(options)
23
- @options = { "t" => "file",
24
- "name" => "",
25
- "tags" => "",
26
- "description" => "",
27
- "adult" => "f",
28
- "direct_link" => "0",
29
- "f" => "",
12
+ @options = { "image" => "file",
13
+ "key" => "api_key",
30
14
  }
31
15
  @options.merge!(options)
32
- File.open(@options["f"]) do |file|
33
- @options["f"] = file
16
+ File.open(@options["image"]) do |file|
17
+ @options["image"] = file
34
18
  clnt = HTTPClient.new
35
- res = clnt.post('http://imagebin.ca/upload.php', @options).content
19
+ res = clnt.post('http://imgur.com/api/upload.xml', @options).content
36
20
  @doc = Hpricot(res)
21
+ raise @doc.at('error_msg').innerHTML if @doc.at('error_msg') != nil
37
22
  end
38
23
  end
39
24
 
40
- # Returns the link to the HTML site of the post.
41
- #
42
- # ibin.site_link #=> "http://imagebin.ca/view/xxxxxxx.html"
43
- #
44
- def site_link
45
- @doc.at("a").innerHTML
25
+ def image_hash
26
+ @doc.at('image_hash').innerHTML
46
27
  end
47
28
 
48
- # Returns the direct link to the file posted.
49
- #
50
- # ibin.pic_link #=> "http://imagebin.ca/img/xxxxxxx.jpg"
51
- #
52
- def pic_link
53
- clnt = HTTPClient.new
54
- res = clnt.get(@doc.at("a").innerHTML).content
55
- doc = Hpricot(res)
56
- doc.at("#theimg")["src"]
29
+ def delete_hash
30
+ @doc.at('delete_hash').innerHTML
57
31
  end
32
+
33
+ def original_image
34
+ @doc.at("original_image").innerHTML
35
+ end
36
+
37
+ def large_thumbnail
38
+ @doc.at('large_thumbnail').innerHTML
39
+ end
40
+
41
+ def small_thumbnail
42
+ @doc.at('small_thumbnail').innerHTML
43
+ end
44
+
45
+ def imgur_page
46
+ @doc.at('imgur_page').innerHTML
47
+ end
48
+
49
+ def delete_page
50
+ @doc.at('delete_page').innerHTML
51
+ end
52
+
58
53
  end
@@ -2,23 +2,19 @@ require 'spec_helper'
2
2
 
3
3
  describe "Imagebin" do
4
4
  before do
5
- options = { "t" => "file",
6
- "name" => "",
7
- "tags" => "",
8
- "description" => "",
9
- "adult" => "t",
10
- "f" => "spec/ZGrass04.jpg",
5
+ @options = { "image" => "spec/ZGrass04.jpg",
6
+ "key" => "926e908c545620bd1c44d43edf3a35a0",
11
7
  }
12
- @ibin = Imagebin.new(options)
13
- end
14
-
15
- it "should return a link to the paste's website" do
16
- link = @ibin.site_link
17
- link.should match(/html/)
18
8
  end
19
9
 
20
10
  it "should return a link to the picture file" do
21
- link = @ibin.pic_link
11
+ ibin = Imagebin.new(@options)
12
+ link = ibin.original_image
22
13
  link.should match(/jpg/)
23
14
  end
15
+
16
+ it "should raise an error" do
17
+ @options['key'] = ''
18
+ lambda {Imagebin.new(@options)}.should raise_error(RuntimeError)
19
+ end
24
20
  end
metadata CHANGED
@@ -1,7 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: imagebin
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.6
4
+ hash: 19
5
+ prerelease: false
6
+ segments:
7
+ - 1
8
+ - 0
9
+ - 2
10
+ version: 1.0.2
5
11
  platform: ruby
6
12
  authors:
7
13
  - dougsko
@@ -9,40 +15,52 @@ autorequire:
9
15
  bindir: bin
10
16
  cert_chain: []
11
17
 
12
- date: 2009-12-26 00:00:00 -05:00
18
+ date: 2010-08-09 00:00:00 -04:00
13
19
  default_executable:
14
20
  dependencies:
15
21
  - !ruby/object:Gem::Dependency
16
22
  name: httpclient
17
- type: :runtime
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
20
26
  requirements:
21
27
  - - ">="
22
28
  - !ruby/object:Gem::Version
29
+ hash: 3
30
+ segments:
31
+ - 0
23
32
  version: "0"
24
- version:
33
+ type: :runtime
34
+ version_requirements: *id001
25
35
  - !ruby/object:Gem::Dependency
26
36
  name: hpricot
27
- type: :runtime
28
- version_requirement:
29
- version_requirements: !ruby/object:Gem::Requirement
37
+ prerelease: false
38
+ requirement: &id002 !ruby/object:Gem::Requirement
39
+ none: false
30
40
  requirements:
31
41
  - - ">="
32
42
  - !ruby/object:Gem::Version
43
+ hash: 3
44
+ segments:
45
+ - 0
33
46
  version: "0"
34
- version:
47
+ type: :runtime
48
+ version_requirements: *id002
35
49
  - !ruby/object:Gem::Dependency
36
50
  name: httpclient
37
- type: :runtime
38
- version_requirement:
39
- version_requirements: !ruby/object:Gem::Requirement
51
+ prerelease: false
52
+ requirement: &id003 !ruby/object:Gem::Requirement
53
+ none: false
40
54
  requirements:
41
55
  - - ">="
42
56
  - !ruby/object:Gem::Version
57
+ hash: 3
58
+ segments:
59
+ - 0
43
60
  version: "0"
44
- version:
45
- description: Command line interface to imagebin.ca
61
+ type: :runtime
62
+ version_requirements: *id003
63
+ description: Command line interface to imgur.com
46
64
  email: dougtko@gmail.com
47
65
  executables:
48
66
  - take-screenshot
@@ -74,24 +92,30 @@ require_paths:
74
92
  - /bin
75
93
  - /lib
76
94
  required_ruby_version: !ruby/object:Gem::Requirement
95
+ none: false
77
96
  requirements:
78
97
  - - ">="
79
98
  - !ruby/object:Gem::Version
99
+ hash: 3
100
+ segments:
101
+ - 0
80
102
  version: "0"
81
- version:
82
103
  required_rubygems_version: !ruby/object:Gem::Requirement
104
+ none: false
83
105
  requirements:
84
106
  - - ">="
85
107
  - !ruby/object:Gem::Version
108
+ hash: 3
109
+ segments:
110
+ - 0
86
111
  version: "0"
87
- version:
88
112
  requirements: []
89
113
 
90
114
  rubyforge_project:
91
- rubygems_version: 1.3.5
115
+ rubygems_version: 1.3.7
92
116
  signing_key:
93
117
  specification_version: 3
94
- summary: Command line interface to imagebin.ca
118
+ summary: Command line interface to imgur.com
95
119
  test_files:
96
120
  - spec/imagebin_spec.rb
97
121
  - spec/spec_helper.rb