"清除Inactive用户的天数"的含义和统计数据

这被描述为:

移除不活跃用户(信任等级 0 且没有任何帖子)之前的日数。设置为 0 可禁用清理。

您能否确认这些是标准(TL0 和 0 帖子)?是否考虑了他们上次登录和/或阅读帖子的时间,或者天数是从注册开始计算的?

是否有数据浏览器查询可以显示具有 0 帖子的 TL0 用户以及相关的天数?这将有助于了解为该设置选择特定数字的效果。谢谢。

还有一些额外的标准:管理员和版主不会被删除
另外还会检查最后登录时间和注册日期

我认为类似这样的查询将返回将被删除的用户数量

-- [params]
-- int :active_days_ago

SELECT COUNT(*)
FROM users
WHERE last_posted_at IS NULL
  AND trust_level = 0
  AND admin = false
  AND moderator = false
  AND created_at < CURRENT_DATE - :active_days_ago
  AND (last_seen_at < CURRENT_DATE - :active_days_ago OR last_seen_at IS NULL)
  AND NOT EXISTS (
    SELECT 1 FROM posts WHERE posts.user_id = users.id
  )
  AND NOT EXISTS (
    SELECT 1 FROM topics WHERE topics.user_id = users.id
  )

要查看哪些用户将被删除,这个查询应该有效

-- [params]
-- int :active_days_ago

SELECT
    id as user_id,
    DATE_PART('day', CURRENT_DATE - created_at) AS days_since_created,
    DATE_PART('day', CURRENT_DATE - last_seen_at) AS days_since_seen
FROM users
WHERE last_posted_at IS NULL
  AND trust_level = 0
  AND admin = false
  AND moderator = false
  AND created_at < CURRENT_DATE - :active_days_ago
  AND (last_seen_at < CURRENT_DATE - :active_days_ago OR last_seen_at IS NULL)
  AND NOT EXISTS (
    SELECT 1 FROM posts WHERE posts.user_id = users.id
  )
  AND NOT EXISTS (
    SELECT 1 FROM topics WHERE topics.user_id = users.id
  )
ORDER BY days_since_seen
4 个赞

谢谢。我会试试的。

管理员设置文本需要更新,因为它不正确。

last_seen_at 是基于什么?登录,还是(处于登录状态时)查看论坛的任何页面?

就是这个。他们上次活跃地浏览论坛的时间。

1 个赞