From e4bd7da77f06156f606718adf073e9d9eb8d28f1 Mon Sep 17 00:00:00 2001 From: steven Date: Sat, 22 Mar 2025 23:00:30 -0400 Subject: [PATCH] implement flask caching --- app.py | 9 +++++++-- templates/map.html | 8 ++------ 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/app.py b/app.py index a5369bc..ada8aa7 100644 --- a/app.py +++ b/app.py @@ -1,10 +1,14 @@ from flask import Flask, jsonify, render_template, send_from_directory +from flask_caching import Cache import requests app = Flask(__name__) +app.config['CACHE_TYPE'] = 'SimpleCache' +cache = Cache(app) + data=requests.get("https://tarc.rideralerts.com/InfoPoint/rest/Routes/GetVisibleRoutes").json() -routes = ",".join(str(r.get('RouteId')) for r in data) +routes=",".join(str(r.get('RouteId')) for r in data) @app.route("/") def index(): @@ -15,8 +19,9 @@ def favicon(): return send_from_directory(app.static_folder,"bus.svg") @app.route('/tarc.csv') +@cache.cached(timeout=5) def tarc(): - d=requests.get("https://tarc.rideralerts.com/InfoPoint/rest/Vehicles/GetAllVehiclesForRoutes?routeIDs=0,"+routes).json() + d=requests.get("https://tarc.rideralerts.com/InfoPoint/rest/Vehicles/GetAllVehiclesForRoutes?routeIDs="+routes).json() return "\n".join(f"{v['Latitude']},{v['Longitude']},{v['RouteId']},{v['Name']},{v['OnBoard']},{v['DirectionLong']},{v['Speed']}" for v in d) if __name__ == '__main__': diff --git a/templates/map.html b/templates/map.html index 903019e..9a4b3b2 100644 --- a/templates/map.html +++ b/templates/map.html @@ -9,11 +9,7 @@ - +
@@ -30,7 +26,7 @@ function updateMap() { }) }) } -setInterval(updateMap,5000); // use websocket +setInterval(updateMap,5000); let locationMarker=L.marker([0,0]),locationRadius=L.circle([0,0]); let locationLayer=L.layerGroup([locationMarker,locationRadius]).addTo(map);