imagebin 0.3.6 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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