plugins/disabled/sg_plugin.py
author Mikael Berthe <mikael@lilotux.net>
Tue, 01 May 2007 12:26:35 +0200
changeset 0 93b25987d3e5
permissions -rw-r--r--
Initial Mercurial repository Imported from Neutron' svn, with a few changes

#$ neutron_plugin 01


def handler_SG_get(type, source, parameters):
		groupchat = source[1]
		iq = xmpp.Iq('get')
		iq.setQueryNS('http://jabber.org/protocol/stats')
		if parameters!='':
			iq.setTo(parameters.strip())
		else:
			iq.setTo(SERVER)
			parameters=SERVER
		JCON.SendAndCallForResponse(iq,first_handler,{'parameters':parameters,'type':type,'source':source})

def first_handler(coze,res,parameters,type,source):
	#print par
	payload=res.getQueryPayload()
	if res.getType()=='error':
		smsg(type,source,'Error '+res.getErrorCode()+ ': '+res.getError())
		pass
	elif res.getType()=='result':
		iq = xmpp.Iq('get')
		iq.setQueryNS('http://jabber.org/protocol/stats')
		iq.setQueryPayload(payload)
		iq.setTo(parameters.strip())
		JCON.SendAndCallForResponse(iq,second_handler,{'parameters':parameters,'type':type,'source':source})

def second_handler(coze,stats,parameters,type,source):
	pay=stats.getQueryPayload()
	if stats.getType()=='result':
		result='Informations about ' + parameters + ':\n'
		for stat in pay:
			result=result+stat.getAttrs()['name']+': '+stat.getAttrs()['value'] + ' '+stat.getAttrs()['units'] + '\n'
			
		smsg(type,source,result)


register_command_handler(handler_SG_get, '!server_stats', 0, 'Returns server statistics according to JEP-0039.', '!server_stats <server>', ['!server_stats njs.netlab.cz'])