ProviderBase = require './ProviderBase'
request = require 'request'
torify = require 'torify'
cheerio = require 'cheerio'
async = require 'async'

class IGN extends ProviderBase
	constructor: (@data) ->

	ratings: (args, callback) ->
		jar = require('request').jar()
		async.waterfall [
			($next) =>
				torify
					url: 'http://www.ign.com/ajax/search/results'
					jar: jar
					no_cache: true
					qs:
						q: @data.title.replace(/\s/ig, '+')
						page: '0'
						count: '1'
						filter: 'game'
					headers:
						'X-Requested-With': 'XMLHttpRequest'
						'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.114 Safari/537.36'
						Referer: 'http://www.ign.com'
					method: 'GET'
				,$next
			,(res, body, $next) ->
				add = {
					ratings: []
				}
				if body 
					$ = cheerio.load(body)

					add['ratings'].push
						source: 'IGN'
						score: parseFloat($('.review-score').text().trim()) * 10

				$next null, add
		], callback



module.exports = IGN