維基百科:機器人/申請/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-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)[回覆]