# -*- coding: utf-8 -*-
__module_name__ = "aom_fiole"
__module_version__ = "0.1b"
__module_description__ = "Gestion de la fiole d'Age of Magic."
__module_author__ = "Doki <tenkaistar@gmail.com>"
__module_url__ = "http://www.dokislogeek.net"


import xchat,urllib,urllib2,re,string

########## Configuration #########
aom_login = 'Votre_Pseudo_AOM'

########## Fin de la configuration #########


time_out = 300000
user_agent =  'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)'
rfr = 'http://www.ageofmagic.net/index.php'
headers =  { 'User-Agent'  : user_agent, 'Referer' : rfr  }
data = None
alert = 0


def get_vial_state(aom_nick):
	the_url =  'http://www.ageofmagic.net/index.php?p=fiche&pseudo='+aom_nick
	req = urllib2.Request(the_url, data, headers)
	handle = urllib2.urlopen(req)
	the_page = handle.read()
	p = re.compile('<div align=\"center\">[0-9]+\&nbsp\;\/\&nbsp\;50<\/div>')
        m = p.search(the_page)
        if m:      	
		result = m.group()
		result = result.split('>',1)
		result = result[1].split('&',1)	
		return result[0]
	else:
		return 'ERROR'

def show_vial_state(word, word_eol, userdata):
	state = get_vial_state(word[1])
	if state !=  'ERROR':
		message = word[1]+" a "+state+" gouttes dans sa fiole."
		if state == '50':
			message = message+" La fiole est pleine."
		else:
			needed = str(50 - int(state))
			message = message+" Il faut encore "+needed+" gouttes pour remplir la fiole."
		xchat.command('SAY '+message)
	else:
		xchat.prnt('Une erreur est survenue, veuillez vérifier que le pseudo à vérifier existe.')

def auto_vial_check(arg):
	global alert
	state = get_vial_state(aom_login)
	if state !=  'ERROR':
		if state == '50':
			if alert == 0:
				xchat.command('notice '+xchat.get_info('nick')+' LA FIOLE EST PLEINE, IL FAUT LA VIDER!')
				alert = 1
									
		else:
			alert = 0			
	else:
		xchat.prnt('Une erreur est survenue, veuillez vérifier que le pseudo à vérifier existe.')
	return 1
		
xchat.hook_command("vialstate", show_vial_state, help="/vialstate <nick> Retourne l'état de la fiole d'un pseudo donné")
xchat.hook_timer(time_out, auto_vial_check)
