Un membre de notre forum Discourse a demandé si Discourse avait un moyen d’afficher/de reconnaître les jours consécutifs de visite ou de publication sur un forum Discourse. Je ne vois cette information nulle part dans les informations utilisateur de l’administrateur, est-elle conservée quelque part ?
Eh bien, oui, car il existe des badges comme Enthusiast, Aficionado et Devotee qui récompensent les visites consécutives. Visité = aimer un post/répondre une fois, si je me souviens bien.
Vous pouvez probablement faire une requête d’explorateur de données. Voici le schéma de la table user_visits ici :
Peut-être quelque chose comme ça ?
WITH consecutive_visits AS (
SELECT
user_id,
visited_at,
visited_at - INTERVAL '1 day' * ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY visited_at) AS grp
FROM
user_visits
),
visit_streaks AS (
SELECT
user_id,
COUNT(*) AS streak_length
FROM
consecutive_visits
GROUP BY
user_id, grp
)
SELECT
user_id,
MAX(streak_length) AS longest_streak
FROM
visit_streaks
GROUP BY
user_id
ORDER BY
longest_streak DESC
LIMIT 100
Ou peut-être pourriez-vous combiner avec la table user_actions (visites avec likes et posts ?), qui est ici :