giddy 0.1.3 → 0.1.4

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.
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"