User:Xcnbot
维基百科,自由的百科全书
xcnbot(Xiayicidenglu Category Navigation roBOT)是一个添加和维护各类别分类树导航的机器人,由User:下一次登录操作,目前结束调试,正在申请机器人标记(参见Wikipedia:机器人#User:Xcnbot)。xcnbot分析维基百科的分类结构,并使用{{catnav}}模板在每一个类别顶端说明其母类别的分类树,例如对Category:亚洲国家,显示:
目录 |
[编辑] 原理和程序
分两步进行,首先是自上而下的添加,然后是自下而上的检查和删除。
[编辑] 自上而下
从根目录:“页面分类”开始,广度优先的遍历所有子类别,使用递归方式处理每一个类别:
- 设定
- 类别树深度(“cDepth”)=5
- 修改计数器(“cChange”)=0
- 初始化:
- 当前类别名(“vCCName”)=“页面分类”或任一类别(对其子类别进行处理)
- 当前母类别阵列(“aCCTree[100]”)= NA
- 母类别树深度(“aCCDepth”)= 0
- 递归
- 输入:vCCName,aCCMother,aCCDepth
- 赋值:aCCTree[aCCDepth]=vCCName
- 检查是否有重复类别名,如果有,则报错停止。
- 所有子类别:
- 连接并提取编辑内容,检查是否有aCCTree[]的catnav导航,如果否:
- 加入catnav
- 修改计数器加1
- 连接并提取编辑内容,检查是否有aCCTree[]的catnav导航,如果否:
- 所有子类别:
- vCCName=子类别名,调用递归。
[编辑] 自下而上
- 连结所有页面中的category空间页面: http://zh.wikipedia.org/w/index.php?title=Special%3AAllpages&from=&namespace=14
- 对每一个类别,统计{{catnav}}模板的个数
- 对于每一个{{catnav}}模板,从后到前检查是否正确
- 如果正确,检查下一个模板
- 如果错误,删除该模板
- 对于每一个{{catnav}}模板,从后到前检查是否正确
- 下一个类别。
检查模板的细节:
- 从后到前读取{{catnav}}模板中的各类别名
- 检查当前类别是否被分类于上一级类别中,如果没有,则报错结束。如果有,则进入上一级类别,然后重复。
[编辑] 进度和问题
目前已经完成1.1部分。
- 调试约500次编辑,尚未发现异常。11:13 2007年3月13日 (UTC)
完成第二部分,并调试成功。正式申请机器人。11:53 2007年3月31日 (UTC)