Ajout d'un système de gestion des utilisateurs en ligne dans la shoutbox pour les modérateurs Twitch. Implémentation d'un endpoint de heartbeat pour suivre la présence des modérateurs et mise à jour de l'interface utilisateur pour afficher la liste des utilisateurs en ligne. Amélioration de l'expérience utilisateur avec un bouton pour ouvrir la shoutbox en popout.
This commit is contained in:
@@ -557,9 +557,24 @@ def shoutbox_messages():
|
||||
return jsonify({
|
||||
"items": items,
|
||||
"timestamp": datetime.now().isoformat(),
|
||||
"online_users": _get_online_users(),
|
||||
})
|
||||
|
||||
|
||||
def _get_online_users():
|
||||
heartbeats = webapp.config["BOT_STATUS"].get("shoutbox_heartbeats", {})
|
||||
cutoff = datetime.now() - timedelta(seconds=15)
|
||||
return sorted(u for u, t in heartbeats.items() if t > cutoff)
|
||||
|
||||
|
||||
@webapp.route("/twitch-moderation/shoutbox/heartbeat", methods=['POST'])
|
||||
@require_page("twitch_moderation")
|
||||
def shoutbox_heartbeat():
|
||||
hb = webapp.config["BOT_STATUS"].setdefault("shoutbox_heartbeats", {})
|
||||
hb[current_user.username] = datetime.now()
|
||||
return jsonify({"online_users": _get_online_users()})
|
||||
|
||||
|
||||
@webapp.route("/twitch-moderation/shoutbox/clear")
|
||||
@require_page("twitch_moderation")
|
||||
def shoutbox_clear():
|
||||
@@ -568,3 +583,9 @@ def shoutbox_clear():
|
||||
ModShoutboxMessage.query.delete()
|
||||
db.session.commit()
|
||||
return jsonify({"success": True})
|
||||
|
||||
|
||||
@webapp.route("/twitch-moderation/shoutbox/popout")
|
||||
@require_page("twitch_moderation")
|
||||
def shoutbox_popout():
|
||||
return render_template("shoutbox-popout.html")
|
||||
|
||||
Reference in New Issue
Block a user