Отслеживает ли Discourse количество последовательных дней активности?

Один из участников нашего форума на Discourse спросил, есть ли в Discourse способ показать или отслеживать последовательные дни посещения или публикации на форуме. Я не вижу этой информации нигде в пользовательских данных администратора — сохраняется ли она где-либо?

Кстати, в Reddit есть такая функция.

Ну, да, ведь есть значки вроде «Энтузиаст», «Аффицио» и «Преданный», которые выдаются за последовательные дни посещения. Посещение = лайк поста или один ответ, если я не ошибаюсь.

Вы, вероятно, можете выполнить запрос в Data Explorer. Вот схема таблицы user_visits:

Может быть, что-то вроде этого? :thinking:

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

Или, возможно, вы могли бы объединить это с таблицей user_actions (посещения с лайками и постами?), которая находится здесь:

Спасибо, я это запомню.