online indicators
This commit is contained in:
@@ -13,8 +13,33 @@ dashboard = Blueprint('dashboard', __name__)
|
||||
@dashboard.route('/')
|
||||
def index():
|
||||
conn = get_db()
|
||||
players = conn.execute('SELECT DISTINCT player, player_id FROM town_state WHERE player IS NOT NULL ORDER BY player ASC').fetchall()
|
||||
rows = conn.execute('''
|
||||
SELECT player, player_id, MAX(updated_at) as last_seen
|
||||
FROM town_state
|
||||
WHERE player IS NOT NULL
|
||||
GROUP BY player, player_id
|
||||
ORDER BY player ASC
|
||||
''').fetchall()
|
||||
conn.close()
|
||||
|
||||
players = []
|
||||
now = datetime.utcnow()
|
||||
for r in rows:
|
||||
is_online = False
|
||||
if r['last_seen']:
|
||||
try:
|
||||
last_seen = datetime.fromisoformat(r['last_seen'])
|
||||
if (now - last_seen).total_seconds() <= 150:
|
||||
is_online = True
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
players.append({
|
||||
'player': r['player'],
|
||||
'player_id': r['player_id'],
|
||||
'is_online': is_online
|
||||
})
|
||||
|
||||
return render_template('index.html', players=players)
|
||||
|
||||
@dashboard.route('/player/<player_id>')
|
||||
|
||||
Reference in New Issue
Block a user