使用者:Alexander Misel/過濾器指南

維基百科,自由的百科全書

這篇論述是我想給新任管理員看的。新任管理員在編輯過濾器前往往找不到很好的指引,尤其是思想上的指引。我主要介紹的就是這一塊兒。下面的問題均為我的個人意見,不代表中文維基百科上的共識。

過濾器是幹什麼用的

過濾器,全名叫做「防濫用過濾器」,目前來說是中文維基百科唯一的全自動反破壞手段(因為中文維基沒有自動反破壞機器人)。過濾器用數字編號,目前有200多個過濾器。

過濾器主要的三種操作是「標籤」、「警告」、「阻止」,這三個等級越來越高。「標籤」可以用來標記一些一般性的特徵,但更重要的,是標記出需要巡查員等著重篩查的編輯。「警告」其實就已經是針對一些擾亂或破壞建立的了,如果僅僅警告,但不阻止,基本上說明,這個過濾器可能存在誤判,警告的作用主要是提醒;不過,常常會看到「警告」和「阻止」一起用的情況,這是為了避免直接阻止會讓編者不明所以,反覆嘗試卻不知道怎麼改進。「阻止」過濾器基本上是很少出現誤判、用於應對明顯的破壞或非建設性編輯的。

如何修復有問題的過濾器

這個問題就涉及到了過濾器的語法,但先要談談什麼情況下要修復,什麼情況下不需修復。對於Wikipedia:防濫用過濾器/錯誤報告上的報告,我們就需要判斷了:

  • 每個過濾器一般都有一個描述,或者警告文字,如果過濾器的行為和它要判斷的情況相符,一般是不需要修復的;而不相符,是一定要修復的。
  • 另外有些過濾器是在設計時,就有些不合理的,這樣的即便過濾器做的事情與描述相符,我們也要修復,把不合理的地方彌補上。

修復過濾器要用好Special:濫用過濾器/test這個測試工具。測得沒問題了再發布更改。更改時需要注意:

  • 先理解再更改。不要改完了,雖然沒有誤判,但過濾器本身的功能也被你改沒了。
  • 正則表達式很好用,如果不了解沒關係,看看我們神奇的維基百科條目正則表達式。如果需要了解具體正則匹配情況,可以前往regex101這個網站進行測試。它會告訴你匹配到的詞是哪一個。

我對大家編輯過濾器的建議

謹慎建立及修改過濾器
我們目前這些過濾器都是前輩管理員或從外文搬來,或原創的一些過濾器。我們要對前人的貢獻保持尊重,即便是某些前管理員的貢獻,我們也要尊重。
在每個更改發布之前,我們維基百科的伺服器都會把所有過濾器跑一遍,然後再發布。在個別極端情形下,伺服器在過濾器上耗費的時間甚至比儲存更改本身還要多(見phab:T172447#3502970)。所以請大家不要建立多餘的過濾器,這會對伺服器造成影響。我們翻閱過濾器的歷史,可以看到一些技術大佬很努力地把一些可能有重複功能的過濾器合併起來,我也希望大家建立過濾器前能夠先了解一下現有過濾器的功能,了解一下你要過濾的東西是否可以通過簡單修改一下其他過濾器就能解決。
使用更有效率、邏輯清晰的代碼
我們的MediaWiki應該說已經儘量讓過濾器語法更加簡單了。如何更有效率?簡單說,就是不要做多餘的判斷和文本匹配。例如,能從added_lines裡面匹配,就沒有必要從new_wikitext裡面匹配。不要覺得能用就行,要為伺服器考慮考慮,但也不必為了效率而減少該有的判斷。
邏輯清晰這一點是為了讓過濾器更好維護。我們現在雖然是管理員,但沒準什麼時候我們就不做管理員了,或者不玩維基了。我們要為以後的人考慮。以後的人在想修改一個過濾器的時候,看到你混亂的邏輯的時候,應該也會頭大。
能阻止就阻止
如果你確定,你的過濾器代碼沒有問題,不會誤判,我鼓勵大家寫阻止性的過濾器。最大的好處就是減少巡查員的壓力。既然你已經是管理員了,我說下面這句話你應該有體會,「中文維基上缺少優質的巡查員」。讓過濾器或者機器擋掉它們能確定性判斷是非建設性編輯,是再好不過的。
但是建立阻止性過濾器之前,我建議一定要用警告標籤測試一段時間,確認真的沒有問題了再阻止。即便阻止,也建議,不要匹配自動確認用戶以上權限的編輯,對這些用戶,我願意有更多的善意推定。