class FlickrVision

Constants

API_URL

Attributes

app_id[R]
user_id[R]

Public Class Methods

new(user_id, app_id) click to toggle source
# File lib/flickr_vision.rb, line 12
def initialize(user_id, app_id)
  @user_id = user_id
  @app_id = app_id
end

Public Instance Methods

get_all_photosets() click to toggle source
# File lib/flickr_vision.rb, line 17
def get_all_photosets()
  uri = URI(API_URL + "method=flickr.photosets.getList" + "&api_key=" + self.app_id + "&user_id=" + self.user_id)

  response = Net::HTTP.start(uri.host, uri.port,:use_ssl => uri.scheme == 'https',:verify_mode => OpenSSL::SSL::VERIFY_NONE) do |https|
    request = Net::HTTP::Get.new uri.request_uri
    https.request(request)
  end
    
  doc = REXML::Document.new(response.body)
  result = Array.new
  doc.elements.each('rsp/photosets/photoset') do |photo_set|
    photoset_id = photo_set.attributes["id"]
    title = photo_set.elements["title"].text
    description = photo_set.elements["description"].text
    result.push(FlickrPhotoset.new(photoset_id, title, description))
  end
  return result
end
get_photo(photo_id) click to toggle source
# File lib/flickr_vision.rb, line 36
def get_photo(photo_id)
  uri = URI(API_URL + "method=flickr.photos.getInfo" + "&api_key=" + self.app_id + "&photo_id=" + photo_id + "&user_id=" + self.user_id)

  response = Net::HTTP.start(uri.host, uri.port,:use_ssl => uri.scheme == 'https',:verify_mode => OpenSSL::SSL::VERIFY_NONE) do |https|
    request = Net::HTTP::Get.new uri.request_uri
    https.request(request)
  end

  flickrPhoto = FlickrPhoto.new      
  doc = REXML::Document.new(response.body)
  doc.elements.each('rsp/photo') do |photo|
    flickrPhoto.id = photo.attributes["id"]
    flickrPhoto.farm_id = photo.attributes["farm"]
    flickrPhoto.server_id = photo.attributes["server"]
    flickrPhoto.secret = photo.attributes["secret"]
    flickrPhoto.title = photo.elements["title"]   
    flickrPhoto.description = photo.elements["description"]
  end
  return flickrPhoto 
end
get_photos(photoset_id, per_page, page) click to toggle source
# File lib/flickr_vision.rb, line 57
def get_photos(photoset_id, per_page, page)
  if per_page == nil
    url = API_URL + "method=flickr.photosets.getPhotos" + "&api_key=" + self.app_id + "&photoset_id=" + photoset_id + "&extras=date_upload"
  else
    url = API_URL + "method=flickr.photosets.getPhotos" + "&api_key=" + self.app_id + "&photoset_id=" + photoset_id + "&extras=date_upload" + "&per_page=" + per_page.to_s + "&page=" + page.to_s
  end

  uri = URI(url)
  response = Net::HTTP.start(uri.host, uri.port,:use_ssl => uri.scheme == 'https',:verify_mode => OpenSSL::SSL::VERIFY_NONE) do |https|
    request = Net::HTTP::Get.new uri.request_uri
    https.request(request)
  end
  
  doc = REXML::Document.new(response.body)
  photos = Array.new    
  doc.elements.each('rsp/photoset/photo') do |photo|
    flickrPhoto = FlickrPhoto.new
    flickrPhoto.id = photo.attributes["id"]
    flickrPhoto.farm_id = photo.attributes["farm"]
    flickrPhoto.server_id = photo.attributes["server"]
    flickrPhoto.secret = photo.attributes["secret"]
    flickrPhoto.title = photo.attributes["title"]
    flickrPhoto.primary = photo.attributes["isprimary"]
    # omschrijving ophalen via andere rest call
    flickrPhoto.description = get_description(flickrPhoto.id)
    photos.push(flickrPhoto)
  end
  
  #photos.keys.sort
  
  return photos
end

Private Instance Methods

get_description(photo_id) click to toggle source
# File lib/flickr_vision.rb, line 91
def get_description(photo_id)
  uri = URI(API_URL + "method=flickr.photos.getInfo" + "&api_key=" + self.app_id + "&photo_id=" + photo_id + "&user_id=" + self.user_id)

  response = Net::HTTP.start(uri.host, uri.port,:use_ssl => uri.scheme == 'https',:verify_mode => OpenSSL::SSL::VERIFY_NONE) do |https|
    request = Net::HTTP::Get.new uri.request_uri
    https.request(request)
  end
    
  doc = REXML::Document.new(response.body)
  result = Array.new
  doc.elements.each('rsp/photo') do |photo|
    return photo.elements["description"].text
  end
  
  return ""
end