#! /usr/bin/env python # -*- encoding: iso-8859-15 -*- # Génération d'un fichier XML indiquant le status des bornes import sys import os import time, urllib2 import xml.dom.minidom def execute(macro, text): f=macro.formatter # ouverture du fichier d'info et parsage try: #os.putenv("http_proxy", "http://proxy.crans.org:3128") status=xml.dom.minidom.parseString(urllib2.urlopen("https://wifi.crans.org/status.xml").read()) except: return f.text(u"Impossible d'accéder aux informations des bornes") # On récupère l'ensemble des bornes bornes = status.childNodes[0] code = f.text(u"Mise à jour le "+bornes.getAttribute("date")) code += f.linebreak(0) code += f.table(1) code += f.table_row(1) for nom_col in [u"nom",u"hotspot",u"up",u"description",u"clients",u"mac wifi",u"canal",u"uptime",u"x",u"y"]: code += f.table_cell(1) code += f.strong(1) code += f.text(nom_col) code += f.strong(0) code += f.table_cell(0) code += f.table_row(0) for b in bornes.childNodes: code += f.table_row(1) code += f.table_cell(1) code += f.text(b.getAttribute(u"nom")) code += f.table_cell(0) dico={u"hotspot" : {u"1" : u"+" , u"0" : u""}, u"up" : {u"1" : u"" , u"0": u"!"}} for nom_attribut in [u"hotspot",u"up"]: code += f.table_cell(1) code += f.text(dico[nom_attribut][b.getAttribute(nom_attribut)]) code += f.table_cell(0) for tag in [u'description', u"clients",u"mac",u"canal",u"uptime"]: code += f.table_cell(1) if (b.getElementsByTagName(tag)!=[]): code += f.text(b.getElementsByTagName(tag)[0].firstChild.data) else: code += f.text(u"") code += f.table_cell(0) if (b.getElementsByTagName(u"position")!=[]): for nom_attribut in [u'x',u'y']: code += f.table_cell(1) code += f.text(b.getElementsByTagName(u"position")[0].getAttribute(nom_attribut)) code += f.table_cell(0) else: code += f.table_cell(1) code += f.text(u"") code += f.table_cell(0) code += f.table_cell(1) code += f.text(u"") code += f.table_cell(0) code += f.table_row(0) code += f.table(0) return code