# -*- coding: utf-8 -*-
#######################
# WARNING
# Running this code sample will cost you Browshot credits
#######################

from browshot import BrowshotClient

browshot = BrowshotClient('my_api_key')

data = browshot.simple('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'] == "200": # success
  image = open("screenshot.png", mode='wb')
  image.write(data['png'])
  image.close()
  
  print "Screenshot saved to screenshot.png\n"
else:
  print "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


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

if info['file'] != "":
  print "Screenshot saved to %s\n" % info['file'];
else:
  print "The screenshot failed\n"


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

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