flickrie 0.5.2 → 0.6.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/.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
|