关于karma的机制探究

原始文章 by JochoiJochoi
翻译搬运 by pokmpokm

引言

对于绝大多数(甚至是全部)Wikidot 用户来说,网站的 karma 系统仍是未知的。有传言称达到 4k(也就是“非常高”活跃度)和 5k(也就是“上师”活跃度)分别需要 2000 次页面编辑和 8000 次页面编辑。

为了探究这个机制的运作原理,我进行了一系列的数据搜集。


概览

对于 karma 系统,有如下的猜测:

5k 成员的数量是“比例恒定”的,只有在新的成员加入 wikidot 时,由于用户基数增大导致 5k 出现空缺位置,此时顶级 4k 用户便可以晋升为 5k 用户。

第一手数据

一个用于提升并且监控 karma 实时数据的脚本。

第二手数据

提取目前已知的 5k 用户的编辑数和发帖数。


方式方法

灌水升 k

灌水升 k 脚本基于 NodeJS 环境进行开发,由 Karma PoCKarma PoC 执行。

该代码不会对外公开以防被滥用,但是其设计理念如下:

  1. 脚本登入账户。
  2. 对一个可以随时删除的、无用的废弃页面,每 3s 进行一次编辑和保存。
  3. 对这个页面的讨论版,每 60s 发送一个帖子。
  4. 每 60s 检查一遍该账户的 karma 等级,达到 5k 后终止操作。

对 5k(上师)账户进行编辑数和发帖数检索

对编辑数和发帖数进行检索的脚本基于 NodeJS 环境开发。

代码如下:

我在个人服务器 http://zh.xjo.ch/wduserinfo 上为这串代码提供检索所需的服务。能够用 query string 的参数提供 用户Id用户_id 或使用使用 用户名 来进行这里的统计。

如果编辑数超过 20000 或者发帖数超过 10000,请尝试使用用户id,不要用用户名,因为把用户名转化成id还需要大概 10s 的时间

如果编辑数和发帖数量过多,该脚本可能会因为服务器网关超时而出错。

感谢UnihedronUnihedron在使用指数搜索算法上提出的建议。


结果

karma 数值

Karma PoCKarma PoC 在编辑约 2000 次、发帖 0 时达到了4karma 。
11631 次编辑、101 发帖时达到了 5karma。

可能存在的问题:由于 wikidot 更新 karma 的速度很慢,所以可能在超出 karma 阈值之后脚本没有及时停止操作、从而导致数据偏大。

对于当前的 5k(上师)用户的统计

按照字母顺序排序
检索数据时间均为 北京时间(UTC+8) 2020 年 5 月 10 日 03:30。
由于被删除的页面的编辑数和发帖的数量不包含在内,所以检索的数据可能有所偏差。

用户 编辑数量 发帖数量
7happy77happy7 29917 653
djkaktusdjkaktus 6871 2463
feitagfeitag 9346 3244
Helmut_pdorfHelmut_pdorf 19940 8590
IhpIhp 8472 2716
Karma PoCKarma PoC 11631 101
Lt FlopsLt Flops 10702 700
M ElementM Element 15108 2699
NatVoltaicNatVoltaic 11197 1404
not_a_seagull does not match any existing user name 5629 1752
pokmpokm 5685 2285
RounderhouseRounderhouse 11272 713
Sekai_sSekai_s 5489 629
WoedenazWoedenaz 8355 353
ZynZyn 8410 48175
[[*user ]] / /

结论

首先,关于“编辑页面 8000 次升 5k”的谣言是错误的,因为他没有考虑到 karma 计算的其他因素。 实例包括pokmpokmSekai_sSekai_s 没有达到6000次编辑。作为第一手实例的Karma PoCKarma PoC 却需要大约 11000+ 编辑和 100次 发帖。

其次,由于无法得知 karma 机制的具体运作方式,所以该计算方式存在诸多错误,因此无法得出一个准确无误的结论,仅供参考。

除非特别注明,本页内容采用以下授权方式: Creative Commons Attribution-ShareAlike 3.0 License