diff --git a/routes/auth.py b/routes/auth.py index adad502..2c33b28 100644 --- a/routes/auth.py +++ b/routes/auth.py @@ -2,7 +2,7 @@ from flask import Blueprint, render_template, request, jsonify, redirect, url_fo from flask_login import login_user, logout_user, login_required, current_user from werkzeug.security import generate_password_hash, check_password_hash from db import get_db, generate_clan_key -from datetime import datetime +from datetime import datetime, timezone auth = Blueprint('auth', __name__) @@ -108,14 +108,13 @@ def logout(): def options(): conn = get_db() - # Load this user's clan (one clan per user for now) clan = conn.execute( 'SELECT * FROM clans WHERE owner_id = ?', (current_user.id,) ).fetchone() members = [] if clan: - members = conn.execute( + rows = conn.execute( '''SELECT cm.id, cm.player_id, cm.player_name, cm.joined_at, ts.updated_at FROM clan_members cm @@ -126,6 +125,24 @@ def options(): (clan['id'],) ).fetchall() + now = datetime.utcnow() + for row in rows: + is_online = False + if row['updated_at']: + try: + last_seen = datetime.fromisoformat(row['updated_at']) + if (now - last_seen).total_seconds() <= 150: + is_online = True + except Exception: + pass + members.append({ + 'id': row['id'], + 'player_id': row['player_id'], + 'player_name': row['player_name'] or 'Άγνωστος', + 'joined_at': row['joined_at'][:10] if row['joined_at'] else '', + 'is_online': is_online + }) + conn.close() return render_template('options.html', clan=clan, members=members) diff --git a/templates/options.html b/templates/options.html index 56fd104..b6830ae 100644 --- a/templates/options.html +++ b/templates/options.html @@ -192,23 +192,19 @@ {% for m in members %} - {% set last_seen = m.updated_at %} - {% if last_seen %} - {% set diff = (now - last_seen) | int %} - {% endif %} -
{{ m.player_name or 'Άγνωστος' }}
+
{{ m.player_name }}
ID: {{ m.player_id }}
- {% if m.updated_at and (now_ts - m.updated_at|string|int) < 150 %} + {% if m.is_online %} ● Online {% else %} ● Offline {% endif %} - {{ m.joined_at[:10] }} + {{ m.joined_at }}