Apply v3.3 changes on various modules

This commit is contained in:
Némunaire 2012-11-04 04:39:54 +01:00
commit d58afa9419
5 changed files with 94 additions and 93 deletions

View file

@ -7,11 +7,11 @@ from xml.dom.minidom import parseString
from event import ModuleEvent
from xmlparser.node import ModuleState
nemubotversion = 3.2
nemubotversion = 3.3
def load(context):
global DATAS
DATAS.setIndex("name", "station")
global DATAS
DATAS.setIndex("name", "station")
# evt = ModuleEvent(station_available, "42706",
# (lambda a, b: a != b), None, 60,
@ -19,45 +19,45 @@ def load(context):
# context.add_event(evt)
def help_tiny ():
"""Line inserted in the response to the command !help"""
return "Gets information about velib stations"
"""Line inserted in the response to the command !help"""
return "Gets information about velib stations"
def help_full ():
return "!velib /number/ ...: gives available bikes and slots at the station /number/."
return "!velib /number/ ...: gives available bikes and slots at the station /number/."
def getPage (s, p):
conn = http.client.HTTPConnection(s, timeout=10)
try:
conn.request("GET", p)
except socket.gaierror:
print ("[%s] impossible de récupérer la page %s."%(s, p))
return None
conn = http.client.HTTPConnection(s, timeout=10)
try:
conn.request("GET", p)
except socket.gaierror:
print ("[%s] impossible de récupérer la page %s."%(s, p))
return None
res = conn.getresponse()
data = res.read()
res = conn.getresponse()
data = res.read()
conn.close()
return (res.status, data)
conn.close()
return (res.status, data)
def station_status(station):
"""Gets available and free status of a given station"""
(st, page) = getPage(CONF.getNode("server")["ip"], CONF.getNode("server")["url"] + station)
if st == http.client.OK:
response = parseString(page)
available = response.documentElement.getElementsByTagName("available")
if len(available) > 0:
available = int(available[0].childNodes[0].nodeValue)
"""Gets available and free status of a given station"""
(st, page) = getPage(CONF.getNode("server")["ip"], CONF.getNode("server")["url"] + station)
if st == http.client.OK:
response = parseString(page)
available = response.documentElement.getElementsByTagName("available")
if len(available) > 0:
available = int(available[0].childNodes[0].nodeValue)
else:
available = 0
free = response.documentElement.getElementsByTagName("free")
if len(free) > 0:
free = int(free[0].childNodes[0].nodeValue)
else:
free = 0
return (available, free)
else:
available = 0
free = response.documentElement.getElementsByTagName("free")
if len(free) > 0:
free = int(free[0].childNodes[0].nodeValue)
else:
free = 0
return (available, free)
else:
return (None, None)
return (None, None)
def station_available(station):
"""Gets available velib at a given velib station"""
@ -86,12 +86,12 @@ def print_station_status(msg, station):
def ask_stations(msg):
"""Hook entry from !velib"""
global DATAS
if len(msg.cmd) > 5:
if len(msg.cmds) > 5:
return Response(msg.sender,
"Demande-moi moins de stations à la fois.",
msg.channel, nick=msg.nick)
elif len(msg.cmd) > 1:
for station in msg.cmd[1:]:
elif len(msg.cmds) > 1:
for station in msg.cmds[1:]:
if re.match("^[0-9]{4,5}$", station):
return print_station_status(msg, station)
elif station in DATAS.index: