giddy 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile.lock CHANGED
@@ -1,22 +1,47 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- giddy (0.1.3)
4
+ giddy (0.1.4)
5
5
  httparty (>= 0.11.0)
6
6
  json (>= 1.8.0)
7
+ mechanize (>= 2.7.3)
7
8
 
8
9
  GEM
9
10
  remote: http://rubygems.org/
10
11
  specs:
12
+ domain_name (0.5.15)
13
+ unf (>= 0.0.5, < 1.0.0)
14
+ http-cookie (1.0.2)
15
+ domain_name (~> 0.5)
11
16
  httparty (0.11.0)
12
17
  multi_json (~> 1.0)
13
18
  multi_xml (>= 0.5.2)
14
19
  json (1.8.0)
15
- multi_json (1.8.0)
20
+ mechanize (2.7.3)
21
+ domain_name (~> 0.5, >= 0.5.1)
22
+ http-cookie (~> 1.0)
23
+ mime-types (~> 2.0)
24
+ net-http-digest_auth (~> 1.1, >= 1.1.1)
25
+ net-http-persistent (~> 2.5, >= 2.5.2)
26
+ nokogiri (~> 1.4)
27
+ ntlm-http (~> 0.1, >= 0.1.1)
28
+ webrobots (>= 0.0.9, < 0.2)
29
+ mime-types (2.0)
30
+ mini_portile (0.5.2)
31
+ multi_json (1.8.1)
16
32
  multi_xml (0.5.5)
33
+ net-http-digest_auth (1.4)
34
+ net-http-persistent (2.9)
35
+ nokogiri (1.6.0)
36
+ mini_portile (~> 0.5.0)
37
+ ntlm-http (0.1.1)
17
38
  rake (10.1.0)
18
39
  rdoc (4.0.1)
19
40
  json (~> 1.4)
41
+ unf (0.1.3)
42
+ unf_ext
43
+ unf_ext (0.0.6)
44
+ webrobots (0.1.1)
20
45
 
21
46
  PLATFORMS
22
47
  ruby
data/giddy.gemspec CHANGED
@@ -19,6 +19,7 @@ Gem::Specification.new do |s|
19
19
  s.require_paths = ["lib"]
20
20
  s.add_dependency("httparty", ">= 0.11.0")
21
21
  s.add_dependency("json", ">= 1.8.0")
22
+ s.add_dependency('mechanize', '>= 2.7.3')
22
23
  s.add_development_dependency('rdoc')
23
24
  s.add_development_dependency('rake')
24
25
  end
data/lib/giddy.rb CHANGED
@@ -9,6 +9,8 @@ require "giddy/mediator"
9
9
  require "giddy/client"
10
10
  require "giddy/search"
11
11
  require "giddy/download"
12
+ require "giddy/lightbox_headers"
13
+ require "giddy/lightbox"
12
14
  require "giddy/image"
13
15
  require "giddy/utils"
14
16
 
data/lib/giddy/client.rb CHANGED
@@ -28,6 +28,23 @@ module Giddy
28
28
  Search.new(@mediator).search_for_images(attrs)
29
29
  end
30
30
 
31
+ def lightboxes(count=1, start=1)
32
+ attrs = {
33
+ :ResultsViewOptions => { :ItemCount => count, :ItemStartNumber => start }
34
+ }
35
+ LightboxHeaders.new(@mediator).get_lightbox_headers(attrs)
36
+ end
37
+
38
+ def get_lightbox(id)
39
+ attrs = { :LightboxId => id, :LightboxItemsViewOptions => { :ItemCount => 100, :ItemStartNumber => 1 } }
40
+ LightboxHeaders.new(@mediator).get_lightbox(attrs)
41
+ end
42
+
43
+ def create_lightbox(name, attrs)
44
+ attrs = { :LightboxName => name }.merge(attrs)
45
+ LightboxHeaders.new(@mediator).create_lightbox(attrs)
46
+ end
47
+
31
48
  def token
32
49
  @mediator.token
33
50
  end
