flickrie 1.6.0 → 1.6.1

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.
@@ -8,26 +8,26 @@ module Flickrie
8
8
  # This is for manual use (for example, if I haven't covered something yet, and you really need it).
9
9
  # Here's an example:
10
10
  #
11
- # response = Flickrie.client.get "flickr.photos.getInfo", :photo_id => 8423943
11
+ # response = Flickrie.client.get "flickr.photos.getInfo", photo_id: 8423943
12
12
  # response.body['photo']['id'] # => 8423943
13
13
  # response.body['photo']['description'] # => "..."
14
14
  #
15
- # Flickrie.client.post "flickr.photos.licenses.setLicense", :photo_id => 1241497, :license_id => 2
15
+ # Flickrie.client.post "flickr.photos.licenses.setLicense", photo_id: 1241497, license_id: 2
16
16
  #
17
17
  # For the full list of available API methods, see [this page](http://www.flickr.com/services/api/).
18
18
  #
19
19
  # @return [HTTP response] A Faraday HTTP response
20
20
  def client
21
21
  params = {
22
- :url => 'http://api.flickr.com/services/rest',
23
- :params => {
24
- :format => 'json',
25
- :nojsoncallback => '1',
26
- :api_key => api_key
22
+ url: 'https://api.flickr.com/services/rest',
23
+ params: {
24
+ format: 'json',
25
+ nojsoncallback: '1',
26
+ api_key: api_key
27
27
  },
28
- :request => {
29
- :open_timeout => open_timeout || DEFAULTS[:open_timeout],
30
- :timeout => timeout || DEFAULTS[:timeout]
28
+ request: {
29
+ open_timeout: open_timeout || DEFAULTS[:open_timeout],
30
+ timeout: timeout || DEFAULTS[:timeout]
31
31
  }
32
32
  }
33
33
 
@@ -35,10 +35,10 @@ module Flickrie
35
35
  Client.new(params) do |b|
36
36
  b.use Middleware::Retry
37
37
  b.use FaradayMiddleware::OAuth,
38
- :consumer_key => api_key,
39
- :consumer_secret => shared_secret,
40
- :token => access_token,
41
- :token_secret => access_secret
38
+ consumer_key: api_key,
39
+ consumer_secret: shared_secret,
40
+ token: access_token,
41
+ token_secret: access_secret
42
42
 
43
43
  b.use Middleware::FixFlickrData
44
44
  b.use Middleware::StatusCheck
@@ -51,9 +51,9 @@ module Flickrie
51
51
 
52
52
  def upload_client
53
53
  params = {
54
- :url => 'http://api.flickr.com/services',
55
- :request => {
56
- :open_timeout => open_timeout || DEFAULTS[:open_timeout]
54
+ url: 'https://api.flickr.com/services',
55
+ request: {
56
+ open_timeout: open_timeout || DEFAULTS[:open_timeout]
57
57
  }
58
58
  }
59
59
 
@@ -61,10 +61,10 @@ module Flickrie
61
61
  UploadClient.new(params) do |b|
62
62
  b.use Middleware::Retry
63
63
  b.use FaradayMiddleware::OAuth,
64
- :consumer_key => api_key,
65
- :consumer_secret => shared_secret,
66
- :token => access_token,
67
- :token_secret => access_secret
64
+ consumer_key: api_key,
65
+ consumer_secret: shared_secret,
66
+ token: access_token,
67
+ token_secret: access_secret
68
68
  b.request :multipart
69
69
 
70
70
  b.use Middleware::UploadStatusCheck
@@ -2,11 +2,9 @@ require 'faraday'
2
2
 
3
3
  module Flickrie
4
4
  class Client < Faraday::Connection
5
- # @!method get(method, params = {})
6
- # @!method post(method, params = {})
7
5
  [:get, :post].each do |http_method|
8
6
  define_method(http_method) do |flickr_method, params = {}|
9
- # (:include_sizes => true) --> (:extras => "url_sq,url_q,url_s,...")
7
+ # (include_sizes: true) --> (extras: "url_sq,url_q,url_s,...")
10
8
  if params.delete(:include_sizes)
11
9
  urls = Photo::FLICKR_SIZES.values.map { |s| "url_#{s}" }.join(',')
12
10
  params[:extras] = [params[:extras], urls].compact.join(',')
@@ -19,263 +17,22 @@ module Flickrie
19
17
  end
20
18
  end
21
19
 
22
- # people
23
- def find_user_by_email(email, params = {})
24
- get 'flickr.people.findByEmail',
25
- {:find_email => email}.merge(params)
26
- end
27
-
28
- def find_user_by_username(username, params = {})
29
- get 'flickr.people.findByUsername',
30
- {:username => username}.merge(params)
31
- end
32
-
33
- def get_user_info(nsid, params = {})
34
- get 'flickr.people.getInfo',
35
- {:user_id => nsid}.merge(params)
36
- end
37
-
38
- def media_from_user(nsid, params = {})
39
- get 'flickr.people.getPhotos',
40
- ensure_media({:user_id => nsid}.merge(params))
41
- end
42
-
43
- def media_of_user(nsid, params = {})
44
- get 'flickr.people.getPhotosOf',
45
- ensure_media({:user_id => nsid}.merge(params))
46
- end
47
-
48
- def public_media_from_user(nsid, params = {})
49
- get 'flickr.people.getPublicPhotos',
50
- ensure_media({:user_id => nsid}.merge(params))
51
- end
52
-
53
- def get_upload_status(params = {})
54
- get 'flickr.people.getUploadStatus', params
55
- end
56
-
57
- # photos
58
- def add_media_tags(media_id, tags, params = {})
59
- post 'flickr.photos.addTags',
60
- {:photo_id => media_id, :tags => tags}.merge(params)
61
- end
62
-
63
- def delete_media(media_id, params = {})
64
- post 'flickr.photos.delete',
65
- {:photo_id => media_id}.merge(params)
66
- end
67
-
68
- def media_from_contacts(params = {})
69
- get 'flickr.photos.getContactsPhotos', ensure_media(params)
70
- end
71
-
72
- def public_media_from_user_contacts(nsid, params = {})
73
- get 'flickr.photos.getContactsPublicPhotos',
74
- ensure_media({:user_id => nsid}.merge(params))
75
- end
76
-
77
- def get_media_context(media_id, params = {})
78
- get 'flickr.photos.getContext',
79
- {:photo_id => media_id}.merge(params)
80
- end
81
-
82
- def get_media_counts(params = {})
83
- get 'flickr.photos.getCounts', ensure_utc(params)
84
- end
85
-
86
- def get_media_exif(media_id, params = {})
87
- get 'flickr.photos.getExif',
88
- {:photo_id => media_id}.merge(params)
89
- end
90
-
91
- def get_media_favorites(media_id, params = {})
92
- get 'flickr.photos.getFavorites',
93
- {:photo_id => media_id}.merge(params)
94
- end
95
-
96
- def get_media_info(media_id, params = {})
97
- get 'flickr.photos.getInfo',
98
- {:photo_id => media_id}.merge(params)
99
- end
100
-
101
- def media_not_in_set(params = {})
102
- get 'flickr.photos.getNotInSet', ensure_media(params)
103
- end
104
-
105
- def get_media_permissions(media_id, params = {})
106
- get 'flickr.photos.getPerms',
107
- {:photo_id => media_id}.merge(params)
108
- end
109
-
110
- def get_recent_media(params = {})
111
- get 'flickr.photos.getRecent', ensure_media(params)
112
- end
113
-
114
- def get_media_sizes(media_id, params = {})
115
- get 'flickr.photos.getSizes',
116
- {:photo_id => media_id}.merge(params)
117
- end
118
-
119
- def get_untagged_media(params = {})
120
- get 'flickr.photos.getUntagged', ensure_media(params)
121
- end
122
-
123
- def get_media_with_geo_data(params = {})
124
- get 'flickr.photos.getWithGeoData', ensure_media(params)
125
- end
126
-
127
- def get_media_without_geo_data(params = {})
128
- get 'flickr.photos.getWithoutGeoData', ensure_media(params)
129
- end
130
-
131
- def recently_updated_media(params = {})
132
- get 'flickr.photos.recentlyUpdated', ensure_media(params)
133
- end
134
-
135
- def remove_media_tag(tag_id, params = {})
136
- post 'flickr.photos.removeTag',
137
- {:tag_id => tag_id}.merge(params)
138
- end
139
-
140
- def search_media(params = {})
141
- get 'flickr.photos.search', ensure_media(params)
142
- end
143
-
144
- def set_media_content_type(media_id, content_type, params = {})
145
- post 'flickr.photos.setContentType',
146
- {:photo_id => media_id, :content_type => content_type}.merge(params)
147
- end
148
-
149
- def set_media_dates(media_id, params = {})
150
- post 'flickr.photos.setDates',
151
- {:photo_id => media_id}.merge(params)
152
- end
153
-
154
- def set_media_meta(media_id, params = {})
155
- post 'flickr.photos.setMeta',
156
- {:photo_id => media_id}.merge(params)
157
- end
158
-
159
- def set_media_permissions(media_id, params = {})
160
- post 'flickr.photos.setPerms',
161
- {:photo_id => media_id}.merge(params)
162
- end
163
-
164
- def set_media_safety_level(media_id, params = {})
165
- post 'flickr.photos.setSafetyLevel',
166
- {:photo_id => media_id}.merge(params)
167
- end
168
-
169
- def set_media_tags(media_id, tags, params = {})
170
- post 'flickr.photos.setTags',
171
- {:photo_id => media_id, :tags => tags}.merge(params)
172
- end
173
-
174
- # photos.upload
175
- def check_upload_tickets(tickets, params = {})
176
- get 'flickr.photos.upload.checkTickets',
177
- {:tickets => tickets}.merge(params)
178
- end
179
-
180
- # photos.licenses
181
- def get_licenses(params = {})
182
- get 'flickr.photos.licenses.getInfo', params
183
- end
184
-
185
- def set_media_license(media_id, license_id, params = {})
186
- post 'flickr.photos.licenses.setLicense',
187
- {:photo_id => media_id, :license_id => license_id}.merge(params)
188
- end
189
-
190
- # photos.transform
191
- def rotate_media(media_id, degrees, params = {})
192
- post 'flickr.photos.transform.rotate',
193
- {:photo_id => media_id, :degrees => degrees}.merge(params)
194
- end
195
-
196
- # photosets
197
- def add_media_to_set(set_id, media_id, params = {})
198
- post 'flickr.photosets.addPhoto',
199
- {:photoset_id => set_id, :photo_id => media_id}.merge(params)
200
- end
201
-
202
- def create_set(params = {})
203
- post 'flickr.photosets.create', params
204
- end
205
-
206
- def delete_set(set_id, params = {})
207
- post 'flickr.photosets.delete', {:photoset_id => set_id}.merge(params)
208
- end
209
-
210
- def edit_set_metadata(set_id, params = {})
211
- post 'flickr.photosets.editMeta', {:photoset_id => set_id}.merge(params)
212
- end
213
-
214
- def edit_set_photos(set_id, params = {})
215
- post 'flickr.photosets.editPhotos',
216
- {:photoset_id => set_id}.merge(params)
217
- end
218
-
219
- def get_set_context(set_id, media_id, params = {})
220
- get 'flickr.photosets.getContext',
221
- {:photoset_id => set_id, :photo_id => media_id}.merge(params)
222
- end
223
-
224
- def get_set_info(set_id, params = {})
225
- get 'flickr.photosets.getInfo',
226
- {:photoset_id => set_id}.merge(params)
227
- end
228
-
229
- def sets_from_user(nsid, params = {})
230
- get 'flickr.photosets.getList',
231
- {:user_id => nsid}.merge(params)
232
- end
233
-
234
- def media_from_set(set_id, params = {})
235
- get 'flickr.photosets.getPhotos',
236
- ensure_media({:photoset_id => set_id}.merge(params))
237
- end
238
-
239
- def order_sets(set_ids, params = {})
240
- post 'flickr.photosets.orderSets', {:photoset_ids => set_ids}.merge(params)
241
- end
242
-
243
- def remove_media_from_set(set_id, media_ids, params = {})
244
- post 'flickr.photosets.removePhotos',
245
- {:photoset_id => set_id, :photo_ids => media_ids}.merge(params)
246
- end
247
-
248
- def reorder_media_in_set(set_id, media_ids, params = {})
249
- post 'flickr.photosets.reorderPhotos',
250
- {:photoset_id => set_id, :photo_ids => media_ids}.merge(params)
251
- end
252
-
253
- def set_primary_media_to_set(set_id, media_id, params = {})
254
- post 'flickr.photosets.setPrimaryPhoto',
255
- {:photoset_id => set_id, :photo_id => media_id}.merge(params)
256
- end
257
-
258
- # test
259
- def test_login(params = {})
260
- get 'flickr.test.login', params
261
- end
262
-
263
- private
264
-
265
- def ensure_media(params)
266
- params.dup.tap do |dup_params|
267
- dup_params[:extras] = [dup_params[:extras], 'media'].compact.join(',')
268
- end
269
- end
270
-
271
- def ensure_utc(params)
272
- params.dup.tap do |hash|
273
- if hash[:taken_dates].is_a?(String)
274
- hash[:taken_dates] = hash[:taken_dates].split(',').
275
- map { |date| DateTime.parse(date) }.
276
- map(&:to_time).map(&:getutc).join(',')
20
+ def method_missing(name, *args, &block)
21
+ [
22
+ name.to_s.sub(/media|photos?|videos?/, "(photos|videos|media)"),
23
+ name.to_s.sub(/media|photos?|videos?/, "(photo|video|media)"),
24
+ name.to_s.sub(/media|photos?|videos?/, "(photo|video)")
25
+ ].
26
+ each do |method_name|
27
+ if flickr_method = FLICKR_API_METHODS.invert[method_name]
28
+ http_method, params = methods[flickr_method]
29
+ return send(http_method, flickr_method, params.call(*args))
30
+ end
277
31
  end
278
- end
32
+
33
+ super
279
34
  end
280
35
  end
281
36
  end
37
+
38
+ require "flickrie/client/methods"
@@ -0,0 +1,89 @@
1
+ module Flickrie
2
+ class Client
3
+ def methods
4
+ @methods ||= {
5
+ "flickr.people.findByEmail" => [:get, ->(email, params = {}) { {find_email: email}.merge(params) }],
6
+ "flickr.people.findByUsername" => [:get, ->(username, params = {}) { {username: username}.merge(params) }],
7
+ "flickr.people.getInfo" => [:get, ->(nsid, params = {}) { {user_id: nsid}.merge(params) }],
8
+ "flickr.people.getPhotos" => [:get, ->(nsid, params = {}) { ensure_media({user_id: nsid}.merge(params)) }],
9
+ "flickr.people.getPhotosOf" => [:get, ->(nsid, params = {}) { ensure_media({user_id: nsid}.merge(params)) }],
10
+ "flickr.people.getPublicPhotos" => [:get, ->(nsid, params = {}) { ensure_media({user_id: nsid}.merge(params)) }],
11
+ "flickr.people.getUploadStatus" => [:get, ->(params = {}) { params }],
12
+
13
+ "flickr.photos.addTags" => [:post, ->(media_id, tags, params = {}) { {photo_id: media_id, tags: tags}.merge(params) }],
14
+ "flickr.photos.delete" => [:post, ->(media_id, params = {}) { {photo_id: media_id}.merge(params) }],
15
+ "flickr.photos.getContactsPhotos" => [:get, ->(params = {}) { ensure_media(params) }],
16
+ "flickr.photos.getContactsPublicPhotos" => [:get, ->(nsid, params = {}) { ensure_media({user_id: nsid}.merge(params)) }],
17
+ "flickr.photos.getContext" => [:get, ->(media_id, params = {}) { {photo_id: media_id}.merge(params) }],
18
+ "flickr.photos.getCounts" => [:get, ->(params = {}) { ensure_utc(params) }],
19
+ "flickr.photos.getExif" => [:get, ->(media_id, params = {}) { {photo_id: media_id}.merge(params) }],
20
+ "flickr.photos.getFavorites" => [:get, ->(media_id, params = {}) { {photo_id: media_id}.merge(params) }],
21
+ "flickr.photos.getInfo" => [:get, ->(media_id, params = {}) { {photo_id: media_id}.merge(params) }],
22
+ "flickr.photos.getNotInSet" => [:get, ->(params = {}) { ensure_media(params) }],
23
+ "flickr.photos.getPerms" => [:get, ->(media_id, params = {}) { {photo_id: media_id}.merge(params) }],
24
+ "flickr.photos.getRecent" => [:get, ->(params = {}) { ensure_media(params) }],
25
+ "flickr.photos.getSizes" => [:get, ->(media_id, params = {}) { {photo_id: media_id}.merge(params) }],
26
+ "flickr.photos.getUntagged" => [:get, ->(params = {}) { ensure_media(params) }],
27
+ "flickr.photos.getWithGeoData" => [:get, ->(params = {}) { ensure_media(params) }],
28
+ "flickr.photos.getWithoutGeoData" => [:get, ->(params = {}) { ensure_media(params) }],
29
+ "flickr.photos.recentlyUpdated" => [:get, ->(params = {}) { ensure_media(params) }],
30
+ "flickr.photos.removeTag" => [:post, ->(tag_id, params = {}) { {tag_id: tag_id}.merge(params) }],
31
+ "flickr.photos.search" => [:get, ->(params = {}) { ensure_media(params) }],
32
+ "flickr.photos.setContentType" => [:post, ->(media_id, content_type, params = {}) { {photo_id: media_id, content_type: content_type}.merge(params) }],
33
+ "flickr.photos.setDates" => [:post, ->(media_id, params = {}) { {photo_id: media_id}.merge(params) }],
34
+ "flickr.photos.setMeta" => [:post, ->(media_id, params = {}) { {photo_id: media_id}.merge(params) }],
35
+ "flickr.photos.setPerms" => [:post, ->(media_id, params = {}) { {photo_id: media_id}.merge(params) }],
36
+ "flickr.photos.setSafetyLevel" => [:post, ->(media_id, params = {}) { {photo_id: media_id}.merge(params) }],
37
+ "flickr.photos.setTags" => [:post, ->(media_id, tags, params = {}) { {photo_id: media_id, tags: tags}.merge(params) }],
38
+
39
+ "flickr.photos.comments.addComment" => [:post, ->(media_id, comment, params = {}) { {photo_id: media_id, comment_text: comment}.merge(params) }],
40
+ "flickr.photos.comments.deleteComment" => [:post, ->(comment_id, params = {}) { {comment_id: comment_id}.merge(params) }],
41
+ "flickr.photos.comments.editComment" => [:post, ->(comment_id, comment, params = {}) { {comment_id: comment_id, comment_text: comment}.merge(params) }],
42
+ "flickr.photos.comments.getList" => [:get, ->(media_id, params = {}) { {photo_id: media_id}.merge(params) }],
43
+ "flickr.photos.comments.getRecentForContacts" => [:get, ->(params = {}) { ensure_media(params) }],
44
+
45
+ "flickr.photos.upload.checkTickets" => [:get, ->(tickets, params = {}) { {tickets: tickets}.merge(params) }],
46
+
47
+ "flickr.photos.licenses.getInfo" => [:get, ->(params = {}) { params }],
48
+ "flickr.photos.licenses.setLicense" => [:post, ->(media_id, license_id, params = {}) { {photo_id: media_id, license_id: license_id}.merge(params) }],
49
+
50
+ "flickr.photos.transform.rotate" => [:post, ->(media_id, degrees, params = {}) { {photo_id: media_id, degrees: degrees}.merge(params) }],
51
+
52
+ "flickr.photosets.addPhoto" => [:post, ->(set_id, media_id, params = {}) { {photoset_id: set_id, photo_id: media_id}.merge(params) }],
53
+ "flickr.photosets.create" => [:post, ->(params = {}) { params }],
54
+ "flickr.photosets.delete" => [:post, ->(set_id, params = {}) { {photoset_id: set_id}.merge(params) }],
55
+ "flickr.photosets.editMeta" => [:post, ->(set_id, params = {}) { {photoset_id: set_id}.merge(params) }],
56
+ "flickr.photosets.editPhotos" => [:post, ->(set_id, params = {}) { {photoset_id: set_id}.merge(params) }],
57
+ "flickr.photosets.getContext" => [:get, ->(set_id, media_id, params = {}) { {photoset_id: set_id, photo_id: media_id}.merge(params) }],
58
+ "flickr.photosets.getInfo" => [:get, ->(set_id, params = {}) { {photoset_id: set_id}.merge(params) }],
59
+ "flickr.photosets.getList" => [:get, ->(nsid, params = {}) { {user_id: nsid}.merge(params) }],
60
+ "flickr.photosets.getPhotos" => [:get, ->(set_id, params = {}) { ensure_media({photoset_id: set_id}.merge(params)) }],
61
+ "flickr.photosets.orderSets" => [:post, ->(set_ids, params = {}) { {photoset_ids: set_ids}.merge(params) }],
62
+ "flickr.photosets.removePhotos" => [:post, ->(set_id, media_ids, params = {}) { {photoset_id: set_id, photo_ids: media_ids}.merge(params) }],
63
+ "flickr.photosets.reorderPhotos" => [:post, ->(set_id, media_ids, params = {}) { {photoset_id: set_id, photo_ids: media_ids}.merge(params) }],
64
+ "flickr.photosets.setPrimaryPhoto" => [:post, ->(set_id, media_id, params = {}) { {photoset_id: set_id, photo_id: media_id}.merge(params) }],
65
+ "flickr.reflection.getMethods" => [:get, ->(params = {}) { params }],
66
+
67
+ "flickr.test.login" => [:get, ->(params = {}) { params }],
68
+ }
69
+ end
70
+
71
+ private
72
+
73
+ def ensure_media(params)
74
+ params.dup.tap do |dup_params|
75
+ dup_params[:extras] = [dup_params[:extras], 'media'].compact.join(',')
76
+ end
77
+ end
78
+
79
+ def ensure_utc(params)
80
+ params.dup.tap do |hash|
81
+ if hash[:taken_dates].is_a?(String)
82
+ hash[:taken_dates] = hash[:taken_dates].split(',').
83
+ map { |date| DateTime.parse(date) }.
84
+ map(&:to_time).map(&:getutc).join(',')
85
+ end
86
+ end
87
+ end
88
+ end
89
+ end