Class: FlickrParty
- Inherits:
-
Object
show all
- Includes:
- HTTParty
- Defined in:
- lib/flickr_party.rb,
lib/flickr_party/photo.rb,
lib/flickr_party/parser.rb,
lib/flickr_party/methods.rb
Defined Under Namespace
Classes: FlickrParser, Photo, PhotoURLError, UnknownMethodNameError
Constant Summary
collapse
- ENDPOINT =
'http://api.flickr.com/services/rest/'
- METHODS =
%w(
flickr.activity.userComments
flickr.activity.userPhotos
flickr.auth.checkToken
flickr.auth.getFrob
flickr.auth.getFullToken
flickr.auth.getToken
flickr.auth.oauth.checkToken
flickr.auth.oauth.getAccessToken
flickr.blogs.getList
flickr.blogs.getServices
flickr.blogs.postPhoto
flickr.cameras.getBrandModels
flickr.cameras.getBrands
flickr.collections.getInfo
flickr.collections.getTree
flickr.commons.getInstitutions
flickr.contacts.getList
flickr.contacts.getListRecentlyUploaded
flickr.contacts.getPublicList
flickr.contacts.getTaggingSuggestions
flickr.favorites.add
flickr.favorites.getContext
flickr.favorites.getList
flickr.favorites.getPublicList
flickr.favorites.remove
flickr.galleries.addPhoto
flickr.galleries.create
flickr.galleries.editMeta
flickr.galleries.editPhoto
flickr.galleries.editPhotos
flickr.galleries.getInfo
flickr.galleries.getList
flickr.galleries.getListForPhoto
flickr.galleries.getPhotos
flickr.groups.browse
flickr.groups.getInfo
flickr.groups.join
flickr.groups.joinRequest
flickr.groups.leave
flickr.groups.search
flickr.groups.discuss.replies.add
flickr.groups.discuss.replies.delete
flickr.groups.discuss.replies.edit
flickr.groups.discuss.replies.getInfo
flickr.groups.discuss.replies.getList
flickr.groups.discuss.topics.add
flickr.groups.discuss.topics.getInfo
flickr.groups.discuss.topics.getList
flickr.groups.members.getList
flickr.groups.pools.add
flickr.groups.pools.getContext
flickr.groups.pools.getGroups
flickr.groups.pools.getPhotos
flickr.groups.pools.remove
flickr.interestingness.getList
flickr.machinetags.getNamespaces
flickr.machinetags.getPairs
flickr.machinetags.getPredicates
flickr.machinetags.getRecentValues
flickr.machinetags.getValues
flickr.panda.getList
flickr.panda.getPhotos
flickr.people.findByEmail
flickr.people.findByUsername
flickr.people.getGroups
flickr.people.getInfo
flickr.people.getLimits
flickr.people.getPhotos
flickr.people.getPhotosOf
flickr.people.getPublicGroups
flickr.people.getPublicPhotos
flickr.people.getUploadStatus
flickr.photos.addTags
flickr.photos.delete
flickr.photos.getAllContexts
flickr.photos.getContactsPhotos
flickr.photos.getContactsPublicPhotos
flickr.photos.getContext
flickr.photos.getCounts
flickr.photos.getExif
flickr.photos.getFavorites
flickr.photos.getInfo
flickr.photos.getNotInSet
flickr.photos.getPerms
flickr.photos.getRecent
flickr.photos.getSizes
flickr.photos.getUntagged
flickr.photos.getWithGeoData
flickr.photos.getWithoutGeoData
flickr.photos.recentlyUpdated
flickr.photos.removeTag
flickr.photos.search
flickr.photos.setContentType
flickr.photos.setDates
flickr.photos.setMeta
flickr.photos.setPerms
flickr.photos.setSafetyLevel
flickr.photos.setTags
flickr.photos.comments.addComment
flickr.photos.comments.deleteComment
flickr.photos.comments.editComment
flickr.photos.comments.getList
flickr.photos.comments.getRecentForContacts
flickr.photos.geo.batchCorrectLocation
flickr.photos.geo.correctLocation
flickr.photos.geo.getLocation
flickr.photos.geo.getPerms
flickr.photos.geo.photosForLocation
flickr.photos.geo.removeLocation
flickr.photos.geo.setContext
flickr.photos.geo.setLocation
flickr.photos.geo.setPerms
flickr.photos.licenses.getInfo
flickr.photos.licenses.setLicense
flickr.photos.notes.add
flickr.photos.notes.delete
flickr.photos.notes.edit
flickr.photos.people.add
flickr.photos.people.delete
flickr.photos.people.deleteCoords
flickr.photos.people.editCoords
flickr.photos.people.getList
flickr.photos.suggestions.approveSuggestion
flickr.photos.suggestions.getList
flickr.photos.suggestions.rejectSuggestion
flickr.photos.suggestions.removeSuggestion
flickr.photos.suggestions.suggestLocation
flickr.photos.transform.rotate
flickr.photos.upload.checkTickets
flickr.photosets.addPhoto
flickr.photosets.create
flickr.photosets.delete
flickr.photosets.editMeta
flickr.photosets.editPhotos
flickr.photosets.getContext
flickr.photosets.getInfo
flickr.photosets.getList
flickr.photosets.getPhotos
flickr.photosets.orderSets
flickr.photosets.removePhoto
flickr.photosets.removePhotos
flickr.photosets.reorderPhotos
flickr.photosets.setPrimaryPhoto
flickr.photosets.comments.addComment
flickr.photosets.comments.deleteComment
flickr.photosets.comments.editComment
flickr.photosets.comments.getList
flickr.places.find
flickr.places.findByLatLon
flickr.places.getChildrenWithPhotosPublic
flickr.places.getInfo
flickr.places.getInfoByUrl
flickr.places.getPlaceTypes
flickr.places.getShapeHistory
flickr.places.getTopPlacesList
flickr.places.placesForBoundingBox
flickr.places.placesForContacts
flickr.places.placesForTags
flickr.places.placesForUser
flickr.places.resolvePlaceId
flickr.places.resolvePlaceURL
flickr.places.tagsForPlace
flickr.prefs.getContentType
flickr.prefs.getGeoPerms
flickr.prefs.getHidden
flickr.prefs.getPrivacy
flickr.prefs.getSafetyLevel
flickr.push.getSubscriptions
flickr.push.getTopics
flickr.push.subscribe
flickr.push.unsubscribe
flickr.reflection.getMethodInfo
flickr.reflection.getMethods
flickr.stats.getCollectionDomains
flickr.stats.getCollectionReferrers
flickr.stats.getCollectionStats
flickr.stats.getCSVFiles
flickr.stats.getPhotoDomains
flickr.stats.getPhotoReferrers
flickr.stats.getPhotosetDomains
flickr.stats.getPhotosetReferrers
flickr.stats.getPhotosetStats
flickr.stats.getPhotoStats
flickr.stats.getPhotostreamDomains
flickr.stats.getPhotostreamReferrers
flickr.stats.getPhotostreamStats
flickr.stats.getPopularPhotos
flickr.stats.getTotalViews
flickr.tags.getClusterPhotos
flickr.tags.getClusters
flickr.tags.getHotList
flickr.tags.getListPhoto
flickr.tags.getListUser
flickr.tags.getListUserPopular
flickr.tags.getListUserRaw
flickr.tags.getMostFrequentlyUsed
flickr.tags.getRelated
flickr.test.echo
flickr.test.login
flickr.test.null
flickr.urls.getGroup
flickr.urls.getUserPhotos
flickr.urls.getUserProfile
flickr.urls.lookupGallery
flickr.urls.lookupGroup
flickr.urls.lookupUser
)
Instance Attribute Summary collapse
Instance Method Summary
collapse
Constructor Details
#initialize(api_key, secret, method = nil, token = nil) ⇒ FlickrParty
Returns a new instance of FlickrParty.
22
23
24
25
26
27
|
# File 'lib/flickr_party.rb', line 22
def initialize(api_key, secret, method=nil, token=nil)
@api_key = api_key
@secret = secret
@method = method
@token = token
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method_part, args = {}, test = nil) ⇒ Object
29
30
31
32
33
34
35
36
37
38
|
# File 'lib/flickr_party.rb', line 29
def method_missing(method_part, args={}, test=nil)
full_method_name = concat_method(method_part)
if is_full_method?(full_method_name)
args = merge_args(args, full_method_name)
post(args)
else
self.class.new(@api_key, @secret, full_method_name, @token)
end
end
|
Instance Attribute Details
#token ⇒ Object
Returns the value of attribute token.
20
21
22
|
# File 'lib/flickr_party.rb', line 20
def token
@token
end
|
Instance Method Details
#auth_url(perms = 'read', extra = nil) ⇒ Object
40
41
42
43
44
|
# File 'lib/flickr_party.rb', line 40
def auth_url(perms='read', = nil)
@frob = self.flickr.auth.getFrob['frob']
sig = Digest::MD5.hexdigest("#{@secret}api_key#{@api_key}extra#{}frob#{@frob}perms#{perms}")
"http://flickr.com/services/auth/?api_key=#{@api_key}&perms=#{perms}&frob=#{@frob}&api_sig=#{sig}&extra=#{}"
end
|
#complete_auth(frob = 'put_your_frob_here') ⇒ Object
46
47
48
49
50
|
# File 'lib/flickr_party.rb', line 46
def complete_auth(frob='put_your_frob_here')
@frob ||= frob
@auth = self.flickr.auth.getToken('frob' => @frob)['auth']
@token = @auth['token']
end
|
#concat_method(method_part) ⇒ Object
11
12
13
|
# File 'lib/flickr_party/methods.rb', line 11
def concat_method(method_part)
[@method, method_part].compact.join('.')
end
|
#is_full_method?(method_name) ⇒ Boolean
3
4
5
6
7
8
9
|
# File 'lib/flickr_party/methods.rb', line 3
def is_full_method?(method_name)
if method_name.count('.') > 5
raise UnknownMethodNameError.new
else
METHODS.include? method_name
end
end
|