Precompute run analysis and serve compact route previews
This commit is contained in:
+12
-9
@@ -24,11 +24,12 @@ from werkzeug.security import check_password_hash, generate_password_hash
|
||||
|
||||
from garmin_sync.service import SyncError, atomic_write
|
||||
|
||||
from .analytics import analyse, pace_text
|
||||
from .analytics import pace_text
|
||||
from .display import stored_analysis
|
||||
from .extensions import db, limiter
|
||||
from .models import Activity, Friendship, GarminConnection, User
|
||||
from .records import record_book
|
||||
from .services import activity_data, import_cache, import_upload
|
||||
from .services import activity_data, import_cache, import_upload, route_data
|
||||
|
||||
web = Blueprint("web", __name__)
|
||||
DUMMY_HASH = generate_password_hash("not-a-real-account-password")
|
||||
@@ -76,11 +77,7 @@ def are_friends(first, second):
|
||||
|
||||
def latest_mapped_run(rows):
|
||||
return next(
|
||||
(
|
||||
row
|
||||
for row in rows
|
||||
if row.sport == "running" and row.has_route
|
||||
),
|
||||
(row for row in rows if row.sport == "running" and row.has_route),
|
||||
None,
|
||||
)
|
||||
|
||||
@@ -311,7 +308,7 @@ def profile(username):
|
||||
@web.get("/activities/<int:activity_id>")
|
||||
def activity(activity_id):
|
||||
row, owner = get_activity(activity_id)
|
||||
analysis = analyse(row)
|
||||
analysis = stored_analysis(row)
|
||||
efforts = []
|
||||
if owner:
|
||||
history = db.session.scalars(db.select(Activity).filter_by(owner_id=row.owner_id)).all()
|
||||
@@ -332,6 +329,12 @@ def data(activity_id):
|
||||
return jsonify(activity_data(row, owner))
|
||||
|
||||
|
||||
@web.get("/activities/<int:activity_id>/route")
|
||||
def route(activity_id):
|
||||
row, _ = get_activity(activity_id)
|
||||
return jsonify(route_data(row))
|
||||
|
||||
|
||||
@web.post("/activities/<int:activity_id>/share")
|
||||
@login_required
|
||||
def share_activity(activity_id):
|
||||
@@ -366,7 +369,7 @@ def shared_activity(token):
|
||||
activity=row,
|
||||
owner_view=False,
|
||||
public_view=True,
|
||||
analysis=analyse(row),
|
||||
analysis=stored_analysis(row),
|
||||
pace_text=pace_text,
|
||||
data_url=url_for("web.shared_activity_data", token=token),
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user