diff --git a/WebHost/templates/tracker.html b/WebHost/templates/tracker.html
index a9e782a6..1f1b155b 100644
--- a/WebHost/templates/tracker.html
+++ b/WebHost/templates/tracker.html
@@ -55,6 +55,7 @@
{{ area }} |
{% endif %}
{% endfor %}
+ Last Activity (UTC) |
@@ -72,6 +73,10 @@
{{ checks_done }}/{{ checks_total }} |
{% endif %}
{% endfor %}
+ {% if activity_timers[(team, player)] %}
+ {{ activity_timers[(team, player)].isoformat(sep=" ", timespec='minutes') }} |
+ {% else %}
+ No activity | {% endif %}
{% endfor %}
diff --git a/WebHost/tracker.py b/WebHost/tracker.py
index 2a95f033..8be3483c 100644
--- a/WebHost/tracker.py
+++ b/WebHost/tracker.py
@@ -2,6 +2,7 @@ import collections
from flask import render_template
from werkzeug.exceptions import abort
+import datetime
import Items
from WebHost import app, cache, Room
@@ -145,8 +146,6 @@ from MultiServer import get_item_name_from_id
@app.route('/tracker/')
@cache.memoize(timeout=60) # update every minute
def get_tracker(room: int):
- # This more WIP than the rest
-
room = Room.get(id=room)
if not room:
abort(404)
@@ -171,6 +170,10 @@ def get_tracker(room: int):
if game_state:
inventory[team][player][106] = 1 # Triforce
+ activity_timers = {}
+ for (team, player), timestamp in room.multisave.get("client_activity_timers", []):
+ activity_timers[team, player] = datetime.datetime.utcfromtimestamp(timestamp)
+
player_names = {}
for team, names in enumerate(multidata['names']):
for player, name in enumerate(names, 1):
@@ -180,6 +183,6 @@ def get_tracker(room: int):
lookup_id_to_name=Items.lookup_id_to_name, player_names=player_names,
tracking_names=tracking_names, tracking_ids=tracking_ids, room=room, icons=icons,
multi_items=multi_items, checks_done=checks_done, ordered_areas=ordered_areas,
- checks_in_area=checks_in_area)
+ checks_in_area=checks_in_area, activity_timers=activity_timers)
else:
return "Tracker disabled for this room."