-
Notifications
You must be signed in to change notification settings - Fork 3
/
application.py
30 lines (26 loc) · 996 Bytes
/
application.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
from flask import Flask
from flask import render_template
from xml.etree import ElementTree
from xml.sax import saxutils
import requests
import requests_cache
requests_cache.install_cache('mta_cache', expire_after=120)
data_url = "http://web.mta.info/status/serviceStatus.txt"
application = Flask(__name__)
@application.route('/', defaults={'subline': 7})
@application.route('/<subline>')
def index(subline):
resp = requests.get(data_url)
tree = ElementTree.fromstring(resp.content)
line = tree.find("./subway/line[name='{}']".format(subline))
status = line.find('status').text
if status == "GOOD SERVICE":
return render_template('index.html', status="Yes")
else:
status_text = "Nope."
text = saxutils.unescape(line.find('text').text)
if status == "SERVICE CHANGE":
status_text = "Maybe?"
return render_template('index.html', status=status_text, text=text)
if __name__ == "__main__":
application.run(debug=True)