22 lines
928 B
Python
22 lines
928 B
Python
from flask import Flask,render_template,send_from_directory
|
|
from flask_caching import Cache
|
|
import httpx
|
|
|
|
app=Flask(__name__)
|
|
app.config['CACHE_TYPE']='SimpleCache'
|
|
cache=Cache(app)
|
|
|
|
data=httpx.get("https://tarc.rideralerts.com/InfoPoint/rest/Routes/GetVisibleRoutes").json()
|
|
routes=",".join(str(r.get("RouteId")) for r in data)
|
|
data=httpx.get("https://tarc.rideralerts.com/InfoPoint/rest/Stops/GetAllStops").json()
|
|
stops={s.get("StopId"):[s.get("Latitude"),s.get("Longitude")] for s in data}
|
|
|
|
@app.route("/")
|
|
def index():
|
|
return render_template("map.html",stops=stops)
|
|
|
|
@app.route("/tarc.csv")
|
|
@cache.cached(timeout=5)
|
|
def tarc():
|
|
d=httpx.get("https://tarc.rideralerts.com/InfoPoint/rest/Vehicles/GetAllVehiclesForRoutes?routeIDs=0,"+routes).json()
|
|
return "\n".join(f"{v['Latitude']},{v['Longitude']},{v['RouteId']},{v['Name']},{v['OnBoard']},{v['DirectionLong']},{v['Speed']},{v['LastUpdated'][6:16]}" for v in d)
|