維基百科:機械人/申請/Antigng-bot/32
Antigng-bot 32
編輯- 狀態: 撤銷許可
- 操作者: Antigng(留言)
- 提請時間: 2019年6月4日 (二) 15:20 (UTC)
- 自動化程度:自動
- 程式語言:C
- 用途:清理調用重複模板參數的頁面
- 原始碼連結:
- 編輯時段及頻率:不限,先清存檔,然後轉入長期運行
- 受影響頁面:存量1680,另每個月大致新產生~50個
- 遵守機械人規範:不相關
- 已有機械人權限:是
- 框架與前兩個申請完全相同。第二部分修改為:
- 遍歷所有模板,模板損壞,不處理;模板沒參數,不處理。然後打開一個表存放(參數名,參數值的地址),並開始檢查參數,對每個參數,如果參數名處引出模板,跳過,如果沒有參數值(注:指|date|之類的),跳過;如果參數值處引出模板,跳過。然後在表中查詢參數名,
- 如果命中,檢查當前的參數值。
- 若其實質為空(定義為僅有空格,註釋和常見控制符),釋放本參數。
- 否則檢查舊參數值是否實質為空
- 若是,將當前參數複製到舊參數值的地址,釋放本參數。
- 否,則檢查新舊參數值是否實質上相同,若是,釋放本參數,否則跳過。
- 如果未命中,將(參數名,參數值的地址)加入表中。
- 如果命中,檢查當前的參數值。
- 釋放表格。若模板或任意子模板被清理過,返回1,否則返回0。
- 遍歷所有模板,模板損壞,不處理;模板沒參數,不處理。然後打開一個表存放(參數名,參數值的地址),並開始檢查參數,對每個參數,如果參數名處引出模板,跳過,如果沒有參數值(注:指|date|之類的),跳過;如果參數值處引出模板,跳過。然後在表中查詢參數名,
- 修正了解析模板的部分的很多bug。修好之後,在整個主名字空間空運行結果表明,有1680個可處理的頁面,其中僅4個不在追蹤分類裏邊。經檢查,假陽性的原因在於待處理的問題發生在不存在的模板之中。但是即使清理不存在的模板也沒有害處,所以沒什麼可進一步修的。
- 在功能上可以完全替代Wikipedia:機械人/申請/Liangent-bot/15。--Antigng(留言) 2019年6月4日 (二) 16:30 (UTC)
- 測試編輯,全部符合設計要求。--Antigng(留言) 2019年6月16日 (日) 01:48 (UTC)
- Special:Diff/54836579:動到「監製」前面的換行了。
- Special:Diff/54836557:為什麼保留的值是前面出現的小寫?
{{1x|1=a|1=}}
在機械人處理後結果為?- 上述步驟中的「釋放本參數」是什麼意思?--Xiplus#Talk 2019年7月8日 (一) 12:28 (UTC)
- @Xiplus:
- 「動到「監製」前面的換行」:是因為那個參數值是從最底下的老參數值複製上去的,而後者並不存在換行。
- 「為什麼保留的值是前面出現的小寫?」:「檢查是否實質上相同」一步做了大小寫轉換,導致程序以為兩個參數的參數值實質相同,於是只留了前一個。為避免問題已刪除轉換相關的邏輯。
{{1x|1=a}}
- 「上述步驟中的「釋放本參數」是什麼意思」:C並不自帶垃圾回收,一塊內存區域不用就必須人工釋放掉。--Antigng(留言) 2019年7月8日 (一) 14:40 (UTC)
- Xiplus#Talk 2019年7月9日 (二) 02:31 (UTC) 第三個問題的答案,這會改變模板的顯示結果,不是應該以不更動顯示結果為基本原則嗎?--
- Antigng(留言) 2019年7月9日 (二) 02:33 (UTC) ,沒有人會故意填一個參數又故意讓模板顯示不出來,這樣做幾乎肯定是筆誤所致。--
- Xiplus#Talk 2019年7月9日 (二) 02:37 (UTC) 對於資訊框來說是這樣沒錯,不過對於其他地方不會有意想不到的意外嗎?--
- 那我跑一下空運行看一下唄,if(atoi(name)>0||!strcmp(name,"0")) {/* do somthing*/}--Antigng(留言) 2019年7月9日 (二) 02:39 (UTC)
- 查完了,所有數字=xxx類型並且模板參數重複的條目涉及的都是noteta模板,且其中不存在上述情況。--Antigng(留言) 2019年7月9日 (二) 04:47 (UTC)
- Xiplus#Talk 2019年7月9日 (二) 04:58 (UTC) 不一定是數字參數啊,命名參數也有一樣的效果(後出現的參數值覆蓋前面的,即使後參數值為空字串)。--
- 沒發現不是錯用的情況。--Antigng(留言) 2019年7月9日 (二) 05:20 (UTC)
- 所有符合這個條件導致不顯示的空參數Special:Diff/55136813,沒見到哪個有特殊需求需要刻意使用空參數覆蓋老參數的。--Antigng(留言) 2019年7月9日 (二) 05:35 (UTC)
- 那再 批准測試運作(100次編輯)。--Xiplus#Talk 2019年7月9日 (二) 09:20 (UTC)
- 測試已完成,全部符合設計要求。--Antigng(留言) 2019年7月9日 (二) 13:30 (UTC)
- Special:Diff/55142030,對於這筆編輯來說,我覺得保留註釋會比較好。--Xiplus#Talk 2019年7月10日 (三) 08:40 (UTC)
- 另外編輯摘要使用中文應能更好地提供資訊,甚至是應考慮連結到分類頁。--Xiplus#Talk 2019年7月10日 (三) 08:42 (UTC)
- Antigng(留言) 2019年7月10日 (三) 12:27 (UTC)
- Xiplus#Talk 2019年7月10日 (三) 12:30 (UTC)
- Antigng(留言) 2019年7月11日 (四) 00:43 (UTC)
- Xiplus#Talk 2019年7月11日 (四) 02:15 (UTC) 就這麼做吧。--
標籤可以繁簡轉換,摘要不可以。--
為什麼覺得標籤比編輯摘要好?這樣不就標籤和摘要給出重複的資訊嗎,還是說編輯摘要留空?-- - Antigng(留言) 2019年7月11日 (四) 00:43 (UTC)
,那就在兩個參數都實質為空的情況下把後邊一個參數接到前邊一個參數的後邊;中文和連結可以通過標籤來加,加標籤可以通過過濾器實現。-- - Xiplus#Talk 2019年7月10日 (三) 12:30 (UTC)
- Antigng(留言) 2019年7月10日 (三) 12:27 (UTC)
- 正式批准運作。--Xiplus#Talk 2019年7月11日 (四) 02:15 (UTC)