维基百科:机器人/申请/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-outputModule:Citation/CS1/Configuration自动生成的(但需要人为剔除6个重复参数),因此人为疏失导致错误的可能性很小。处理模板的函数做下列事情:
    • 后序遍历模板树;
    • 如模板损坏/溢出,则跳过不处理;
    • 如不是引用模板,或为引用模板但非使用Module:Citation的引用模板,跳过不处理;
    • 对本模板内的每一对格式为(参数名=参数值)的参数,
      • 若参数名处没有引出子模板,则查找是否有CS1意义下的同名参数(定义为Module:Citation/CS1/Configuration中同一参数名的若干别名),如有且先前仅出现过一次,则:
        • 检验两个参数的参数值处是否a、皆未引出子模板;b、皆实质非空;c、实质相等;若是,则:
          • 清空后一个参数,标记当前模板为已处理;
        • 否则标记该参数名重复出现过两次以上(且无法自动处理),不再参与后续处理。
      • 否则如该参数名从未出现过,则加入记录。
    • 初步检查完成后,进一步检查跨参数导致出现冗余参数的情形:
    • 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)则释放本名参数,标记当前模板为已处理;
    • 若当前模板已处理或任何一个子模板已处理,且当前一个模板和所有子模板未损坏,输出已处理。
  批准测试运作(50次编辑)。--Xiplus#Talk 2020年10月26日 (一) 01:24 (UTC)[回复]
  正式批准运作--Xiplus#Talk 2020年10月29日 (四) 15:37 (UTC)[回复]