这一系列程序用于自动获取与处理Minecraft Wiki的一些数据。
当前支持的功能包括:
通过设置固定间隔获取多个做出修订的时间戳实现。
使用前,请自行根据需求修改config.json
中的num_diff
、minrev
和maxrev
字段,其中minrev
和maxrev
指定了搜索的范围,可以为空。
直接通过API获取。这些信息是其他程序的基础,因此存储为json文件。
使用前,请自行根据需求修改config.json
中的username
、starttime
和endtime
字段,其中starttime
和endtime
指定了搜索的时间范围,可以为空。username
中的空格可以被下划线取代,而starttime
和endtime
必须遵守<年>-<月>-<日>T<时>:<分>:<秒>Z
的格式,其中年份必须为4位数字,其他必须为2位数字。
读取usercontribs.py
产生的json文件,统计指定用户在每年、每月、每星期几、每天、每小时、每分钟、每秒钟的编辑总数,并存储到七个工作表中。
使用前,请自行根据需求修改config.json
中的datafile
字段,其指定了usercontribs.py
产生的json文件的名称,不需要带上后缀名。
获取过去一个月的所有最近更改情况,统计有哪些用户做出了多少次操作。用于取代存在漏洞的[[Special:活跃用户]]特殊页面。
根据实际需求,程序有特殊处理:
- 不统计创建账号操作
- 不统计IP用户的所有操作
- 不统计
(用户名已移除)的操作 - 本地用户组一栏,只注明本地用户组
- 程序会读取当前月份,然后进行如下操作(均指本地时间):
- 如果当前是2月,那么统计1月28日0时到2月25日0时的数据;
- 如果当前是3月,那么统计2月25日0时到3月28日0时的数据;
- 如果不符合上述情况,那么统计上月28日0时到本月28日0时的数据。
使用前,请自行根据需求修改config.json
中的usergroup_order
和usergroup_mapping
字段。对中文Minecraft Wiki,这两个字段无需修改即可应用。mode
字段默认为“standard”,若设置为“debug”,则从当前时刻减去当前秒数的时刻开始(如:现在是2025年8月19日05:35:xx,那么程序总是从2025年8月19日05:35:00开始),统计过去30天的数据,方便与[[Special:活跃用户]]特殊页面进行比较。
统计Wiki上执行过巡查操作的用户的巡查次数并排序。
程序有备份功能,每获取5000条记录会自动备份一次。如果程序中断,下次启动时会自动从上次备份的地方开始。程序正常结束时会自动删除备份文件。
统计Wiki上执行过编辑操作的用户的编辑次数并排序。(用户名已移除) 的编辑次数单独统计,并置于表格末尾。
程序有备份功能,每获取5000条记录会自动备份一次。如果程序中断,下次启动时会自动从上次备份的地方开始。程序正常结束时会自动删除备份文件。
截至2025年3月,Wiki有超过三万名用户存在编辑记录。因此,程序还会单独保存编辑次数前1000名的数据,方便查看。
读取usercontribs.py
产生的json文件,统计指定用户所有编辑的字节增减数的区间分布情况,分别以1000、100、10和1为区间大小,并存储到四个工作表中。
此程序和editperiod.py
共用一个配置项。使用前,请自行根据需求修改config.json
中的datafile
字段,其指定了usercontribs.py
产生的json文件的名称,不需要带上后缀名。
读取usercontribs.py
产生的json文件,统计指定用户的总编辑数和各命名空间编辑数随日期的变化。
此程序和editperiod.py
共用一个配置项。使用前,请自行根据需求修改config.json
中的datafile
字段,其指定了usercontribs.py
产生的json文件的名称,不需要带上后缀名。
读取usercontribs.py
产生的json文件,统计指定用户各命名空间的编辑数及占比。和[[Special:编辑计数]]功能一致。
此程序和editperiod.py
共用一个配置项。使用前,请自行根据需求修改config.json
中的datafile
字段,其指定了usercontribs.py
产生的json文件的名称,不需要带上后缀名。
实际存在但是没有在最近更改显示的编辑(checkhiddenrc.py
)
这里的编辑指的是有revid的编辑,在最近更改有的被归为日志操作。实际存在但是没有在最近更改显示的编辑,主要有以下三种:
- 删除之后又还原的修订版本,这是由于修订版本一经删除即从最近更改移除;
- 移动页面时留下的重定向(移动页面本身作为日志操作存在于最近更改);
- 漏洞。
程序不统计属于第2点的编辑。
使用前,请自行根据需求修改config.json
中的starttime
和endtime
字段,其指定了搜索的时间范围,可以为空。starttime
和endtime
必须遵守<年>-<月>-<日>T<时>:<分>:<秒>Z
的格式,其中年份必须为4位数字,其他必须为2位数字。
程序需要同目录存在config.json
才能正常运作。使用前,请自行修改config.json
中的用户代理。如果不设置用户代理,任何请求都会被服务器拒绝。
程序支持不同语言的Minecraft Wiki,可以通过修改config.json
的wiki
字段切换。当前支持的语言包括:
de
en
es
fr
it
ja
ko
lzh
nl
pt
ru
th
uk
zh
meta
程序支持不同时区,可以通过修改config.json
的timezone
字段切换。
程序支持使用[[Special:机器人密码]]提供的用户名和密码登录,需要填写config.json
的username
和password
字段。如果不需要登录,将这两个字段留空或移除即可。
base.py
中的get_data
函数会根据是否登录,选择合适的数据请求方式。如果无法连接至服务器,会在20秒后重试1次,不行就中止程序。
程序采用与Minecraft Wiki相同的CC BY-NC-SA 3.0协议授权。
感谢Wilf233协助开发、测试activeusers.py
。