维基百科:机器人/申请/Antigng-bot/30

维基百科,自由的百科全书

Antigng-bot 30

  • 第一部分将条目中的模板及嵌套关系提取出来。为正确地判断“|”、“=”等符号的含义,在解析模板的过程中还会检查内链、注释和部分会导致维基语法失效的标签(如nowiki、math、pre等)的状态。此外,如果在提取过程中发现子模板已经损坏或者这个程序处理不了,则会将其所有的母模板标记为损坏。条目中有任何一个模板损坏,或者正文结束时内链、注释、标签的状态不正常,则不会转入第二部分。(经测试,主名字空间中有0.2%的页面会遇到此问题,其中绝大多数是由语法错误造成的,例如此页面)关于提取模板的功能的测试参见12
  • 第二部分调用tempgroom函数(源码已附)“梳理”前一部分获得的每一组模板。首先利用递归遍历每一个模板。然后依次检查:如果模板已损坏,不处理;不是引用模板,不处理;没有模板参数,不处理。然后检查有无待处理的“accessdate”和“archivedate”参数(满足:1、(除去空格、常见控制符和注释之后的)参数名相符;2、有参数值;3、该参数处没有引出子模板)。如果模板中有且仅有一个满足条件的“accessdate”参数,则检查(除去空格、常见控制符和注释之后的)参数值是否符合“xxxx-xx-xx”的格式。如果不符,利用Wikipedia:机器人/申请/Antigng-bot/11中的函数(在此基础上增加了对中文月份的支持)提取“年、月、日”。如果:

  1. 负责转换的函数没有报错
  2. 得到了大于2000的年份
  3. 没在参数中发现诸如“xx期”的字样
  4. 如果有月份,则月份数在1-12之间
  5. 如果有日数,日数在1-31之间,且有月份。

  • 则用规范的年月日格式代替老格式。对“archivedate”参数采取类似的方法处理。如果模板被梳理,或任何一个子模板被梳理过,则返回1,否则返回0。
  • 第三部分将模板放回页面的源代码中,如果1、第一部分没有发现任何错误;2、第二部分至少有一个模板梳理过,则提交编辑。
  • 有且仅有第二部分中“提取年月日”的部分可能出错,因为所涉对象是自然语言,不可能穷尽所有可能性。但从测试结果来看似乎并发现没有问题。
  • 70次测试编辑。除本次编辑由于没有检查参数值是否为空(已修正)而导致错误外,其它编辑均符合设计要求。
批准測試運作(50次編輯)。--Xiplus#Talk 2020年10月26日 (一) 01:27 (UTC)[回复]
完成无误--Antigng留言2020年10月30日 (五) 11:51 (UTC)[回复]
 正式批准運作。--Xiplus#Talk 2020年11月2日 (一) 23:46 (UTC)[回复]