帮助:灰机Wiki数据更新器
灰机Wiki数据更新器(HuijiUpdater)是由Yuee自制的机器人小程序,用于处理一些常见的数据更新需求。是“推土机”架构的重要工具。
下载
通过下方地址下载程序(2023年1月19日更新):
- 地址:v0.3.46
下载后解压到任意位置,执行根目录下的huijiwiki_bot_gui.exe即可启动程序
登录
使用灰机Wiki的账号和密码即可进行登录。
为了保证Wiki内容不被随意破坏,因此后续进行操作时,登录的账号必须同时拥有所操作Wiki的机器人和管理员权限。建议开一个新账号进行机器人操作。
勾选保持登录状态可以在下次启动程序时,跳过登录界面。
- 参考:设置用户权限
基本使用方法
- 新建一个任务
- 为任务设定Wiki Key,每个Wiki的Key就是 xxx.huiji.wiki 中的 xxx 部分
- 设置任务名称和描述。这两项仅供用户识别任务用,不会影响任务执行
- 选择一个指令,并配置指令相关的参数。关于指令说明请参考后面详细描述部分
- 设置线程数和编辑摘要
- 运行任务
指令
指令名称 | 功能目标 | 简述 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
上传Excel文件(模板) | 用来批量创建指定预设模板的页面(key-value模式) | 读取指定Excel文件,并将其中的数据更新到Wiki中,会与wikitext进行对比。Excel格式要求请参考后面详述部分 | ||||||||||||
上传Excel文件(简易) | 用来批量创建制定内容的页面(freetext模式) | 读取指定Excel文件的第一个工作表(Sheet),以第一列(A列)为页面名,以第二列(B列)为页面内容,将内容批量更新到Wiki中,会与wikitext进行对比 | ||||||||||||
以文本更新 | 批量将文本更新到Wiki | 将指定目录下,所有Wiki源代码文件(*.wiki,实质为文本文件),以文件名为标题(注意转义),文本内容为页面内容更新到Wiki中。请配合“批量页面操作”功能中的“保存源代码到文本”功能使用。
请注意:由于Windows文件名不支持一些符号,需要转义这些符号,转义规则请见下面的表:
例如 “ | ||||||||||||
上传图片 | 批量上传图片(超过1000张时强烈推荐) | 将指定目录中的所有图片(*.png,*.jpg,*.jpeg,*.gif)上传到Wiki中。默认会先判断Wiki中是否有同名文件,如果存在就不进行上传,可以通过选项关闭该功能 | ||||||||||||
更新Lua | 更新lua模块 | 将指定目录中的所有Lua文件(*.lua),上传到Wiki中 | ||||||||||||
批量删除 / 恢复 | 批量增删页面 | 读取一个Excel,以其中第一个工作表的第一列(A列)为页面标题列表,批量删除或恢复删除这些页面 | ||||||||||||
批量操作页面 | 对指定规则的页面列表进行批量操作 | 根据命名空间(需要填写命名空间ID)、分类、SMW查询条件或通过Excel文件提供的标题列表,对符合条件的页面进行批量操作。操作内容包括:批量刷新缓存、保存条目列表、解析模板数据到Excel文件、保存源代码到文本。 |
wikitext
进行编辑的功能,都需要指定一个wikitext目录,程序会将生成的页面内容,在成功编辑到Wiki后,在本地以文本形式(txt)保存一个备份,在下次进行更新时,会将新生成的页面内容与本地备份进行对比,如果一样就不进行上传,以减少服务器压力和任务执行时间。
如果需要忽视该功能的话,可以于任务设置中关闭对比(不推荐),或是在wikitext中找到对应文件删除。
上传Excel数据到维基模板
数据格式
模板模式需要在Excel中,以如下方式罗列数据
灰机Updater更新上述表格时会创建页面名甲,页面名乙,页面名丙…等页面。
其中页面名甲的源代码内容为
{{模板名 |表头1=数据B2 |表头2=数据C2 |表头3=数据D2 … }}
- Excel表上第一行第二格开始后的所有表头实际上就是网页模板中的参数名
- Excel表上第二行起所有第二列以后的内容就是网页模板中对应参数的赋值
- 页面名乙、页面名丙…等页面的内容可类推。
另外,可以在表头或是页面名最前面加“!”(半角惊叹号),有该符号的数据列或是行,不会被上传到Wiki中。
参数说明
- 选择数据Excel文件
- 上传全部工作表:该选项为默认值,会上传工作薄中所有工作表。
但是会跳过所有以“Sheet”开头的工作表(Excel默认工作表名称)
- 上传第一个工作表:不论第一个工作表是什么名字,都上传第一个工作表
- 模板名称
可以设置3种形式来指定模板名称,
- 使用
单元格A1
:默认选项,使用A1的值作为模板名称,例如:“Template Name” - 使用
表单页的名字
:使用当前表单(sheet)的名字作为模板名称。 - 指定模板名称:在客户端中手动输入一个模板名,将以此模板逐个创建页面(不用填写命名空间“template/模板”)
- 额外设置
- 不保留空值模式:默认情况不勾选该项目。勾选时,生成Wiki文本时,会跳过值为空的数据项。
例如上面例子中,如果数据C3是空值 | |
不勾选该项目生成的文本 | 勾选该项目生成的文本 |
{{Template Name |表头1=数据B3 |表头2= |表头3=数据D3 … }}<!--Template [模板名] end--> |
{{Template Name |表头1=数据B3 |表头3=数据D3 … }}<!--Template [模板名] end--> |
- 只替换模板内容模式:默认情况不勾选该项目。勾选时,程序会先从Wiki中获取该页面的内容,并将新生成的内容,替换页面内容中同名模板(如果页面中有多个该名称模板,将只替换第一个),然后编辑到Wiki。使用该选项可以保存页面中模板之外的编辑内容。
下载维基模板数据到Excel
在基本中选择“批量操作页面”,在第二个标签内选择“解析模板数据到excel文件”
选择页面
使用updater通用的选择控件,支持以下4种方式来生产页面list
- 命名空间:例如“0”代表主空间,“3500”代表data空间,灰机的命名空间编号规则可以在:命名空间查阅
- 分类:例如“data”,会选择所有“分类:data”下的页面
- SMW语法:输入合法的SMW查询条件,例如“[[name::+]]”
- 文件列表:提交一个excel工作表
解析方式
- 默认会解析页面中的所有模板以及其中的所有参数
- 输入指定的模板(多个用“|”分隔)可以解析制定模板内的所有参数
总结
上传/下载功能结合使用能够允许编辑者像操作Github的代码库一样随时随地的pull/push维基上的数据。
- 允许我们批量建立、更新特定的页面内容。
- 也可以在线下批量处理、修改维基上的格式化数据。下载的excel文件可以进一步的转化成csv、json等格式提供给更高级的脚本语言(例如python)来做进一步的自动化处理。待修改完毕后再以excel文件的形式回灌到维基页面中即可
批量刷新页面
在读取数据
模式中,通过选择刷新
操作,可以批量执行页面刷新,目前支持两种方式
- 通过
API
申请刷新页面(推荐):藉由MediaWiki的API来提交刷新页面的job queue,在站点Job没有积压的情况下可以快速秒刷大量页面的Memory Cache缓存。 - 通过空编辑来刷新页面:藉由对指定页面进行无意义的空编辑来刷新页面,由于需要进行物理操作,因此时间会较慢,仅在特殊情况下使用。
以上两种方法在选择Excel表格作为页面列表时,仅对第一张表进行操作。
操作系统UI缩放导致的界面问题解决方案
由于个人制作,水平有限,本程序在Windows8/10开启系统UI缩放的情况下,会出现界面控件大小受到影响的问题(常见于使用4k分辨率桌面的用户),无法正常使用,临时解决方法如下:
- 启用兼容性模式打开
- 任选推荐配置,然后选择“否,使用其他配置再试一次”
- 勾选“程序已打开,但未正确显示”
- 勾选“当选择较大的字体设置时程序无法正确显示”
下一步、保存、测试,即可照常使用