2

Trying to fetch :all (first :item) from the CRML Media Resource. Using Estately RETS repo. Here is my ruby example file:

require 'rets'

client = Rets::Client.new({
  login_url: 'url',
  username: 'user',
  password: 'password',
  version: 'RETS/1.7.2' 
})

begin
    client.login
rescue => e
    puts 'Error: ' + e.message
    exit!
end

puts 'We connected! Lets get all the photos for a property...'


photos = client.find (:first), {
  search_type: 'Media',
  class: 'Media',
  query: '(MediaModificationTimestamp=2017-04-15+),(MediaType=Image)'
}


photo = open(photo = photos['MediaURL'])
require 'base64'
image = Base64.encode64(photo.read)


File.open('property-1.gif', 'wb') do|f|
  f.write(Base64.decode64(image))
end

puts photos.length.to_s + ' photos saved.'
client.logout

but I'm only getting one image instead of the 26 expected. Not sure also if this will be the best method of retrieving all of the images for all of the listings, after I get the first one working. Here is more information regarding this issue https://github.com/estately/rets/issues/210

Gil Perez
  • 853
  • 10
  • 13

2 Answers2

1
require 'rets'

client = Rets::Client.new({
  login_url: 'url',
  username: 'username',
  password: 'password',
  version: 'RETS/1.7.2' 
})

begin
    client.login
rescue => e
    puts 'Error: ' + e.message
    exit!
end

puts 'We connected! Lets get all the photos for a property...'


photos = client.find (:all), {
  search_type: 'Media',
  class: 'Media',
  query: '(ResourceRecordKeyNumeric=117562969),(MediaType=Image)'
}

photos.each_with_index do |data, index|
  photo = open(photo = data['MediaURL'])
  puts data['MediaURL']
  require 'base64'
  image = Base64.encode64(photo.read)
  File.open("property-#{index.to_s}.jpg", 'wb') do |f|
    f.write(Base64.decode64(image))
  end
end


puts photos.length.to_s + ' photos saved.'
client.logout
Gil Perez
  • 853
  • 10
  • 13
0

You can try giving listing IDs comma separated to get all images of multiple listings at a time, in your query part.

photos = client.find (:all), {
search_type: 'Media',
  class: 'Media',
  query: '(ResourceRecordKeyNumeric=117562969,117562970,117562971),(MediaType=Image)'
}
V-T
  • 756
  • 2
  • 9
  • 22