-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtransantiago.py
66 lines (45 loc) · 2.29 KB
/
transantiago.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# -*- coding: utf-8 -*-
import time, urllib, urllib2, json
url = 'http://www.transantiago.cl/predictor/prediccion?'
urlLocation = 'http://www.transantiago.cl/restservice/rest/getpuntoparada?'
def getParada(bot, cid, parada):
req = urllib2.Request(url + 'codsimt='+str(parada))
response = urllib2.urlopen(req)
if response.code == 200:
data = json.loads(response.read())
response.close()
text = ''
if data[u'respuestaParadero'] == 'Paradero invalido.':
text = "Paradero invalido."
else:
for item in data['servicios']['item']:
text = text + item['servicio']+ "\n"
if item['respuestaServicio'] == u'Fuera de horario de operacion para este paradero':
text = text + "Fuera de horario \n"
else:
if item['respuestaServicio'] == u'No hay buses que se dirijan al paradero.':
text = text + 'No hay buses \n'
else:
text = text + item['horaprediccionbus1']+" "+ item['distanciabus1']+" m \n"
if item['codigorespuesta'] == '00':
text = text + item['horaprediccionbus2']+" "+ item['distanciabus2']+" m \n"
print text
bot.send_message(cid, text)
elif response.code == 500:
bot.send_message(cid, 'Tenemos dificultades técnicas... un gatito moridó los cables del servidor')
def getLocationParada(bot, cid, lat, lon):
print urlLocation+'lat='+str(lat)+'&lon='+str(lon)+'&bip=0'
req = urllib2.Request(urlLocation+'lat='+str(lat)+'&lon='+str(lon)+'&bip=0')
response = urllib2.urlopen(req)
if response.code == 200:
for item in json.loads(response.read()):
if item[u'distancia'] < 0.3:
print (item[u'name']).encode('utf-8')
bot.send_message(cid, "Parada "+str(item[u'cod'])+" "+(item[u'name']).encode('utf-8'))
bot.send_location(cid, item[u'pos'][0], item[u'pos'][1])
else:
print "La parada "+ str(item[u'cod']) +" está muy lejos"
bot.send_message(cid, 'Estas son todas las paradas')
response.close()
if response.code == 500:
bot.send_message(cid, 'Se cayó el... oh! una ʕ•́ᴥ•̀ʔっ ')