Class: Flickr::User
- Inherits:
-
Object
- Object
- Flickr::User
- Defined in:
- lib/flickr.rb
Overview
Todo: logged_in? if logged in: flickr.blogs.getList flickr.favorites.add flickr.favorites.remove flickr.groups.browse flickr.photos.getCounts flickr.photos.getNotInSet flickr.photos.getUntagged flickr.photosets.create flickr.photosets.orderSets flickr.test.login uploading
Instance Attribute Summary collapse
-
#client ⇒ Object
readonly
Returns the value of attribute client.
-
#count ⇒ Object
readonly
Returns the value of attribute count.
-
#firstdate ⇒ Object
readonly
Returns the value of attribute firstdate.
-
#firstdatetaken ⇒ Object
readonly
Returns the value of attribute firstdatetaken.
-
#id ⇒ Object
readonly
Returns the value of attribute id.
-
#location ⇒ Object
readonly
Returns the value of attribute location.
-
#name ⇒ Object
readonly
Returns the value of attribute name.
-
#photos_url ⇒ Object
readonly
Builds url for user’s photos page as per www.flickr.com/services/api/misc.urls.html.
-
#url ⇒ Object
readonly
Builds url for user’s profile page as per www.flickr.com/services/api/misc.urls.html.
Instance Method Summary collapse
-
#contacts ⇒ Object
Implements flickr.contacts.getPublicList and flickr.contacts.getList.
-
#contactsPhotos ⇒ Object
Implements flickr.photos.getContactsPublicPhotos and flickr.photos.getContactsPhotos.
-
#favorites ⇒ Object
Implements flickr.favorites.getPublicList.
-
#groups ⇒ Object
Implements flickr.people.getPublicGroups.
-
#initialize(id_or_params_hash = nil, username = nil, email = nil, password = nil, api_key = nil) ⇒ User
constructor
A Flickr::User can be instantiated in two ways.
-
#photos(options = {}) ⇒ Object
Implements flickr.people.getPublicPhotos.
-
#photosets ⇒ Object
Implements flickr.photosets.getList.
-
#popular_tags(count = 10) ⇒ Object
Implements flickr.tags.getListUserPopular.
- #pretty_url ⇒ Object
-
#tag(tag) ⇒ Object
Gets photos with a given tag.
-
#tags ⇒ Object
Implements flickr.tags.getListUser.
- #to_s ⇒ Object
- #username ⇒ Object
Constructor Details
#initialize(id_or_params_hash = nil, username = nil, email = nil, password = nil, api_key = nil) ⇒ User
A Flickr::User can be instantiated in two ways. The old (deprecated) method is with an ordered series of values. The new method is with a params Hash, which is easier when a variable number of params are supplied, which is the case here, and also avoids having to constantly supply nil values for the email and password, which are now irrelevant as authentication is no longer done this way. An associated flickr client will also be generated if an api key is passed among the arguments or in the params hash. Alternatively, and most likely, an existing client object may be passed in the params hash (e.g. ‘client’ => some_existing_flickr_client_object), and this is what happends when users are initlialized as the result of a method called on the flickr client (e.g. flickr.users)
290 291 292 293 294 295 296 297 298 299 300 301 302 |
# File 'lib/flickr.rb', line 290 def initialize(id_or_params_hash=nil, username=nil, email=nil, password=nil, api_key=nil) if id_or_params_hash.is_a?(Hash) id_or_params_hash.each { |k,v| self.instance_variable_set("@#{k}", v) } # convert extra_params into instance variables else @id = id_or_params_hash @username = username @email = email @password = password @api_key = api_key end @client ||= Flickr.new('api_key' => @api_key, 'shared_secret' => @shared_secret, 'auth_token' => @auth_token) if @api_key @client.login(@email, @password) if @email and @password # this is now irrelevant as Flickr API no longer supports authentication this way end |
Instance Attribute Details
#client ⇒ Object (readonly)
Returns the value of attribute client.
276 277 278 |
# File 'lib/flickr.rb', line 276 def client @client end |
#count ⇒ Object (readonly)
Returns the value of attribute count.
276 277 278 |
# File 'lib/flickr.rb', line 276 def count @count end |
#firstdate ⇒ Object (readonly)
Returns the value of attribute firstdate.
276 277 278 |
# File 'lib/flickr.rb', line 276 def firstdate @firstdate end |
#firstdatetaken ⇒ Object (readonly)
Returns the value of attribute firstdatetaken.
276 277 278 |
# File 'lib/flickr.rb', line 276 def firstdatetaken @firstdatetaken end |
#id ⇒ Object (readonly)
Returns the value of attribute id.
276 277 278 |
# File 'lib/flickr.rb', line 276 def id @id end |
#location ⇒ Object (readonly)
Returns the value of attribute location.
276 277 278 |
# File 'lib/flickr.rb', line 276 def location @location end |
#name ⇒ Object (readonly)
Returns the value of attribute name.
276 277 278 |
# File 'lib/flickr.rb', line 276 def name @name end |
#photos_url ⇒ Object (readonly)
Builds url for user’s photos page as per www.flickr.com/services/api/misc.urls.html
325 326 327 |
# File 'lib/flickr.rb', line 325 def photos_url @photos_url end |
#url ⇒ Object (readonly)
Builds url for user’s profile page as per www.flickr.com/services/api/misc.urls.html
331 332 333 |
# File 'lib/flickr.rb', line 331 def url @url end |
Instance Method Details
#contacts ⇒ Object
Implements flickr.contacts.getPublicList and flickr.contacts.getList
363 364 365 366 |
# File 'lib/flickr.rb', line 363 def contacts @client.contacts_getPublicList('user_id'=>@id)['contacts']['contact'].collect { |contact| User.new(contact['nsid'], contact['username'], nil, nil, @api_key) } #or end |
#contactsPhotos ⇒ Object
Implements flickr.photos.getContactsPublicPhotos and flickr.photos.getContactsPhotos
389 390 391 |
# File 'lib/flickr.rb', line 389 def contactsPhotos @client.photos_request('photos.getContactsPublicPhotos', 'user_id' => @id) end |
#favorites ⇒ Object
Implements flickr.favorites.getPublicList
369 370 371 |
# File 'lib/flickr.rb', line 369 def favorites @client.photos_request('favorites.getPublicList', 'user_id' => @id) end |
#groups ⇒ Object
Implements flickr.people.getPublicGroups
340 341 342 343 344 345 346 347 |
# File 'lib/flickr.rb', line 340 def groups collection = @client.people_getPublicGroups('user_id'=>@id)['groups']['group'] collection = [collection] if collection.is_a? Hash collection.collect { |group| Group.new( "id" => group['nsid'], "name" => group['name'], "eighteenplus" => group['eighteenplus'], "client" => @client) } end |
#photos(options = {}) ⇒ Object
Implements flickr.people.getPublicPhotos. Options hash allows you to add extra restrictions as per flickr.people.getPublicPhotos docs, e.g. user.photos(‘per_page’ => ‘25’, ‘extras’ => ‘date_taken’)
352 353 354 355 |
# File 'lib/flickr.rb', line 352 def photos(={}) @client.photos_request('people.getPublicPhotos', {'user_id' => @id}.merge()) # what about non-public photos? end |
#photosets ⇒ Object
Implements flickr.photosets.getList
374 375 376 |
# File 'lib/flickr.rb', line 374 def photosets @client.photosets_getList('user_id'=>@id)['photosets']['photoset'].collect { |photoset| Photoset.new(photoset['id'], @api_key) } end |
#popular_tags(count = 10) ⇒ Object
Implements flickr.tags.getListUserPopular
384 385 386 |
# File 'lib/flickr.rb', line 384 def (count = 10) @client.('user_id'=>@id, 'count'=> count)['who']['tags']['tag'].each { |tag_score| tag_score["tag"] = tag_score.delete("content") } end |
#pretty_url ⇒ Object
335 336 337 |
# File 'lib/flickr.rb', line 335 def pretty_url @pretty_url ||= @client.urls_getUserProfile('user_id'=>@id)['user']['url'] end |
#tag(tag) ⇒ Object
Gets photos with a given tag
358 359 360 |
# File 'lib/flickr.rb', line 358 def tag(tag) @client.photos('user_id'=>@id, 'tags'=>tag) end |
#tags ⇒ Object
Implements flickr.tags.getListUser
379 380 381 |
# File 'lib/flickr.rb', line 379 def @client.('user_id'=>@id)['who']['tags']['tag'].collect { |tag| tag } end |
#to_s ⇒ Object
393 394 395 |
# File 'lib/flickr.rb', line 393 def to_s @name end |
#username ⇒ Object
304 305 306 |
# File 'lib/flickr.rb', line 304 def username @username.nil? ? getInfo.username : @username end |