class Purdie::Services::Flickr
Attributes
size[RW]
Public Class Methods
matcher()
click to toggle source
# File lib/purdie/services/flickr.rb, line 103 def self.matcher 'flickr.com' end
resolve(url)
click to toggle source
# File lib/purdie/services/flickr.rb, line 93 def self.resolve url return [url] unless url =~ /\/sets\// flickr.photosets.getPhotos(photoset_id: Purdie.get_id(url))['photo']. map { |member| member['id'] }. map { |id| flickr.photos.getInfo photo_id: id }. map { |picture| picture['urls'][0]['_content'] } end
url_for_size(size = nil)
click to toggle source
# File lib/purdie/services/flickr.rb, line 66 def self.url_for_size size = nil size = 500 unless size case when size <= 75 return :url_s when size <= 100 return :url_t when size <= 150 return :url_q when size <= 240 return :url_m when size <= 320 return :url_n when size <= 500 return :url when size <= 640 return :url_z when size <= 800 return :url_c when size <= 1024 return :url_b else return :url_o end end
Public Instance Methods
configure()
click to toggle source
Calls superclass method
Purdie::Service#configure
# File lib/purdie/services/flickr.rb, line 13 def configure @size = 240 # pixels super end
distill(url)
click to toggle source
# File lib/purdie/services/flickr.rb, line 32 def distill url photo = get url results = {} results['title'] = photo['title'] results['title'] = @config['default_title'] if photo['title'] == '' results['date'] = photo['dates']['taken'].split(' ')[0] results['photo_page'] = url results['photo_url'] = FlickRaw.send(Flickr.url_for_size(@size), photo) license = licenses.select {|l| l['id'] == photo['license']}[0] results['license'] = license['name'].split(' License')[0] results['license_url'] = license['url'] # WTF? # results.attach_license self, photo['license'] begin snapper = photo['tags'].select { |t| t['raw'] =~ /photographer/ }[0] results['photographer'] = snapper['raw'].split(':')[1] rescue NoMethodError if @config['photographer_lookups'] results['photographer'] = @config['photographer_lookups'][photo['owner']['username']] else results['photographer'] = photo['owner']['username'] end unless results['photographer'] results['photographer'] = photo['owner']['username'] end end results end
get(url)
click to toggle source
# File lib/purdie/services/flickr.rb, line 22 def get url begin flickr.photos.getInfo photo_id: Purdie.get_id(url) rescue FlickRaw::FlickrAppNotConfigured => fanc raise Purdie::CredentialsException.new self, 'missing' if fanc.message == 'No API key or secret defined!' rescue FlickRaw::FailedResponse => fr raise Purdie::CredentialsException.new self, 'duff' if fr.message == "'flickr.photos.getInfo' - Invalid API Key (Key has invalid format)" end end
licenses()
click to toggle source
# File lib/purdie/services/flickr.rb, line 18 def licenses @licenses ||= flickr.photos.licenses.getInfo end