From cbe117a81782f82175f3d820b36a9f2d8bfcb90c Mon Sep 17 00:00:00 2001 From: Fabian Dill Date: Tue, 23 Jun 2020 14:37:41 +0200 Subject: [PATCH] add last activity to tracker --- WebHost/templates/tracker.html | 5 +++++ WebHost/tracker.py | 9 ++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) 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."