维基百科:机器人/申请/Antigng-bot/34
Antigng-bot 34
编辑- 状态: 撤销许可
- 操作者:Antigng(留言)
- 提请时间:2020年7月5日 (日) 05:05 (UTC)
- 自动化程度:自动
- 编程语言:C
- 用途:清理Category:含有冗余参数的引用的页面
- 讨论内容连结:no
- 源代码连结:Module:沙盒/CS1-output等
- 编辑时段及频率:过滤器限制1/s
- 受影响页面:275(存量),增速未知
- 遵守机器人规范:无关
- 已有机器人权限:是
- 框架仍然与前四个申请(30,31,32,33)相同。在这个任务中,冗余参数是完全根据Module:Citation/CS1/Configuration的配置来判定;检验CS1模板各参数名的别名相关的代码是由Module:沙盒/CS1-output从Module:Citation/CS1/Configuration自动生成的(但需要人为剔除6个重复参数),因此人为疏失导致错误的可能性很小。处理模板的函数做下列事情:
- 后序遍历模板树;
- 如模板损坏/溢出,则跳过不处理;
- 如不是引用模板,或为引用模板但非使用Module:Citation的引用模板,跳过不处理;
- 对本模板内的每一对格式为(参数名=参数值)的参数,
- 若参数名处没有引出子模板,则查找是否有CS1意义下的同名参数(定义为Module:Citation/CS1/Configuration中同一参数名的若干别名),如有且先前仅出现过一次,则:
- 检验两个参数的参数值处是否a、皆未引出子模板;b、皆实质非空;c、实质相等;若是,则:
- 清空后一个参数,标记当前模板为已处理;
- 否则标记该参数名重复出现过两次以上(且无法自动处理),不再参与后续处理。
- 检验两个参数的参数值处是否a、皆未引出子模板;b、皆实质非空;c、实质相等;若是,则:
- 否则如该参数名从未出现过,则加入记录。
- 若参数名处没有引出子模板,则查找是否有CS1意义下的同名参数(定义为Module:Citation/CS1/Configuration中同一参数名的若干别名),如有且先前仅出现过一次,则:
- 初步检查完成后,进一步检查跨参数导致出现冗余参数的情形:
- page和pages,若两个参数名都记录且仅记录过一次,参数值处无引出子模板,实质非空且实质相同,则清除page参数保留pages参数,标记当前模板为已处理;
- author和last,editor和editor-last,contributor和contributor-last,translator和translator-last,这四对参数(以下记为(本名参数,姓氏参数))分别依次进行如下处理:
- 若本名参数和姓氏参数均仅记录过一次,未引出子模板,
- 若两参数实质非空且实质相同,则:
- 清除本名参数保留姓氏参数,标记当前模板为已处理;
- 否则检查名字参数(本名参数-first),若记录且仅记录过一次,实质非空,且名字参数和姓氏参数能“拼”成实质等同于本名参数的串(e.g. last=Sparrow|first=Jack 可拼出author=Jack Sparrow或author=Sparrow, Jack)则释放本名参数,标记当前模板为已处理;
- 若两参数实质非空且实质相同,则:
- 若本名参数和姓氏参数均仅记录过一次,未引出子模板,
- 若当前模板已处理或任何一个子模板已处理,且当前一个模板和所有子模板未损坏,输出已处理。
- 编辑示例,测试编辑。--Antigng(留言) 2020年7月5日 (日) 05:05 (UTC)
- 空运行报告:在整个主名字空间发现275个可编辑页面,其中仅3个不在分类Category:含有冗余参数的引用的页面之中,均涉及未使用CS1的小众引用模板(e.g. {{cite twitter}}),然此等编辑并无害处,故可认为没有发生假阳性事件。--Antigng(留言) 2020年7月5日 (日) 05:05 (UTC)
- 批准测试运作(50次编辑)。--Xiplus#Talk 2020年10月26日 (一) 01:24 (UTC)
- 正式批准运作--Xiplus#Talk 2020年10月29日 (四) 15:37 (UTC)