Add global presence heartbeat and online tracking

This commit is contained in:
2026-02-26 10:53:56 +01:00
parent 60442b4335
commit 5eeef54e46
6 changed files with 56 additions and 1 deletions
+24
View File
@@ -0,0 +1,24 @@
from flask import Blueprint, jsonify
from flask_login import login_required, current_user
from app.db import get_db
presence_bp = Blueprint("presence", __name__)
def _mark_current_user_online() -> None:
db = get_db()
db.execute(
"UPDATE users SET last_seen_at = CURRENT_TIMESTAMP WHERE id = ?",
(current_user.id,),
)
db.commit()
@presence_bp.route("/api/presence/ping", methods=["POST"])
@login_required
def presence_ping():
if not current_user.is_authenticated: # should not happen due to @login_required, but just in case
return ("", 204)
_mark_current_user_online()
return jsonify({"status": "ok"})