flickrie 1.4.2 → 1.5.0
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/README.md +6 -3
- data/lib/flickrie/api_methods.rb +10 -737
- data/lib/flickrie/api_methods/media.rb +698 -0
- data/lib/flickrie/api_methods/set.rb +23 -0
- data/lib/flickrie/api_methods/user.rb +45 -0
- data/lib/flickrie/client.rb +16 -0
- data/lib/flickrie/media.rb +10 -10
- data/lib/flickrie/media/class_methods.rb +46 -1
- data/lib/flickrie/photo.rb +2 -33
- data/lib/flickrie/version.rb +1 -1
- data/lib/flickrie/video.rb +2 -21
- metadata +23 -20
@@ -0,0 +1,23 @@
|
|
1
|
+
module Flickrie
|
2
|
+
module ApiMethods
|
3
|
+
# Fetches information about the set with the given ID.
|
4
|
+
#
|
5
|
+
# @param set_id [String, Fixnum]
|
6
|
+
# @return [Flickrie::Set]
|
7
|
+
# @api_method [flickr.photosets.getInfo](http://www.flickr.com/services/api/flickr.photosets.getInfo.html)
|
8
|
+
def get_set_info(set_id, params = {})
|
9
|
+
response = client.get_set_info(set_id, params)
|
10
|
+
Set.from_info(response.body['photoset'])
|
11
|
+
end
|
12
|
+
|
13
|
+
# Fetches sets from a user with the given NSID.
|
14
|
+
#
|
15
|
+
# @param nsid [String]
|
16
|
+
# @return [Flickrie::Collection<Flickrie::Set>]
|
17
|
+
# @api_method [flickr.photosets.getList](http://www.flickr.com/services/api/flickr.photosets.getList.html)
|
18
|
+
def sets_from_user(nsid, params = {})
|
19
|
+
response = client.sets_from_user(nsid, params)
|
20
|
+
Set.from_user(response.body['photosets'], nsid)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
module Flickrie
|
2
|
+
module ApiMethods
|
3
|
+
# Fetches the Flickr user with the given email.
|
4
|
+
#
|
5
|
+
# @param email [String]
|
6
|
+
# @return [Flickrie::User]
|
7
|
+
# @api_method [flickr.people.findByEmail](http://www.flickr.com/services/api/flickr.people.findByEmail.html)
|
8
|
+
def find_user_by_email(email, params = {})
|
9
|
+
response = client.find_user_by_email(email, params)
|
10
|
+
User.from_find(response.body['user'])
|
11
|
+
end
|
12
|
+
|
13
|
+
# Fetches the Flickr user with the given username.
|
14
|
+
#
|
15
|
+
# @param username [String]
|
16
|
+
# @return [Flickrie::User]
|
17
|
+
# @api_method [flickr.people.findByUsername](http://www.flickr.com/services/api/flickr.people.findByUsername.html)
|
18
|
+
def find_user_by_username(username, params = {})
|
19
|
+
response = client.find_user_by_username(username, params)
|
20
|
+
User.from_find(response.body['user'])
|
21
|
+
end
|
22
|
+
|
23
|
+
# Fetches the Flickr user with the given NSID.
|
24
|
+
#
|
25
|
+
# @param nsid [String]
|
26
|
+
# @return [Flickrie::User]
|
27
|
+
# @api_method [flickr.people.getInfo](http://www.flickr.com/services/api/flickr.people.getInfo.html)
|
28
|
+
def get_user_info(nsid, params = {})
|
29
|
+
response = client.get_user_info(nsid, params)
|
30
|
+
User.from_info(response.body['person'])
|
31
|
+
end
|
32
|
+
|
33
|
+
# Returns the upload status of the user who is currently authenticated.
|
34
|
+
#
|
35
|
+
# @return [Flickrie::User]
|
36
|
+
# @api_method [flickr.people.getUploadStatus](http://www.flickr.com/services/api/flickr.people.getUploadStatus.html)
|
37
|
+
# @see Flickrie::User#upload_status
|
38
|
+
#
|
39
|
+
# @note This method requires authentication with "read" permissions.
|
40
|
+
def get_upload_status(params = {})
|
41
|
+
response = client.get_upload_status(params)
|
42
|
+
User.from_upload_status(response.body['user'])
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
data/lib/flickrie/client.rb
CHANGED
@@ -3,6 +3,11 @@ require 'faraday'
|
|
3
3
|
module Flickrie
|
4
4
|
class Client < Faraday::Connection
|
5
5
|
def get(method, params = {})
|
6
|
+
if params.delete(:include_sizes)
|
7
|
+
urls = Photo::FLICKR_SIZES.values.map { |s| "url_#{s}" }.join(',')
|
8
|
+
params[:extras] = [params[:extras], urls].compact.join(',')
|
9
|
+
end
|
10
|
+
|
6
11
|
super() do |req|
|
7
12
|
req.params[:method] = method
|
8
13
|
req.params.update(params)
|
@@ -179,6 +184,17 @@ module Flickrie
|
|
179
184
|
get 'flickr.photos.licenses.getInfo', params
|
180
185
|
end
|
181
186
|
|
187
|
+
def set_media_license(media_id, license_id, params = {})
|
188
|
+
post 'flickr.photos.licenses.setLicense',
|
189
|
+
{:photo_id => media_id, :license_id => license_id}.merge(params)
|
190
|
+
end
|
191
|
+
|
192
|
+
# photos.transform
|
193
|
+
def rotate_media(media_id, degrees, params = {})
|
194
|
+
post 'flickr.photos.transform.rotate',
|
195
|
+
{:photo_id => media_id, :degrees => degrees}.merge(params)
|
196
|
+
end
|
197
|
+
|
182
198
|
# photosets
|
183
199
|
def get_set_info(set_id, params = {})
|
184
200
|
get 'flickr.photosets.getInfo',
|
data/lib/flickrie/media.rb
CHANGED
@@ -168,10 +168,8 @@ module Flickrie
|
|
168
168
|
#
|
169
169
|
# @return [self]
|
170
170
|
def get_info(params = {})
|
171
|
-
|
172
|
-
|
173
|
-
@hash.deep_merge!(hash)
|
174
|
-
|
171
|
+
media = Flickrie.send("get_#{media_type}_info", id, params)
|
172
|
+
@hash.deep_merge!(media.hash)
|
175
173
|
self
|
176
174
|
end
|
177
175
|
|
@@ -179,9 +177,8 @@ module Flickrie
|
|
179
177
|
#
|
180
178
|
# @return [self]
|
181
179
|
def get_exif(params = {})
|
182
|
-
|
183
|
-
@hash.deep_merge!(hash)
|
184
|
-
|
180
|
+
media = Flickrie.send("get_#{media_type}_exif", id, params)
|
181
|
+
@hash.deep_merge!(media.hash)
|
185
182
|
self
|
186
183
|
end
|
187
184
|
|
@@ -189,9 +186,8 @@ module Flickrie
|
|
189
186
|
#
|
190
187
|
# @return [self]
|
191
188
|
def get_favorites(params = {})
|
192
|
-
|
193
|
-
@hash.deep_merge!(hash)
|
194
|
-
|
189
|
+
media = Flickrie.send("get_#{media_type}_favorites", id, params)
|
190
|
+
@hash.deep_merge!(media.hash)
|
195
191
|
self
|
196
192
|
end
|
197
193
|
|
@@ -201,6 +197,10 @@ module Flickrie
|
|
201
197
|
|
202
198
|
private
|
203
199
|
|
200
|
+
def media_type
|
201
|
+
self.class.name.split('::').last.downcase
|
202
|
+
end
|
203
|
+
|
204
204
|
BASE58_ALPHABET = '123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ'.chars.to_a.freeze
|
205
205
|
|
206
206
|
def to_base58(id)
|
@@ -94,7 +94,7 @@ module Flickrie
|
|
94
94
|
from_user(hash)
|
95
95
|
end
|
96
96
|
|
97
|
-
|
97
|
+
private
|
98
98
|
|
99
99
|
def fix_extras(hash)
|
100
100
|
if hash['iconserver'] or hash['iconfarm']
|
@@ -156,6 +156,51 @@ module Flickrie
|
|
156
156
|
'isfamily' => hash.delete('isfamily')
|
157
157
|
}
|
158
158
|
end
|
159
|
+
|
160
|
+
def fix_sizes(hash)
|
161
|
+
case self.name.split('::').last
|
162
|
+
when "Photo"
|
163
|
+
hash['usage'] = {
|
164
|
+
'canblog' => hash['canblog'],
|
165
|
+
'canprint' => hash['canprint'],
|
166
|
+
'candownload' => hash['candownload']
|
167
|
+
}
|
168
|
+
flickr_sizes = {
|
169
|
+
'Square' => Photo::FLICKR_SIZES['Square 75'],
|
170
|
+
'Large Square' => Photo::FLICKR_SIZES['Square 150'],
|
171
|
+
'Thumbnail' => Photo::FLICKR_SIZES['Thumbnail'],
|
172
|
+
'Small' => Photo::FLICKR_SIZES['Small 240'],
|
173
|
+
'Small 320' => Photo::FLICKR_SIZES['Small 320'],
|
174
|
+
'Medium' => Photo::FLICKR_SIZES['Medium 500'],
|
175
|
+
'Medium 640' => Photo::FLICKR_SIZES['Medium 640'],
|
176
|
+
'Medium 800' => Photo::FLICKR_SIZES['Medium 800'],
|
177
|
+
'Large' => Photo::FLICKR_SIZES['Large 1024'],
|
178
|
+
'Large 1600' => Photo::FLICKR_SIZES['Large 1600'],
|
179
|
+
'Large 2048' => Photo::FLICKR_SIZES['Large 2048'],
|
180
|
+
'Original' => Photo::FLICKR_SIZES['Original']
|
181
|
+
}
|
182
|
+
hash['size'].each do |size_info|
|
183
|
+
size_abbr = flickr_sizes[size_info['label']]
|
184
|
+
hash["width_#{size_abbr}"] = size_info['width']
|
185
|
+
hash["height_#{size_abbr}"] = size_info['height']
|
186
|
+
hash["url_#{size_abbr}"] = size_info['source']
|
187
|
+
end
|
188
|
+
when "Video"
|
189
|
+
hash['usage'] = {
|
190
|
+
'canblog' => hash['canblog'],
|
191
|
+
'canprint' => hash['canprint'],
|
192
|
+
'candownload' => hash['candownload']
|
193
|
+
}
|
194
|
+
hash['video'] ||= {}
|
195
|
+
hash['size'].each do |info|
|
196
|
+
case info['label']
|
197
|
+
when 'Video Player' then hash['video']['source_url'] = info['source']
|
198
|
+
when 'Site MP4' then hash['video']['download_url'] = info['source']
|
199
|
+
when 'Mobile MP4' then hash['video']['mobile_download_url'] = info['source']
|
200
|
+
end
|
201
|
+
end
|
202
|
+
end
|
203
|
+
end
|
159
204
|
end
|
160
205
|
extend(ClassMethods)
|
161
206
|
|
data/lib/flickrie/photo.rb
CHANGED
@@ -50,7 +50,6 @@ module Flickrie
|
|
50
50
|
# @return [self]
|
51
51
|
def original() dup.original! end
|
52
52
|
|
53
|
-
# @comment Alternate size methods
|
54
53
|
# @return [self]
|
55
54
|
def square75() square(75) end
|
56
55
|
# @return [self]
|
@@ -117,10 +116,8 @@ module Flickrie
|
|
117
116
|
#
|
118
117
|
# @return [self]
|
119
118
|
def get_sizes(params = {})
|
120
|
-
|
121
|
-
|
122
|
-
@hash.deep_merge!(hash)
|
123
|
-
|
119
|
+
photo = Flickrie.get_photo_sizes(id, params)
|
120
|
+
@hash.deep_merge!(photo.hash)
|
124
121
|
largest!
|
125
122
|
end
|
126
123
|
|
@@ -138,33 +135,5 @@ module Flickrie
|
|
138
135
|
def size_abbr
|
139
136
|
FLICKR_SIZES[size]
|
140
137
|
end
|
141
|
-
|
142
|
-
def self.fix_sizes(hash)
|
143
|
-
hash['usage'] = {
|
144
|
-
'canblog' => hash['canblog'],
|
145
|
-
'canprint' => hash['canprint'],
|
146
|
-
'candownload' => hash['candownload']
|
147
|
-
}
|
148
|
-
flickr_sizes = {
|
149
|
-
'Square' => FLICKR_SIZES['Square 75'],
|
150
|
-
'Large Square' => FLICKR_SIZES['Square 150'],
|
151
|
-
'Thumbnail' => FLICKR_SIZES['Thumbnail'],
|
152
|
-
'Small' => FLICKR_SIZES['Small 240'],
|
153
|
-
'Small 320' => FLICKR_SIZES['Small 320'],
|
154
|
-
'Medium' => FLICKR_SIZES['Medium 500'],
|
155
|
-
'Medium 640' => FLICKR_SIZES['Medium 640'],
|
156
|
-
'Medium 800' => FLICKR_SIZES['Medium 800'],
|
157
|
-
'Large' => FLICKR_SIZES['Large 1024'],
|
158
|
-
'Large 1600' => FLICKR_SIZES['Large 1600'],
|
159
|
-
'Large 2048' => FLICKR_SIZES['Large 2048'],
|
160
|
-
'Original' => FLICKR_SIZES['Original']
|
161
|
-
}
|
162
|
-
hash['size'].each do |size_info|
|
163
|
-
size_abbr = flickr_sizes[size_info['label']]
|
164
|
-
hash["width_#{size_abbr}"] = size_info['width']
|
165
|
-
hash["height_#{size_abbr}"] = size_info['height']
|
166
|
-
hash["url_#{size_abbr}"] = size_info['source']
|
167
|
-
end
|
168
|
-
end
|
169
138
|
end
|
170
139
|
end
|
data/lib/flickrie/version.rb
CHANGED
data/lib/flickrie/video.rb
CHANGED
@@ -32,11 +32,9 @@ module Flickrie
|
|
32
32
|
#
|
33
33
|
# @return [self]
|
34
34
|
def get_sizes(params = {})
|
35
|
-
|
36
|
-
|
37
|
-
@hash.deep_merge!(hash)
|
35
|
+
video = Flickrie.get_video_sizes(id, params)
|
36
|
+
@hash.deep_merge!(video.hash)
|
38
37
|
@video = @hash['video']
|
39
|
-
|
40
38
|
self
|
41
39
|
end
|
42
40
|
|
@@ -46,7 +44,6 @@ module Flickrie
|
|
46
44
|
def get_info(params = {})
|
47
45
|
super
|
48
46
|
@video = @hash['video']
|
49
|
-
|
50
47
|
self
|
51
48
|
end
|
52
49
|
|
@@ -56,21 +53,5 @@ module Flickrie
|
|
56
53
|
super
|
57
54
|
@video = hash['video'] || {}
|
58
55
|
end
|
59
|
-
|
60
|
-
def self.fix_sizes(hash)
|
61
|
-
hash['usage'] = {
|
62
|
-
'canblog' => hash['canblog'],
|
63
|
-
'canprint' => hash['canprint'],
|
64
|
-
'candownload' => hash['candownload']
|
65
|
-
}
|
66
|
-
hash['video'] ||= {}
|
67
|
-
hash['size'].each do |info|
|
68
|
-
case info['label']
|
69
|
-
when 'Video Player' then hash['video']['source_url'] = info['source']
|
70
|
-
when 'Site MP4' then hash['video']['download_url'] = info['source']
|
71
|
-
when 'Mobile MP4' then hash['video']['mobile_download_url'] = info['source']
|
72
|
-
end
|
73
|
-
end
|
74
|
-
end
|
75
56
|
end
|
76
57
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: flickrie
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.5.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-06-01 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: faraday_middleware
|
16
|
-
requirement: &
|
16
|
+
requirement: &70316886740000 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -24,10 +24,10 @@ dependencies:
|
|
24
24
|
version: '0.9'
|
25
25
|
type: :runtime
|
26
26
|
prerelease: false
|
27
|
-
version_requirements: *
|
27
|
+
version_requirements: *70316886740000
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: faraday
|
30
|
-
requirement: &
|
30
|
+
requirement: &70316886737500 !ruby/object:Gem::Requirement
|
31
31
|
none: false
|
32
32
|
requirements:
|
33
33
|
- - ! '>='
|
@@ -38,10 +38,10 @@ dependencies:
|
|
38
38
|
version: '0.9'
|
39
39
|
type: :runtime
|
40
40
|
prerelease: false
|
41
|
-
version_requirements: *
|
41
|
+
version_requirements: *70316886737500
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
43
|
name: simple_oauth
|
44
|
-
requirement: &
|
44
|
+
requirement: &70316886735040 !ruby/object:Gem::Requirement
|
45
45
|
none: false
|
46
46
|
requirements:
|
47
47
|
- - ~>
|
@@ -49,10 +49,10 @@ dependencies:
|
|
49
49
|
version: '0.1'
|
50
50
|
type: :runtime
|
51
51
|
prerelease: false
|
52
|
-
version_requirements: *
|
52
|
+
version_requirements: *70316886735040
|
53
53
|
- !ruby/object:Gem::Dependency
|
54
54
|
name: multi_xml
|
55
|
-
requirement: &
|
55
|
+
requirement: &70316886733520 !ruby/object:Gem::Requirement
|
56
56
|
none: false
|
57
57
|
requirements:
|
58
58
|
- - ~>
|
@@ -60,10 +60,10 @@ dependencies:
|
|
60
60
|
version: '0.4'
|
61
61
|
type: :runtime
|
62
62
|
prerelease: false
|
63
|
-
version_requirements: *
|
63
|
+
version_requirements: *70316886733520
|
64
64
|
- !ruby/object:Gem::Dependency
|
65
65
|
name: bundler
|
66
|
-
requirement: &
|
66
|
+
requirement: &70316886723980 !ruby/object:Gem::Requirement
|
67
67
|
none: false
|
68
68
|
requirements:
|
69
69
|
- - ~>
|
@@ -71,10 +71,10 @@ dependencies:
|
|
71
71
|
version: '1.0'
|
72
72
|
type: :development
|
73
73
|
prerelease: false
|
74
|
-
version_requirements: *
|
74
|
+
version_requirements: *70316886723980
|
75
75
|
- !ruby/object:Gem::Dependency
|
76
76
|
name: rake
|
77
|
-
requirement: &
|
77
|
+
requirement: &70316886722120 !ruby/object:Gem::Requirement
|
78
78
|
none: false
|
79
79
|
requirements:
|
80
80
|
- - ~>
|
@@ -82,10 +82,10 @@ dependencies:
|
|
82
82
|
version: '0.9'
|
83
83
|
type: :development
|
84
84
|
prerelease: false
|
85
|
-
version_requirements: *
|
85
|
+
version_requirements: *70316886722120
|
86
86
|
- !ruby/object:Gem::Dependency
|
87
87
|
name: rspec
|
88
|
-
requirement: &
|
88
|
+
requirement: &70316886720440 !ruby/object:Gem::Requirement
|
89
89
|
none: false
|
90
90
|
requirements:
|
91
91
|
- - ! '>='
|
@@ -96,10 +96,10 @@ dependencies:
|
|
96
96
|
version: '3'
|
97
97
|
type: :development
|
98
98
|
prerelease: false
|
99
|
-
version_requirements: *
|
99
|
+
version_requirements: *70316886720440
|
100
100
|
- !ruby/object:Gem::Dependency
|
101
101
|
name: vcr
|
102
|
-
requirement: &
|
102
|
+
requirement: &70316886719040 !ruby/object:Gem::Requirement
|
103
103
|
none: false
|
104
104
|
requirements:
|
105
105
|
- - ~>
|
@@ -107,13 +107,16 @@ dependencies:
|
|
107
107
|
version: '2.1'
|
108
108
|
type: :development
|
109
109
|
prerelease: false
|
110
|
-
version_requirements: *
|
110
|
+
version_requirements: *70316886719040
|
111
111
|
description: This gem wraps the Flickr API with a nice object-oriented interface.
|
112
112
|
email: janko.marohnic@gmail.com
|
113
113
|
executables: []
|
114
114
|
extensions: []
|
115
115
|
extra_rdoc_files: []
|
116
116
|
files:
|
117
|
+
- lib/flickrie/api_methods/media.rb
|
118
|
+
- lib/flickrie/api_methods/set.rb
|
119
|
+
- lib/flickrie/api_methods/user.rb
|
117
120
|
- lib/flickrie/api_methods.rb
|
118
121
|
- lib/flickrie/client.rb
|
119
122
|
- lib/flickrie/collection.rb
|
@@ -142,7 +145,7 @@ files:
|
|
142
145
|
- README.md
|
143
146
|
- LICENSE
|
144
147
|
- .yardopts
|
145
|
-
homepage:
|
148
|
+
homepage: http://janko-m.github.com/flickrie/
|
146
149
|
licenses:
|
147
150
|
- MIT
|
148
151
|
post_install_message:
|
@@ -163,7 +166,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
163
166
|
version: '0'
|
164
167
|
segments:
|
165
168
|
- 0
|
166
|
-
hash:
|
169
|
+
hash: 3210841569562279184
|
167
170
|
requirements: []
|
168
171
|
rubyforge_project:
|
169
172
|
rubygems_version: 1.8.11
|