本文原作者:Jochoi
译者:Senioriousc
原文地址在此。
|
Table of Contents
|
引言
对于绝大多数(甚至是全部)Wikidot 用户来说,网站的 Karma 系统仍是未知的。有传言称,达到 4K(也就是“非常高”活跃度)和 5K(也就是“上师”活跃度)分别需要 2000 次页面编辑和 8000 次页面编辑。
为了探究这个机制的运作原理,我进行了一系列的数据搜集。
概览
对于 Karma 系统,有如下的猜测:
5K 用户的数量相对于 Wikidot 总用户量的比例是恒定的。当 Wikidot 的注册用户增多时,5K 用户的名额随之增多并出现空缺,此时活跃度最高的那部分 4K 用户便可以晋升为 5K 用户;或者根据 Wikidot 的活跃度计算方式,某些4K 用户已经超出了对应的阈值,此时他们亦将晋升为5K 用户。
Wikidot源代码
Wikidot 用于计算 Karma 的源代码是公开的,你可以在 Github 上查看他们的 计算方式 和 相关的规则。
第一手数据
一个用于提升并且监控 Karma 实时数据的脚本。
第二手数据
获取目前已知的 5k 用户的编辑数和发帖数。
研究过程
灌水升K
灌水升 K 脚本基于 NodeJS 环境进行开发,由 Karma PoC 执行。
该代码不会对外公开以防滥用,但是其设计理念如下:
- 脚本登入账户。
- 对一个可以随时删除的、无用的废弃页面,每 3s 进行一次编辑和保存。
- 对这个页面的讨论版,每 60s 发送一个帖子。
- 每 60s 检查一遍该账户的 Karma 等级,达到 5K 后终止操作。
对 5K(上师)账户进行编辑数和发帖数检索
对编辑数和发帖数进行检索的脚本基于 NodeJS 环境开发。
代码如下:
我在个人服务器 https://zh.xjo.ch/wduserinfo 上为这串代码提供检索所需的服务。能够用 query string 的参数提供 用户Id、用户_id 或使用使用 用户名 来进行这里的统计。
如果编辑数超过 20000 或者发帖数超过 10000,请尝试使用用户ID,不要用用户名,因为把用户名转化成id还需要大概 10s 的时间。
如果编辑数和发帖数量过多,该脚本可能会因为服务器网关超时而出错。
研究结果
Wikidot源代码
由于可查阅的 Wikidot 源代码是十余年前的版本,它们可能无法准确反映当前 Karma 的计算方式,仅供参考。
通过检视 Wikidot 的源代码,可以发现如果希望取得任意一个 Karma 等级,至少需要达到对应的最小活跃值;然而,每个等级的用户比例是根据 Wikidot 用户总人数分配的。这验证了先前的猜想,至少在十年前的 Wikidot 的确如此。
Karma 数值
Karma PoC 在编辑约 2000 次、发帖 0 时达到了4 Karma 。
11631 次编辑、101 发帖时达到了 5 Karma。
可能存在的问题:由于 Wikidot 更新 Karma 的速度很慢,所以可能在超出 Karma 阈值之后脚本没有及时停止操作,从而导致数据偏大。
对于当前的 5k(上师)用户的统计
按照字母顺序排序
检索数据时间均为 北京时间(UTC+8) 2024 年 1 月 6 日 12:00。
由于被删除的页面的编辑数和发帖的数量不包含在内,所以检索的数据可能有所偏差。
| 用户 | 编辑数量 | 发帖数量 |
|---|---|---|
| 36352 | 751 | |
| 9034 | 2642 | |
| 13709 | 3643 | |
| 21508 | 10059 | |
| 11631 | 101 | |
| 23618 | 1333 | |
| 17110 | 3891 | |
| 11783 | 1496 | |
| 6079 | 3380 | |
| 21800 | 2273 | |
| 8661 | 762 | |
| 13426 | 449 | |
| 10194 | 63955 | |
| [[*user ]] | / | / |
结论
首先,关于“编辑页面 8000 次升 5K”的谣言是错误的,因为没有考虑到 Karma 计算的其他因素。实例包括pokm 和
Sekai_s 没有达到6000次编辑1。作为第一手实例的
Karma PoC 却需要大约 11000+ 编辑和 100次 发帖。
其次,由于无法得知 Karma 机制的具体运作方式,只能作出如下结论:即,在十年前开源的 Wikidot 版本中,“比例决定Karma”是正确的;但是由于可能存在的多个错误,目前尚无法得到准确的结论。
