这是关于
/about页面统计数据如何计算以及在哪里可以找到每个统计数据的 Ruby 代码的参考指南。
所需用户级别:所有用户
关于页面统计信息
所有 Discourse 站点都有一个内置的 /about 页面(例如,这是 Meta 的关于页面),其中包含站点管理员和版主列表以及一些关于站点本身的统计信息。
这些统计信息包括所有用户,包括管理员和版主帐户。某些统计信息还将包括匿名帐户(如果站点上启用了该功能)。
如果启用了 share anonymized statistics 站点设置(此设置默认启用),则 /about 页面上的“站点统计信息”将作为 JSON 文件公开,可以通过 /about.json 检索。
如果站点是公开的,/about 页面以及这些统计信息也将公开可用。
所有这些统计数据的 Ruby 代码位于:discourse/app/models/about.rb。
下面将介绍每个统计数据的计算方法。
主题
在指定时间范围内创建的主题数量。此统计信息不包括未列出的话题或私人消息。
topic_count: Topic.listable_topics.count,
topics_last_day: Topic.listable_topics.where('created_at > ?', 1.days.ago).count,
topics_7_days: Topic.listable_topics.where('created_at > ?', 7.days.ago).count,
topics_30_days: Topic.listable_topics.where('created_at > ?', 30.days.ago).count,
帖子
在指定时间范围内创建的帖子数量。私人消息也包含在内,并计为普通帖子。
post_count: Post.count,
posts_last_day: Post.where('created_at > ?', 1.days.ago).count,
posts_7_days: Post.where('created_at > ?', 7.days.ago).count,
posts_30_days: Post.where('created_at > ?', 30.days.ago).count,
注册
在指定时间范围内注册新帐户的用户数量。
user_count: User.real.count,
users_last_day: User.real.where('created_at > ?', 1.days.ago).count,
users_7_days: User.real.where('created_at > ?', 7.days.ago).count,
users_30_days: User.real.where('created_at > ?', 30.days.ago).count,
![]()
real用户在此处定义:discourse/app/models/user.rb
活跃用户
在指定时间范围内访问过站点的用户数量。包括匿名模式用户,但不包括没有帐户的用户。
active_users_last_day: User.where('last_seen_at > ?', 1.days.ago).count,
active_users_7_days: User.where('last_seen_at > ?', 7.days.ago).count,
active_users_30_days: User.where('last_seen_at > ?', 30.days.ago).count,
点赞
在指定时间范围内,所有主题和帖子收到的点赞总数。
like_count: UserAction.where(action_type: UserAction::LIKE).count,
likes_last_day: UserAction.where(action_type: UserAction::LIKE).where("created_at > ?", 1.days.ago).count,
likes_7_days: UserAction.where(action_type: UserAction::LIKE).where("created_at > ?", 7.days.ago).count,
likes_30_days: UserAction.where(action_type: UserAction::LIKE).where("created_at > ?", 30.days.ago).count
聊天消息
所有聊天频道发送的聊天消息数量。
这是最近添加的统计信息,有关此添加的详细信息可以在此处找到。
