flickrie 0.5.2 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +0 -1
- data/CHANGELOG.md +10 -0
- data/Gemfile +3 -2
- data/Rakefile +7 -2
- data/flickrie.gemspec +3 -0
- data/lib/flickrie/api_methods.rb +5 -0
- data/lib/flickrie/client.rb +17 -4
- data/lib/flickrie/location.rb +23 -50
- data/lib/flickrie/media/exif.rb +4 -0
- data/lib/flickrie/media/tag.rb +4 -0
- data/lib/flickrie/media/ticket.rb +4 -0
- data/lib/flickrie/media/visibility.rb +10 -6
- data/lib/flickrie/media.rb +7 -70
- data/lib/flickrie/media_count.rb +4 -0
- data/lib/flickrie/oauth.rb +5 -3
- data/lib/flickrie/set.rb +5 -21
- data/lib/flickrie/upload_client.rb +4 -2
- data/lib/flickrie/user.rb +4 -1
- data/lib/flickrie/version.rb +1 -1
- data/lib/flickrie/video.rb +0 -13
- data/test/error_test.rb +20 -0
- data/test/instance_test.rb +13 -14
- data/test/license_test.rb +7 -13
- data/test/location_test.rb +11 -2
- data/test/media_count_test.rb +20 -12
- data/test/media_test.rb +319 -311
- data/test/oauth_test.rb +17 -18
- data/test/photo_test.rb +78 -60
- data/test/set_test.rb +72 -63
- data/test/{test.rb → test_helper.rb} +7 -0
- data/test/user_test.rb +43 -34
- data/test/vcr_cassettes/error/code.yml +1165 -0
- data/test/vcr_cassettes/instance/calling_api_methods.yml +182 -0
- data/test/vcr_cassettes/license/get_licenses.yml +73 -0
- data/test/vcr_cassettes/location/square_brackets.yml +85 -0
- data/test/vcr_cassettes/media/delete.yml +1380 -0
- data/test/vcr_cassettes/media/from_contacts.yml +155 -0
- data/test/vcr_cassettes/media/from_set.yml +276 -0
- data/test/vcr_cassettes/media/from_user.yml +275 -0
- data/test/vcr_cassettes/media/get_context.yml +73 -0
- data/test/vcr_cassettes/media/get_info.yml +167 -0
- data/test/vcr_cassettes/media/remove_tag.yml +264 -0
- data/test/vcr_cassettes/media/replace.yml +2252 -0
- data/test/vcr_cassettes/media/search.yml +275 -0
- data/test/vcr_cassettes/media/tags.yml +346 -0
- data/test/vcr_cassettes/media_count/get.yml +135 -0
- data/test/vcr_cassettes/media_count/square_brackets.yml +69 -0
- data/test/vcr_cassettes/oauth/tokens.yml +400 -0
- data/test/vcr_cassettes/photo/asynchronous_upload.yml +1693 -0
- data/test/vcr_cassettes/photo/from_set.yml +273 -0
- data/test/vcr_cassettes/photo/from_user.yml +275 -0
- data/test/vcr_cassettes/photo/get_exif.yml +239 -0
- data/test/vcr_cassettes/photo/get_sizes.yml +147 -0
- data/test/vcr_cassettes/photo/other_api_calls.yml +506 -0
- data/test/vcr_cassettes/photo/search.yml +271 -0
- data/test/vcr_cassettes/photo/square_brackets.yml +85 -0
- data/test/vcr_cassettes/photo/upload.yml +1229 -0
- data/test/vcr_cassettes/set/from_user.yml +477 -0
- data/test/vcr_cassettes/set/get_info.yml +951 -0
- data/test/vcr_cassettes/set/square_brackets.yml +73 -0
- data/test/vcr_cassettes/user/find_by_email_or_username.yml +135 -0
- data/test/vcr_cassettes/user/get_info.yml +151 -0
- data/test/vcr_cassettes/user/square_brackets.yml +77 -0
- data/test/vcr_cassettes/video/get_exif.yml +135 -0
- data/test/vcr_cassettes/video/get_info.yml +86 -0
- data/test/vcr_cassettes/video/get_sizes.yml +151 -0
- data/test/vcr_cassettes/video/other_api_calls.yml +643 -0
- data/test/vcr_cassettes/video/square_brackets.yml +86 -0
- data/test/vcr_cassettes/video/upload.yml +308 -0
- data/test/video_test.rb +66 -53
- metadata +123 -12
data/.gitignore
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,15 @@
|
|
1
1
|
# Flickrie changelog
|
2
2
|
|
3
|
+
## Version 0.6.0
|
4
|
+
|
5
|
+
- you can access the raw response hash with square brackets, if you notice I
|
6
|
+
didn't cover some part of it with methods. So, for example, `photo['id']`
|
7
|
+
will access the photo's ID.
|
8
|
+
|
9
|
+
- when `Flickrie::Error` is raises, you can now access its `#code`
|
10
|
+
attribute. This makes better error handling, because error code
|
11
|
+
is (supposed to be) unique, unlike the error message
|
12
|
+
|
3
13
|
## Version 0.5.2
|
4
14
|
|
5
15
|
- the gem now also works with Faraday 0.7 (I apologize for not
|
data/Gemfile
CHANGED
@@ -5,12 +5,13 @@ gemspec
|
|
5
5
|
gem "faraday", "~> 0.7.6"
|
6
6
|
|
7
7
|
group :development, :test do
|
8
|
-
gem "activesupport"
|
9
8
|
gem "flickrie", :path => "~/Projects/flickrie"
|
10
9
|
gem "pry"
|
11
10
|
gem "debugger"
|
12
11
|
end
|
13
12
|
|
14
13
|
group :test do
|
15
|
-
gem
|
14
|
+
# This is to get rid of 'gem install minitest' messages
|
15
|
+
# in the tests
|
16
|
+
gem "minitest"
|
16
17
|
end
|
data/Rakefile
CHANGED
@@ -5,7 +5,7 @@ CURRENT_DIR = File.expand_path(File.dirname(__FILE__))
|
|
5
5
|
|
6
6
|
task :test do
|
7
7
|
Dir["#{CURRENT_DIR}/test/**/*_test.rb"].each do |test_file|
|
8
|
-
system "bundle exec turn -Itest #{test_file}"
|
8
|
+
system "bundle exec turn -Itest --require=test_helper #{test_file}"
|
9
9
|
end
|
10
10
|
end
|
11
11
|
|
@@ -14,7 +14,12 @@ namespace :test do
|
|
14
14
|
map { |t| [File.basename(t).chomp('_test.rb').to_sym, t] }.
|
15
15
|
each do |test_name, test_file|
|
16
16
|
task(test_name) do
|
17
|
-
system "bundle exec turn -Itest #{test_file}"
|
17
|
+
system "bundle exec turn -Itest --require=test_helper #{test_file}"
|
18
18
|
end
|
19
19
|
end
|
20
20
|
end
|
21
|
+
|
22
|
+
task :rdoc do
|
23
|
+
system "rm -rf doc/"
|
24
|
+
system "rdoc lib/"
|
25
|
+
end
|
data/flickrie.gemspec
CHANGED
data/lib/flickrie/api_methods.rb
CHANGED
@@ -29,6 +29,7 @@ module Flickrie
|
|
29
29
|
end
|
30
30
|
end
|
31
31
|
|
32
|
+
#--
|
32
33
|
# people
|
33
34
|
def find_user_by_email(email)
|
34
35
|
response = client.find_user_by_email(email)
|
@@ -58,6 +59,7 @@ module Flickrie
|
|
58
59
|
select { |media| media.is_a?(Video) }
|
59
60
|
end
|
60
61
|
|
62
|
+
#--
|
61
63
|
# photos
|
62
64
|
def add_media_tags(media_id, tags)
|
63
65
|
client.add_media_tags(media_id, tags)
|
@@ -160,6 +162,7 @@ module Flickrie
|
|
160
162
|
search_media(search_params.merge(:media => 'videos'))
|
161
163
|
end
|
162
164
|
|
165
|
+
#--
|
163
166
|
# photos.upload
|
164
167
|
def check_upload_tickets(tickets)
|
165
168
|
tickets = tickets.join(',') if tickets.respond_to?(:join)
|
@@ -168,12 +171,14 @@ module Flickrie
|
|
168
171
|
map { |info| Media::Ticket.new(info) }
|
169
172
|
end
|
170
173
|
|
174
|
+
#--
|
171
175
|
# licenses
|
172
176
|
def get_licenses
|
173
177
|
response = client.get_licenses
|
174
178
|
License.from_hash(response.body['licenses']['license'])
|
175
179
|
end
|
176
180
|
|
181
|
+
#--
|
177
182
|
# photosets
|
178
183
|
def get_set_info(set_id)
|
179
184
|
response = client.get_set_info(set_id)
|
data/lib/flickrie/client.rb
CHANGED
@@ -2,6 +2,7 @@ require 'faraday_middleware'
|
|
2
2
|
|
3
3
|
module Flickrie
|
4
4
|
class << self
|
5
|
+
# :nodoc:
|
5
6
|
def self.attr_accessor_with_client_reset(*attributes)
|
6
7
|
attr_reader *attributes
|
7
8
|
|
@@ -54,17 +55,24 @@ module Flickrie
|
|
54
55
|
end
|
55
56
|
|
56
57
|
class Error < StandardError
|
58
|
+
attr_reader :code
|
59
|
+
|
60
|
+
def initialize(message, code = nil)
|
61
|
+
super(message)
|
62
|
+
@code = code.to_i
|
63
|
+
end
|
57
64
|
end
|
58
65
|
|
59
|
-
class StatusCheck < Faraday::Response::Middleware
|
66
|
+
class StatusCheck < Faraday::Response::Middleware # :nodoc:
|
60
67
|
def on_complete(env)
|
61
68
|
if env[:body]['stat'] != 'ok'
|
62
|
-
raise Error, env[:body]['
|
69
|
+
raise Error.new(env[:body]['message'], env[:body]['code']),
|
70
|
+
env[:body]['message']
|
63
71
|
end
|
64
72
|
end
|
65
73
|
end
|
66
74
|
|
67
|
-
class OAuthStatusCheck < Faraday::Response::Middleware
|
75
|
+
class OAuthStatusCheck < Faraday::Response::Middleware # :nodoc:
|
68
76
|
def on_complete(env)
|
69
77
|
if env[:status] != 200
|
70
78
|
message = env[:body][/(?<=oauth_problem=)[^&]+/]
|
@@ -88,6 +96,7 @@ module Flickrie
|
|
88
96
|
end
|
89
97
|
end
|
90
98
|
|
99
|
+
#--
|
91
100
|
# people
|
92
101
|
def find_user_by_email(email)
|
93
102
|
get 'flickr.people.findByEmail', :find_email => email
|
@@ -106,6 +115,7 @@ module Flickrie
|
|
106
115
|
get 'flickr.people.getPublicPhotos', ensure_media(params)
|
107
116
|
end
|
108
117
|
|
118
|
+
#--
|
109
119
|
# photos
|
110
120
|
def add_media_tags(media_id, tags)
|
111
121
|
post 'flickr.photos.addTags', :photo_id => media_id, :tags => tags
|
@@ -152,16 +162,19 @@ module Flickrie
|
|
152
162
|
get 'flickr.photos.search', ensure_media(params)
|
153
163
|
end
|
154
164
|
|
165
|
+
#--
|
155
166
|
# photos.upload
|
156
167
|
def check_upload_tickets(tickets)
|
157
168
|
get 'flickr.photos.upload.checkTickets', :tickets => tickets
|
158
169
|
end
|
159
170
|
|
160
|
-
|
171
|
+
#--
|
172
|
+
# photos.licenses
|
161
173
|
def get_licenses
|
162
174
|
get 'flickr.photos.licenses.getInfo'
|
163
175
|
end
|
164
176
|
|
177
|
+
#--
|
165
178
|
# photosets
|
166
179
|
def get_set_info(set_id)
|
167
180
|
get 'flickr.photosets.getInfo', :photoset_id => set_id
|
data/lib/flickrie/location.rb
CHANGED
@@ -1,62 +1,35 @@
|
|
1
1
|
module Flickrie
|
2
2
|
class Location
|
3
|
-
|
4
|
-
|
5
|
-
@info[attr_name]
|
6
|
-
end
|
7
|
-
end
|
3
|
+
attr_reader :latitude, :longitude, :accuracy, :context, :place_id,
|
4
|
+
:woeid
|
8
5
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
end
|
6
|
+
def neighbourhood; place('neighbourhood') end
|
7
|
+
def locality; place('locality') end
|
8
|
+
def county; place('county') end
|
9
|
+
def region; place('region') end
|
10
|
+
def country; place('country') end
|
11
|
+
|
12
|
+
def [](key)
|
13
|
+
@info[key]
|
18
14
|
end
|
19
15
|
|
20
16
|
private
|
21
17
|
|
22
18
|
def initialize(info = {})
|
23
19
|
@info = info
|
20
|
+
|
21
|
+
%w[latitude longitude accuracy context place_id woeid].each do |attribute|
|
22
|
+
instance_variable_set "@#{attribute}", @info[attribute]
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def place(place_name)
|
27
|
+
if @info[place_name]
|
28
|
+
Struct.new(:name, :place_id, :woeid).new \
|
29
|
+
@info[place_name]['_content'],
|
30
|
+
@info[place_name]['place_id'],
|
31
|
+
@info[place_name]['woeid']
|
32
|
+
end
|
24
33
|
end
|
25
34
|
end
|
26
35
|
end
|
27
|
-
|
28
|
-
__END__
|
29
|
-
|
30
|
-
{
|
31
|
-
"latitude" => 37.792608,
|
32
|
-
"longitude" => -122.402672,
|
33
|
-
"accuracy" => "14",
|
34
|
-
"context" => "0",
|
35
|
-
"neighbourhood" => {
|
36
|
-
"_content" => "Financial District",
|
37
|
-
"place_id" => "GddgqTpTUb8LgT93hw",
|
38
|
-
"woeid" => "23512022"
|
39
|
-
},
|
40
|
-
"locality" => {
|
41
|
-
"_content" => "San Francisco",
|
42
|
-
"place_id" => "7.MJR8tTVrIO1EgB",
|
43
|
-
"woeid" => "2487956"
|
44
|
-
},
|
45
|
-
"county" => {
|
46
|
-
"_content" => "San Francisco",
|
47
|
-
"place_id" => ".7sOmlRQUL9nK.kMzA",
|
48
|
-
"woeid" => "12587707"
|
49
|
-
},
|
50
|
-
"region" => {
|
51
|
-
"_content" => "California",
|
52
|
-
"place_id" => "NsbUWfBTUb4mbyVu",
|
53
|
-
"woeid" => "2347563"
|
54
|
-
},
|
55
|
-
"country" => {
|
56
|
-
"_content" => "United States",
|
57
|
-
"place_id" => "nz.gsghTUb4c2WAecA",
|
58
|
-
"woeid" => "23424977"
|
59
|
-
},
|
60
|
-
"place_id" =>"GddgqTpTUb8LgT93hw",
|
61
|
-
"woeid" =>"23512022"
|
62
|
-
}
|
data/lib/flickrie/media/exif.rb
CHANGED
data/lib/flickrie/media/tag.rb
CHANGED
@@ -1,13 +1,17 @@
|
|
1
1
|
module Flickrie
|
2
2
|
module Media
|
3
3
|
class Visibility
|
4
|
-
def public?; @
|
5
|
-
def friends?; @
|
6
|
-
def family?; @
|
7
|
-
def contacts?; @
|
4
|
+
def public?; @info['ispublic'].to_i == 1 if @info['ispublic'] end
|
5
|
+
def friends?; @info['isfriend'].to_i == 1 if @info['isfriend'] end
|
6
|
+
def family?; @info['isfamily'].to_i == 1 if @info['isfamily'] end
|
7
|
+
def contacts?; @info['iscontact'].to_i == 1 if @info['iscontact'] end
|
8
8
|
|
9
|
-
def
|
10
|
-
@
|
9
|
+
def [](key)
|
10
|
+
@info[key]
|
11
|
+
end
|
12
|
+
|
13
|
+
def initialize(info)
|
14
|
+
@info = info
|
11
15
|
end
|
12
16
|
end
|
13
17
|
end
|
data/lib/flickrie/media.rb
CHANGED
@@ -45,13 +45,7 @@ module Flickrie
|
|
45
45
|
end
|
46
46
|
|
47
47
|
def geo_permissions
|
48
|
-
if @info['geoperms']
|
49
|
-
Visibility.new \
|
50
|
-
*[@info['geoperms']['ispublic'],
|
51
|
-
@info['geoperms']['isfriend'],
|
52
|
-
@info['geoperms']['isfamily'],
|
53
|
-
@info['geoperms']['iscontact']]
|
54
|
-
end
|
48
|
+
Visibility.new(@info['geoperms']) if @info['geoperms']
|
55
49
|
end
|
56
50
|
|
57
51
|
def license
|
@@ -86,12 +80,7 @@ module Flickrie
|
|
86
80
|
end
|
87
81
|
|
88
82
|
def visibility
|
89
|
-
if @info['visibility']
|
90
|
-
Visibility.new \
|
91
|
-
*[@info['visibility']['ispublic'],
|
92
|
-
@info['visibility']['isfriend'],
|
93
|
-
@info['visibility']['isfamily']]
|
94
|
-
end
|
83
|
+
Visibility.new(@info['visibility']) if @info['visibility']
|
95
84
|
end
|
96
85
|
|
97
86
|
def primary?; @info['isprimary'].to_i == 1 if @info['isprimary'] end
|
@@ -122,10 +111,13 @@ module Flickrie
|
|
122
111
|
@info['notes']['note'].map { |hash| Note.new(hash) } if @info['notes']
|
123
112
|
end
|
124
113
|
|
114
|
+
def [](key)
|
115
|
+
@info[key]
|
116
|
+
end
|
117
|
+
|
125
118
|
def get_info(info = nil)
|
126
119
|
info ||= Flickrie.client.get_media_info(id).body['photo']
|
127
120
|
|
128
|
-
# Fixes
|
129
121
|
info['title'] = info['title']['_content']
|
130
122
|
info['description'] = info['description']['_content']
|
131
123
|
info['comments_count'] = info.delete('comments')['_content']
|
@@ -151,7 +143,7 @@ module Flickrie
|
|
151
143
|
@info['usage'] ||= {}
|
152
144
|
end
|
153
145
|
|
154
|
-
module ClassMethods
|
146
|
+
module ClassMethods # :nodoc:
|
155
147
|
def from_set(hash)
|
156
148
|
hash['photo'].map do |info|
|
157
149
|
info['owner'] = {
|
@@ -253,58 +245,3 @@ module Flickrie
|
|
253
245
|
end
|
254
246
|
end
|
255
247
|
end
|
256
|
-
|
257
|
-
__END__
|
258
|
-
|
259
|
-
|
260
|
-
{
|
261
|
-
"id"=>"6923154272",
|
262
|
-
"secret"=>"5519fab554",
|
263
|
-
"server"=>"5279",
|
264
|
-
"farm"=>6,
|
265
|
-
"dateuploaded"=>"1334189525",
|
266
|
-
"isfavorite"=>0,
|
267
|
-
"license"=>"0",
|
268
|
-
"safety_level"=>"0",
|
269
|
-
"rotation"=>0,
|
270
|
-
"owner"=>
|
271
|
-
{"nsid"=>"67131352@N04",
|
272
|
-
"username"=>"Janko Marohnić",
|
273
|
-
"realname"=>"",
|
274
|
-
"location"=>"",
|
275
|
-
"iconserver"=>"0",
|
276
|
-
"iconfarm"=>0},
|
277
|
-
"title"=>{"_content"=>"David Belle - Canon commercial"},
|
278
|
-
"description"=>{"_content"=>""},
|
279
|
-
"visibility"=>{"ispublic"=>1, "isfriend"=>0, "isfamily"=>0},
|
280
|
-
"dates"=>
|
281
|
-
{"posted"=>"1334189525",
|
282
|
-
"taken"=>"2012-04-11 17:12:05",
|
283
|
-
"takengranularity"=>"0",
|
284
|
-
"lastupdate"=>"1334259651"},
|
285
|
-
"views"=>"1",
|
286
|
-
"editability"=>{"cancomment"=>0, "canaddmeta"=>0},
|
287
|
-
"publiceditability"=>{"cancomment"=>1, "canaddmeta"=>0},
|
288
|
-
"usage"=>{"candownload"=>1, "canblog"=>0, "canprint"=>0, "canshare"=>0},
|
289
|
-
"comments"=>{"_content"=>"0"},
|
290
|
-
"notes"=>{"note"=>[]},
|
291
|
-
"people"=>{"haspeople"=>0},
|
292
|
-
"tags"=>
|
293
|
-
{"tag"=>
|
294
|
-
[{"id"=>"67099213-6923154272-471",
|
295
|
-
"author"=>"67131352@N04",
|
296
|
-
"raw"=>"David",
|
297
|
-
"_content"=>"david",
|
298
|
-
"machine_tag"=>0},
|
299
|
-
{"id"=>"67099213-6923154272-18012",
|
300
|
-
"author"=>"67131352@N04",
|
301
|
-
"raw"=>"Belle",
|
302
|
-
"_content"=>"belle",
|
303
|
-
"machine_tag"=>0}]},
|
304
|
-
"location"=> {...}
|
305
|
-
"geoperms"=>{"ispublic"=>1, "iscontact"=>0, "isfriend"=>0, "isfamily"=>0},
|
306
|
-
"urls"=>
|
307
|
-
{"url"=>
|
308
|
-
[{"type"=>"photopage",
|
309
|
-
"_content"=>"http://www.flickr.com/photos/67131352@N04/6923154272/"}]},
|
310
|
-
}
|
data/lib/flickrie/media_count.rb
CHANGED
data/lib/flickrie/oauth.rb
CHANGED
@@ -6,6 +6,7 @@ module Flickrie
|
|
6
6
|
URL = 'http://www.flickr.com/services/oauth'.freeze
|
7
7
|
NO_CALLBACK = 'oob'.freeze
|
8
8
|
|
9
|
+
# :nodoc:
|
9
10
|
def self.new_connection(additional_oauth_params = {})
|
10
11
|
oauth_params = {
|
11
12
|
:consumer_key => Flickrie.api_key,
|
@@ -22,7 +23,7 @@ module Flickrie
|
|
22
23
|
end
|
23
24
|
end
|
24
25
|
|
25
|
-
class StatusCheck < Faraday::Response::Middleware
|
26
|
+
class StatusCheck < Faraday::Response::Middleware # :nodoc:
|
26
27
|
def on_complete(env)
|
27
28
|
if env[:status] != 200
|
28
29
|
raise Error, env[:body]['oauth_problem'].gsub('_', ' ').capitalize
|
@@ -33,13 +34,14 @@ module Flickrie
|
|
33
34
|
class Error < StandardError
|
34
35
|
end
|
35
36
|
|
36
|
-
class ParseResponseParams < FaradayMiddleware::ResponseMiddleware
|
37
|
+
class ParseResponseParams < FaradayMiddleware::ResponseMiddleware # :nodoc:
|
37
38
|
define_parser do |body|
|
38
39
|
params_array = body.split('&').map { |param| param.split('=') }
|
39
40
|
Hash[*params_array.flatten]
|
40
41
|
end
|
41
42
|
end
|
42
43
|
|
44
|
+
# :doc:
|
43
45
|
def self.get_request_token(options = {})
|
44
46
|
connection = new_connection
|
45
47
|
|
@@ -62,7 +64,7 @@ module Flickrie
|
|
62
64
|
AccessToken.from_response(response.body)
|
63
65
|
end
|
64
66
|
|
65
|
-
module Token
|
67
|
+
module Token # :nodoc:
|
66
68
|
def from_response(body)
|
67
69
|
new(body['oauth_token'], body['oauth_token_secret'])
|
68
70
|
end
|
data/lib/flickrie/set.rb
CHANGED
@@ -25,6 +25,7 @@ module Flickrie
|
|
25
25
|
|
26
26
|
def can_comment?; @info['can_comment'].to_i == 1 if @info['can_comment'] end
|
27
27
|
|
28
|
+
#--
|
28
29
|
# TODO: Figure out what this is
|
29
30
|
def needs_interstitial?; @info['needs_interstitial'].to_i == 1 end
|
30
31
|
def visibility_can_see_set?; @info['visibility_can_see_set'].to_i == 1 end
|
@@ -34,6 +35,10 @@ module Flickrie
|
|
34
35
|
|
35
36
|
def url; "http://www.flickr.com/photos/#{owner.nsid}/sets/#{id}" end
|
36
37
|
|
38
|
+
def [](key)
|
39
|
+
@info[key]
|
40
|
+
end
|
41
|
+
|
37
42
|
def get_info(info = nil)
|
38
43
|
info ||= Flickrie.client.get_set_info(id).body['photoset']
|
39
44
|
info['title'] = info['title']['_content']
|
@@ -66,24 +71,3 @@ module Flickrie
|
|
66
71
|
end
|
67
72
|
end
|
68
73
|
end
|
69
|
-
|
70
|
-
__END__
|
71
|
-
|
72
|
-
{
|
73
|
-
"id"=>"72157629443464020",
|
74
|
-
"primary"=>"6913731566",
|
75
|
-
"secret"=>"23879c079a",
|
76
|
-
"server"=>"7130",
|
77
|
-
"farm"=>8,
|
78
|
-
"photos"=>"1",
|
79
|
-
"videos"=>0,
|
80
|
-
"title"=>{"_content"=>"Bla"},
|
81
|
-
"description"=>{"_content"=>""},
|
82
|
-
"needs_interstitial"=>0,
|
83
|
-
"visibility_can_see_set"=>1,
|
84
|
-
"count_views"=>"0",
|
85
|
-
"count_comments"=>"0",
|
86
|
-
"can_comment"=>0,
|
87
|
-
"date_create"=>"1334331151",
|
88
|
-
"date_update"=>"1334331155
|
89
|
-
}
|
@@ -28,10 +28,12 @@ module Flickrie
|
|
28
28
|
end
|
29
29
|
end
|
30
30
|
|
31
|
-
class UploadStatusCheck < Faraday::Response::Middleware
|
31
|
+
class UploadStatusCheck < Faraday::Response::Middleware # :nodoc:
|
32
32
|
def on_complete(env)
|
33
33
|
if env[:body]['rsp']['stat'] != 'ok'
|
34
|
-
|
34
|
+
error = env[:body]['rsp']['err']
|
35
|
+
raise Error.new(error['msg'], error['code']),
|
36
|
+
error['msg']
|
35
37
|
end
|
36
38
|
end
|
37
39
|
end
|
data/lib/flickrie/user.rb
CHANGED
@@ -50,11 +50,14 @@ module Flickrie
|
|
50
50
|
@info['ispro'].to_i == 1 if @info['ispro']
|
51
51
|
end
|
52
52
|
|
53
|
+
def [](key)
|
54
|
+
@info[key]
|
55
|
+
end
|
56
|
+
|
53
57
|
def get_info(info = nil)
|
54
58
|
info ||= Flickrie.client.get_user_info(nsid).body['person']
|
55
59
|
@info.update(info)
|
56
60
|
|
57
|
-
# Fixes
|
58
61
|
%w[username realname location description profileurl
|
59
62
|
mobileurl photosurl].each do |attribute|
|
60
63
|
@info[attribute] = @info[attribute]['_content']
|
data/lib/flickrie/version.rb
CHANGED
data/lib/flickrie/video.rb
CHANGED
data/test/error_test.rb
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
class ErrorTest < Test::Unit::TestCase
|
2
|
+
def test_code
|
3
|
+
VCR.use_cassette 'error/code' do
|
4
|
+
begin
|
5
|
+
Flickrie.api_key = nil
|
6
|
+
Flickrie.client.get_licenses
|
7
|
+
rescue Flickrie::Error => error
|
8
|
+
assert_equal 100, error.code
|
9
|
+
end
|
10
|
+
|
11
|
+
begin
|
12
|
+
Flickrie.api_key = nil
|
13
|
+
Flickrie.upload_client.upload \
|
14
|
+
File.expand_path(File.join(File.dirname(__FILE__), 'photo.jpg'))
|
15
|
+
rescue Flickrie::Error => error
|
16
|
+
assert_equal 100, error.code
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
data/test/instance_test.rb
CHANGED
@@ -1,21 +1,20 @@
|
|
1
|
-
require 'test/unit'
|
2
|
-
require 'flickrie'
|
3
|
-
|
4
1
|
class InstanceTest < Test::Unit::TestCase
|
5
|
-
def
|
6
|
-
|
7
|
-
|
2
|
+
def test_calling_api_methods
|
3
|
+
VCR.use_cassette 'instance/calling_api_methods' do
|
4
|
+
Flickrie.access_token = nil
|
5
|
+
Flickrie.access_secret = nil
|
8
6
|
|
9
|
-
|
10
|
-
|
7
|
+
flickr = Flickrie::Instance.new \
|
8
|
+
ENV['FLICKR_ACCESS_TOKEN'], ENV['FLICKR_ACCESS_SECRET']
|
11
9
|
|
12
|
-
|
13
|
-
|
14
|
-
|
10
|
+
photo_id = 6946979188
|
11
|
+
flickr.add_photo_tags(photo_id, "janko")
|
12
|
+
photo = flickr.get_photo_info(photo_id)
|
15
13
|
|
16
|
-
|
17
|
-
|
14
|
+
tag = photo.tags.find { |tag| tag.content == "janko" }
|
15
|
+
assert_not_nil tag
|
18
16
|
|
19
|
-
|
17
|
+
flickr.remove_photo_tag tag.id
|
18
|
+
end
|
20
19
|
end
|
21
20
|
end
|