@@ -0,0 +1,21 @@
1
+ module Giddy
2
+ class Lightbox
3
+ def initialize(attrs, mediator)
4
+ @attrs = Utils.rubified_hash(attrs)
5
+ @mediator = mediator
6
+ end
7
+
8
+ def images
9
+ lightbox_items
10
+ end
11
+
12
+ def method_missing(method, *args, &block)
13
+ @attrs.fetch(method, nil)
14
+ end
15
+
16
+ def to_s
17
+ as = @attrs.map { |k,v| "#{k}=#{v}" }.join(", ")
18
+ "<Lightbox #{as}>"
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,24 @@
1
+ module Giddy
2
+ class LightboxHeaders < Endpoint
3
+ def initialize(mediator)
4
+ super mediator, "lightbox", false
5
+ end
6
+
7
+ def get_lightbox_headers(attrs)
8
+ result = gettyup :GetLightboxHeaders, attrs
9
+ result["LightboxHeaders"].map { |attrs|
10
+ Lightbox.new(attrs, @mediator)
11
+ }
12
+ end
13
+
14
+ def create_lightbox(attrs)
15
+ result = gettyup :CreateLightbox, attrs
16
+ Lightbox.new(result, @mediator)
17
+ end
18
+
19
+ def get_lightbox(attrs)
20
+ result = gettyup :GetLightbox, attrs
21
+ Lightbox.new(result["Lightbox"], @mediator)
22
+ end
23
+ end
24
+ end
data/lib/giddy/utils.rb CHANGED
@@ -1,3 +1,6 @@
1
+ require 'mechanize'
2
+ require 'cgi'
3
+
1
4
  module Giddy
2
5
  class Utils
3
6
  # covert camel case keys to underscore
@@ -19,5 +22,24 @@ module Giddy
19
22
  }
20
23
  fixed
21
24
  end
25
+
26
+ def self.get_lightbox_ids(username, password)
27
+ a = Mechanize.new
28
+ a.get('https://secure.gettyimages.com/sign-in') do |page|
29
+ page = page.form_with(:id => 'new_new_session') { |f|
30
+ f["new_session[username]"] = username
31
+ f["new_session[password]"] = password
32
+ }.click_button
33
+
34
+ return nil if page.filename != "index.html"
35
+ end
36
+
37
+ a.get('http://www.gettyimages.com/account/MediaBin/Default.aspx?ViewBy=0') do |page|
38
+ return page.links_with(:id => 'hypMediaBinName').map { |l|
39
+ CGI::parse(l.href.split('?')[1])['Id']
40
+ }
41
+ end
42
+ end
43
+
22
44
  end
23
45
  end
data/lib/giddy/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Giddy
2
- VERSION = "0.1.3"
2
+ VERSION = "0.1.4"
3
3
  end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: giddy
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.1.3
5
+ version: 0.1.4
6
6
  platform: ruby
7
7
  authors:
8
8
  - Brian Muller
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2013-10-20 00:00:00 Z
13
+ date: 2014-01-09 00:00:00 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: httparty
@@ -35,18 +35,18 @@ dependencies:
35
35
  prerelease: false
36
36
  version_requirements: *id002
37
37
  - !ruby/object:Gem::Dependency
38
- name: rdoc
38
+ name: mechanize
39
39
  requirement: &id003 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - ">="
43
43
  - !ruby/object:Gem::Version
44
- version: "0"
45
- type: :development
44
+ version: 2.7.3
45
+ type: :runtime
46
46
  prerelease: false
47
47
  version_requirements: *id003
48
48
  - !ruby/object:Gem::Dependency
49
- name: rake
49
+ name: rdoc
50
50
  requirement: &id004 !ruby/object:Gem::Requirement
51
51
  none: false
52
52
  requirements:
@@ -56,6 +56,17 @@ dependencies:
56
56
  type: :development
57
57
  prerelease: false
58
58
  version_requirements: *id004
59
+ - !ruby/object:Gem::Dependency
60
+ name: rake
61
+ requirement: &id005 !ruby/object:Gem::Requirement
62
+ none: false
63
+ requirements:
64
+ - - ">="
65
+ - !ruby/object:Gem::Version
66
+ version: "0"
67
+ type: :development
68
+ prerelease: false
69
+ version_requirements: *id005
59
70
  description: Ruby client for Getty API
60
71
  email:
61
72
  - bamuller@gmail.com
@@ -80,6 +91,8 @@ files:
80
91
  - lib/giddy/endpoint.rb
81
92
  - lib/giddy/exceptions.rb
82
93
  - lib/giddy/image.rb
94
+ - lib/giddy/lightbox.rb
95
+ - lib/giddy/lightbox_headers.rb
83
96
  - lib/giddy/mediator.rb
84
97
  - lib/giddy/search.rb
85
98
  - lib/giddy/utils.rb
@@ -97,7 +110,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
97
110
  requirements:
98
111
  - - ">="
99
112
  - !ruby/object:Gem::Version
100
- hash: 2656067166173040371
113
+ hash: 2363742157284069686
101
114
  segments:
102
115
  - 0
103
116
  version: "0"
@@ -106,7 +119,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
106
119
  requirements:
107
120
  - - ">="
108
121
  - !ruby/object:Gem::Version
109
- hash: 2656067166173040371
122
+ hash: 2363742157284069686
110
123
  segments:
111
124
  - 0
112
125
  version: "0"