|
1 #$ neutron_plugin 01 |
|
2 |
|
3 |
|
4 def handler_SG_get(type, source, parameters): |
|
5 groupchat = source[1] |
|
6 iq = xmpp.Iq('get') |
|
7 iq.setQueryNS('http://jabber.org/protocol/stats') |
|
8 if parameters!='': |
|
9 iq.setTo(parameters.strip()) |
|
10 else: |
|
11 iq.setTo(SERVER) |
|
12 parameters=SERVER |
|
13 JCON.SendAndCallForResponse(iq,first_handler,{'parameters':parameters,'type':type,'source':source}) |
|
14 |
|
15 def first_handler(coze,res,parameters,type,source): |
|
16 #print par |
|
17 payload=res.getQueryPayload() |
|
18 if res.getType()=='error': |
|
19 smsg(type,source,'Error '+res.getErrorCode()+ ': '+res.getError()) |
|
20 pass |
|
21 elif res.getType()=='result': |
|
22 iq = xmpp.Iq('get') |
|
23 iq.setQueryNS('http://jabber.org/protocol/stats') |
|
24 iq.setQueryPayload(payload) |
|
25 iq.setTo(parameters.strip()) |
|
26 JCON.SendAndCallForResponse(iq,second_handler,{'parameters':parameters,'type':type,'source':source}) |
|
27 |
|
28 def second_handler(coze,stats,parameters,type,source): |
|
29 pay=stats.getQueryPayload() |
|
30 if stats.getType()=='result': |
|
31 result='Informations about ' + parameters + ':\n' |
|
32 for stat in pay: |
|
33 result=result+stat.getAttrs()['name']+': '+stat.getAttrs()['value'] + ' '+stat.getAttrs()['units'] + '\n' |
|
34 |
|
35 smsg(type,source,result) |
|
36 |
|
37 |
|
38 register_command_handler(handler_SG_get, '!server_stats', 0, 'Returns server statistics according to JEP-0039.', '!server_stats <server>', ['!server_stats njs.netlab.cz']) |
|
39 |