維基百科:機械人/申請/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)