#!/usr/bin/env ruby

#######################
# WARNING
# Running this code sample will cost you Browshot credits
#######################

require 'browshot'

browshot = Browshot.new('my_api_key')

data = browshot.simple({ 'url' => 'http://mobilito.net/', 'instance_id' => 12 }) # default cache, free screenshot
# code above is blocking, it will return when the screenshot finished or failed

if (data[:code].to_i == 200)
	File.open("screenshot.png", 'w') {|f| f.write(data[:png]) }

	puts "Screenshot saved to screenshot.png\n"
else
	puts "Screenshot failed!\n"
	# the reason for the error is sent as part of the HTTP response in the X-Error header but it is not exposed by this library
end

# quicker way to save a screenshot
info = browshot.simple_file('mobilito.png', { 'url' => 'http://mobilito.net/', 'cache' => 0, 'instance_id' => 65, 'screen_width' => 1280, 'screen_height' => 1024 }) # no cache, premium browser

if (info[:file] != "")
  print "Screenshot saved to #{info[:file]}\n"
else
  print "The screenshot failed\n"
end

# use the default cache. The previous screenshto will be returned (same parameters) except if the previous failed
info = browshot.simple_file('mobilito-2.png', { 'url' => 'http://mobilito.net/', 'instance_id' => 65, 'instance_id' => 65, 'screen_width' => 1280, 'screen_height' => 1024, 'width' => 200 }) # thumbnail
if (info[:file] != "")
  puts "Screenshot saved to #{info[:file]}\n"
else
  puts "The screenshot failed\n"
end

# host a screenshot on S3
info = browshot.simple_file('mobilito-3.png',  
{
	'url' => 'http://mobilito.net/',
	'instance_id' => 65, 
	'screen_width' => 1280,
	'screen_height' => 1024,
	'hosting' => 's3',
	'hosting_bucket' => 'my_bucket',
	'hosting_file' => 'mobilito.png',
	'hosting_width' => 200 # thumbnail
})
