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.
- checksums.yaml +7 -0
- data/README.md +41 -140
- data/lib/flickrie.rb +10 -5
- data/lib/flickrie/api_methods.rb +274 -167
- data/lib/flickrie/callable.rb +21 -21
- data/lib/flickrie/client.rb +16 -259
- data/lib/flickrie/client/methods.rb +89 -0
- data/lib/flickrie/collection.rb +1 -2
- data/lib/flickrie/deprecatable.rb +10 -0
- data/lib/flickrie/flickr_api_methods.rb +246 -0
- data/lib/flickrie/instance.rb +0 -1
- data/lib/flickrie/middleware/fix_flickr_data.rb +149 -124
- data/lib/flickrie/oauth.rb +9 -9
- data/lib/flickrie/objects/comment.rb +35 -0
- data/lib/flickrie/objects/media.rb +8 -8
- data/lib/flickrie/objects/media/exif.rb +2 -2
- data/lib/flickrie/objects/media_context.rb +1 -1
- data/lib/flickrie/objects/user.rb +2 -1
- data/lib/flickrie/upload_client.rb +3 -10
- data/lib/flickrie/version.rb +1 -1
- metadata +40 -54
data/lib/flickrie/oauth.rb
CHANGED
@@ -11,10 +11,10 @@ module Flickrie
|
|
11
11
|
Faraday.new(params) do |b|
|
12
12
|
b.use Middleware::Retry
|
13
13
|
b.use FaradayMiddleware::OAuth,
|
14
|
-
:
|
15
|
-
:
|
16
|
-
:
|
17
|
-
:
|
14
|
+
consumer_key: Flickrie.api_key,
|
15
|
+
consumer_secret: Flickrie.shared_secret,
|
16
|
+
token: request_token.to_a.first,
|
17
|
+
token_secret: request_token.to_a.last
|
18
18
|
|
19
19
|
b.use Middleware::ParseOAuthParams
|
20
20
|
b.use Middleware::OAuthCheck
|
@@ -25,10 +25,10 @@ module Flickrie
|
|
25
25
|
|
26
26
|
def self.params
|
27
27
|
{
|
28
|
-
:
|
29
|
-
:
|
30
|
-
:
|
31
|
-
:
|
28
|
+
url: URL,
|
29
|
+
request: {
|
30
|
+
open_timeout: Flickrie.open_timeout || DEFAULTS[:open_timeout],
|
31
|
+
timeout: Flickrie.timeout || DEFAULTS[:timeout]
|
32
32
|
}
|
33
33
|
}
|
34
34
|
end
|
@@ -73,7 +73,7 @@ module Flickrie
|
|
73
73
|
require 'uri'
|
74
74
|
url = URI.parse(URL)
|
75
75
|
url.path += '/authorize'
|
76
|
-
query_params = {:
|
76
|
+
query_params = {oauth_token: token}.merge(params)
|
77
77
|
url.query = query_params.map { |k,v| "#{k}=#{v}" }.join('&')
|
78
78
|
url.to_s
|
79
79
|
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
module Flickrie
|
2
|
+
class Comment
|
3
|
+
# @!parse attr_reader :id, :author, :created_at,
|
4
|
+
# :permalink, :content, :photo, :video
|
5
|
+
|
6
|
+
# @return [String]
|
7
|
+
def id() @hash["id"] end
|
8
|
+
|
9
|
+
# @return [Flickrie::User]
|
10
|
+
def author() @author ||= User.new(@hash["author"], @api_caller) end
|
11
|
+
|
12
|
+
# @return [Time]
|
13
|
+
def created_at() Time.at(Integer(@hash["datecreate"])) rescue nil end
|
14
|
+
|
15
|
+
# @return [String]
|
16
|
+
def permalink() @hash["permalink"] end
|
17
|
+
|
18
|
+
# @return [String]
|
19
|
+
def content() @hash["_content"] end
|
20
|
+
|
21
|
+
# @return [Flickrie::Photo]
|
22
|
+
def photo() @photo ||= Photo.new({"id" => @hash["photo_id"]}, @api_caller) end
|
23
|
+
# @return [Flickrie::Video]
|
24
|
+
def video() @video ||= Video.new({"id" => @hash["photo_id"]}, @api_caller) end
|
25
|
+
|
26
|
+
def to_s
|
27
|
+
content
|
28
|
+
end
|
29
|
+
|
30
|
+
def initialize(hash, api_caller)
|
31
|
+
@hash = hash
|
32
|
+
@api_caller = api_caller
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -42,8 +42,8 @@ module Flickrie
|
|
42
42
|
#
|
43
43
|
# photo.exif.get('Model') # => 'Canon PowerShot G12'
|
44
44
|
#
|
45
|
-
# photo.exif.get('X-Resolution', :
|
46
|
-
# photo.exif.get('X-Resolution', :
|
45
|
+
# photo.exif.get('X-Resolution', data: 'raw') # => '180'
|
46
|
+
# photo.exif.get('X-Resolution', data: 'clean') # => '180 dpi'
|
47
47
|
# photo.exif.get('X-Resolution') # => '180 dpi'
|
48
48
|
#
|
49
49
|
# @return [Flickrie::Media::Exif]
|
@@ -60,7 +60,7 @@ module Flickrie
|
|
60
60
|
def geo_permissions() Visibility.new(@hash['geoperms']) rescue nil end
|
61
61
|
|
62
62
|
# @return [Array<Flickrie::Media::Tag>]
|
63
|
-
def tags() @hash['tags'].map { |
|
63
|
+
def tags() @hash['tags'].map { |h| Tag.new(h, @api_caller) } rescue nil end
|
64
64
|
# @return [Array<Flickrie::Media::Tag>]
|
65
65
|
def machine_tags() tags.select { |tag| tag.machine_tag? } rescue nil end
|
66
66
|
|
@@ -68,18 +68,18 @@ module Flickrie
|
|
68
68
|
def license() License.new(@hash['license']) rescue nil end
|
69
69
|
|
70
70
|
# @return [Time]
|
71
|
-
def posted_at()
|
71
|
+
def posted_at() Time.at(Integer(@hash['dates']['posted'])) rescue nil end
|
72
72
|
# @return [Time]
|
73
|
-
def uploaded_at() Time.at(Integer(@hash['dates']['uploaded']))
|
73
|
+
def uploaded_at() Time.at(Integer(@hash['dates']['uploaded'])) rescue nil end
|
74
74
|
# @return [Time]
|
75
|
-
def updated_at()
|
75
|
+
def updated_at() Time.at(Integer(@hash['dates']['lastupdate'])) rescue nil end
|
76
76
|
# @return [Time]
|
77
|
-
def taken_at()
|
77
|
+
def taken_at() DateTime.parse(@hash['dates']['taken']).to_time rescue nil end
|
78
78
|
# @return [Fixnum]
|
79
79
|
def taken_at_granularity() Integer(@hash['dates']['takengranularity']) rescue nil end
|
80
80
|
|
81
81
|
# @return [Flickrie::User]
|
82
|
-
def owner() User.new(@hash['owner'], @api_caller) if @hash['owner'] end
|
82
|
+
def owner() @user ||= User.new(@hash['owner'], @api_caller) if @hash['owner'] end
|
83
83
|
|
84
84
|
# @return [Fixnum]
|
85
85
|
def safety_level() Integer(@hash['safety_level']) rescue nil end
|
@@ -7,8 +7,8 @@ module Flickrie
|
|
7
7
|
#
|
8
8
|
# photo.exif.get('Model') # => 'Canon PowerShot G12'
|
9
9
|
#
|
10
|
-
# photo.exif.get('X-Resolution', :
|
11
|
-
# photo.exif.get('X-Resolution', :
|
10
|
+
# photo.exif.get('X-Resolution', data: 'raw') # => '180'
|
11
|
+
# photo.exif.get('X-Resolution', data: 'clean') # => '180 dpi'
|
12
12
|
# photo.exif.get('X-Resolution') # => '180 dpi'
|
13
13
|
#
|
14
14
|
#
|
@@ -8,7 +8,7 @@ module Flickrie
|
|
8
8
|
attr_reader :next
|
9
9
|
|
10
10
|
def initialize(hash, api_caller)
|
11
|
-
count = hash['count']
|
11
|
+
count = hash['count'].to_i
|
12
12
|
previous = hash['prevphoto']['id'].to_i > 0 ? Media.new(hash['prevphoto'], api_caller) : nil
|
13
13
|
next_ = hash['nextphoto']['id'].to_i > 0 ? Media.new(hash['nextphoto'], api_caller) : nil
|
14
14
|
@count, @previous, @next = count, previous, next_
|
@@ -109,7 +109,8 @@ module Flickrie
|
|
109
109
|
# @return [Boolean]
|
110
110
|
def pro?() Integer(@hash['ispro']) == 1 rescue nil end
|
111
111
|
|
112
|
-
# Returns the upload status of the user
|
112
|
+
# Returns the upload status of the user (obtained by calling
|
113
|
+
# Flickrie.get_upload_status).
|
113
114
|
#
|
114
115
|
# @return [Flickrie::User::UploadStatus]
|
115
116
|
def upload_status() UploadStatus.new(@hash['upload_status']) rescue nil end
|
@@ -5,20 +5,13 @@ module Flickrie
|
|
5
5
|
def upload(media, params = {})
|
6
6
|
file = get_file(media, params[:content_type])
|
7
7
|
title = file.original_filename.match(/\.\w{3,4}$/).pre_match
|
8
|
-
post "upload", {
|
9
|
-
:photo => file,
|
10
|
-
:title => title
|
11
|
-
}.merge(params)
|
8
|
+
post "upload", {photo: file, title: title}.merge(params)
|
12
9
|
end
|
13
10
|
|
14
11
|
def replace(media, media_id, params = {})
|
15
12
|
file = get_file(media, params[:content_type])
|
16
13
|
title = file.original_filename.match(/\.\w{3,4}$/).pre_match
|
17
|
-
post "replace", {
|
18
|
-
:photo => file,
|
19
|
-
:photo_id => media_id,
|
20
|
-
:title => title
|
21
|
-
}.merge(params)
|
14
|
+
post "replace", {photo: file, photo_id: media_id, title: title}.merge(params)
|
22
15
|
end
|
23
16
|
|
24
17
|
private
|
@@ -66,7 +59,7 @@ module Flickrie
|
|
66
59
|
content_type = CONTENT_TYPES.find { |k,v| k.include?(extension) }.last
|
67
60
|
|
68
61
|
rescue NoMethodError
|
69
|
-
raise Error, "
|
62
|
+
raise Error, "Content type for this extension (#{extension}) is not known"
|
70
63
|
end
|
71
64
|
end
|
72
65
|
end
|
data/lib/flickrie/version.rb
CHANGED
metadata
CHANGED
@@ -1,160 +1,143 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: flickrie
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.6.
|
5
|
-
prerelease:
|
4
|
+
version: 1.6.1
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Janko Marohnić
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2014-08-22 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: faraday_middleware
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - ">="
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: 0.8.7
|
22
|
-
- - <
|
20
|
+
- - "<"
|
23
21
|
- !ruby/object:Gem::Version
|
24
22
|
version: '0.9'
|
25
23
|
type: :runtime
|
26
24
|
prerelease: false
|
27
25
|
version_requirements: !ruby/object:Gem::Requirement
|
28
|
-
none: false
|
29
26
|
requirements:
|
30
|
-
- -
|
27
|
+
- - ">="
|
31
28
|
- !ruby/object:Gem::Version
|
32
29
|
version: 0.8.7
|
33
|
-
- - <
|
30
|
+
- - "<"
|
34
31
|
- !ruby/object:Gem::Version
|
35
32
|
version: '0.9'
|
36
33
|
- !ruby/object:Gem::Dependency
|
37
34
|
name: faraday
|
38
35
|
requirement: !ruby/object:Gem::Requirement
|
39
|
-
none: false
|
40
36
|
requirements:
|
41
|
-
- -
|
37
|
+
- - ">="
|
42
38
|
- !ruby/object:Gem::Version
|
43
39
|
version: 0.7.6
|
44
|
-
- - <
|
40
|
+
- - "<"
|
45
41
|
- !ruby/object:Gem::Version
|
46
42
|
version: '0.9'
|
47
43
|
type: :runtime
|
48
44
|
prerelease: false
|
49
45
|
version_requirements: !ruby/object:Gem::Requirement
|
50
|
-
none: false
|
51
46
|
requirements:
|
52
|
-
- -
|
47
|
+
- - ">="
|
53
48
|
- !ruby/object:Gem::Version
|
54
49
|
version: 0.7.6
|
55
|
-
- - <
|
50
|
+
- - "<"
|
56
51
|
- !ruby/object:Gem::Version
|
57
52
|
version: '0.9'
|
58
53
|
- !ruby/object:Gem::Dependency
|
59
54
|
name: simple_oauth
|
60
55
|
requirement: !ruby/object:Gem::Requirement
|
61
|
-
none: false
|
62
56
|
requirements:
|
63
|
-
- - ~>
|
57
|
+
- - "~>"
|
64
58
|
- !ruby/object:Gem::Version
|
65
59
|
version: '0.1'
|
66
60
|
type: :runtime
|
67
61
|
prerelease: false
|
68
62
|
version_requirements: !ruby/object:Gem::Requirement
|
69
|
-
none: false
|
70
63
|
requirements:
|
71
|
-
- - ~>
|
64
|
+
- - "~>"
|
72
65
|
- !ruby/object:Gem::Version
|
73
66
|
version: '0.1'
|
74
67
|
- !ruby/object:Gem::Dependency
|
75
68
|
name: multi_xml
|
76
69
|
requirement: !ruby/object:Gem::Requirement
|
77
|
-
none: false
|
78
70
|
requirements:
|
79
|
-
- - ~>
|
71
|
+
- - "~>"
|
80
72
|
- !ruby/object:Gem::Version
|
81
73
|
version: '0.4'
|
82
74
|
type: :runtime
|
83
75
|
prerelease: false
|
84
76
|
version_requirements: !ruby/object:Gem::Requirement
|
85
|
-
none: false
|
86
77
|
requirements:
|
87
|
-
- - ~>
|
78
|
+
- - "~>"
|
88
79
|
- !ruby/object:Gem::Version
|
89
80
|
version: '0.4'
|
90
81
|
- !ruby/object:Gem::Dependency
|
91
82
|
name: bundler
|
92
83
|
requirement: !ruby/object:Gem::Requirement
|
93
|
-
none: false
|
94
84
|
requirements:
|
95
|
-
- - ~>
|
85
|
+
- - "~>"
|
96
86
|
- !ruby/object:Gem::Version
|
97
87
|
version: '1.0'
|
98
88
|
type: :development
|
99
89
|
prerelease: false
|
100
90
|
version_requirements: !ruby/object:Gem::Requirement
|
101
|
-
none: false
|
102
91
|
requirements:
|
103
|
-
- - ~>
|
92
|
+
- - "~>"
|
104
93
|
- !ruby/object:Gem::Version
|
105
94
|
version: '1.0'
|
106
95
|
- !ruby/object:Gem::Dependency
|
107
96
|
name: rake
|
108
97
|
requirement: !ruby/object:Gem::Requirement
|
109
|
-
none: false
|
110
98
|
requirements:
|
111
|
-
- - ~>
|
99
|
+
- - "~>"
|
112
100
|
- !ruby/object:Gem::Version
|
113
101
|
version: '0.9'
|
114
102
|
type: :development
|
115
103
|
prerelease: false
|
116
104
|
version_requirements: !ruby/object:Gem::Requirement
|
117
|
-
none: false
|
118
105
|
requirements:
|
119
|
-
- - ~>
|
106
|
+
- - "~>"
|
120
107
|
- !ruby/object:Gem::Version
|
121
108
|
version: '0.9'
|
122
109
|
- !ruby/object:Gem::Dependency
|
123
110
|
name: rspec
|
124
111
|
requirement: !ruby/object:Gem::Requirement
|
125
|
-
none: false
|
126
112
|
requirements:
|
127
|
-
- -
|
113
|
+
- - ">="
|
128
114
|
- !ruby/object:Gem::Version
|
129
115
|
version: '2.10'
|
130
|
-
- - <
|
116
|
+
- - "<"
|
131
117
|
- !ruby/object:Gem::Version
|
132
118
|
version: '3'
|
133
119
|
type: :development
|
134
120
|
prerelease: false
|
135
121
|
version_requirements: !ruby/object:Gem::Requirement
|
136
|
-
none: false
|
137
122
|
requirements:
|
138
|
-
- -
|
123
|
+
- - ">="
|
139
124
|
- !ruby/object:Gem::Version
|
140
125
|
version: '2.10'
|
141
|
-
- - <
|
126
|
+
- - "<"
|
142
127
|
- !ruby/object:Gem::Version
|
143
128
|
version: '3'
|
144
129
|
- !ruby/object:Gem::Dependency
|
145
130
|
name: vcr
|
146
131
|
requirement: !ruby/object:Gem::Requirement
|
147
|
-
none: false
|
148
132
|
requirements:
|
149
|
-
- - ~>
|
133
|
+
- - "~>"
|
150
134
|
- !ruby/object:Gem::Version
|
151
135
|
version: '2.1'
|
152
136
|
type: :development
|
153
137
|
prerelease: false
|
154
138
|
version_requirements: !ruby/object:Gem::Requirement
|
155
|
-
none: false
|
156
139
|
requirements:
|
157
|
-
- - ~>
|
140
|
+
- - "~>"
|
158
141
|
- !ruby/object:Gem::Version
|
159
142
|
version: '2.1'
|
160
143
|
description: This gem wraps the Flickr API with a nice object-oriented interface.
|
@@ -163,62 +146,65 @@ executables: []
|
|
163
146
|
extensions: []
|
164
147
|
extra_rdoc_files: []
|
165
148
|
files:
|
149
|
+
- ".yardopts"
|
150
|
+
- LICENSE
|
151
|
+
- README.md
|
152
|
+
- lib/flickrie.rb
|
166
153
|
- lib/flickrie/api_methods.rb
|
167
154
|
- lib/flickrie/base58.rb
|
168
155
|
- lib/flickrie/callable.rb
|
169
156
|
- lib/flickrie/client.rb
|
157
|
+
- lib/flickrie/client/methods.rb
|
170
158
|
- lib/flickrie/collection.rb
|
171
159
|
- lib/flickrie/core_ext.rb
|
160
|
+
- lib/flickrie/deprecatable.rb
|
161
|
+
- lib/flickrie/flickr_api_methods.rb
|
172
162
|
- lib/flickrie/instance.rb
|
163
|
+
- lib/flickrie/middleware.rb
|
173
164
|
- lib/flickrie/middleware/fix_flickr_data.rb
|
174
165
|
- lib/flickrie/middleware/retry.rb
|
175
|
-
- lib/flickrie/middleware.rb
|
176
166
|
- lib/flickrie/oauth.rb
|
167
|
+
- lib/flickrie/objects/comment.rb
|
177
168
|
- lib/flickrie/objects/license.rb
|
178
169
|
- lib/flickrie/objects/location.rb
|
170
|
+
- lib/flickrie/objects/media.rb
|
179
171
|
- lib/flickrie/objects/media/exif.rb
|
180
172
|
- lib/flickrie/objects/media/note.rb
|
181
173
|
- lib/flickrie/objects/media/tag.rb
|
182
174
|
- lib/flickrie/objects/media/visibility.rb
|
183
|
-
- lib/flickrie/objects/media.rb
|
184
175
|
- lib/flickrie/objects/media_context.rb
|
185
176
|
- lib/flickrie/objects/media_count.rb
|
186
177
|
- lib/flickrie/objects/photo.rb
|
187
178
|
- lib/flickrie/objects/set.rb
|
188
179
|
- lib/flickrie/objects/ticket.rb
|
189
|
-
- lib/flickrie/objects/user/upload_status.rb
|
190
180
|
- lib/flickrie/objects/user.rb
|
181
|
+
- lib/flickrie/objects/user/upload_status.rb
|
191
182
|
- lib/flickrie/objects/video.rb
|
192
183
|
- lib/flickrie/upload_client.rb
|
193
184
|
- lib/flickrie/version.rb
|
194
|
-
- lib/flickrie.rb
|
195
|
-
- README.md
|
196
|
-
- LICENSE
|
197
|
-
- .yardopts
|
198
185
|
homepage: http://janko-m.github.com/flickrie/
|
199
186
|
licenses:
|
200
187
|
- MIT
|
188
|
+
metadata: {}
|
201
189
|
post_install_message:
|
202
190
|
rdoc_options: []
|
203
191
|
require_paths:
|
204
192
|
- lib
|
205
193
|
required_ruby_version: !ruby/object:Gem::Requirement
|
206
|
-
none: false
|
207
194
|
requirements:
|
208
|
-
- -
|
195
|
+
- - ">="
|
209
196
|
- !ruby/object:Gem::Version
|
210
197
|
version: 1.9.2
|
211
198
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
212
|
-
none: false
|
213
199
|
requirements:
|
214
|
-
- -
|
200
|
+
- - ">="
|
215
201
|
- !ruby/object:Gem::Version
|
216
202
|
version: '0'
|
217
203
|
requirements: []
|
218
204
|
rubyforge_project:
|
219
|
-
rubygems_version:
|
205
|
+
rubygems_version: 2.2.2
|
220
206
|
signing_key:
|
221
|
-
specification_version:
|
207
|
+
specification_version: 4
|
222
208
|
summary: This gem wraps the Flickr API with a nice object-oriented interface.
|
223
209
|
test_files: []
|
224
210
|
has_rdoc:
|