Википедия:Фильтр правок/Руководство

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Руководство по созданию фильтров с предварительным тестированием.

К примеру, если нужен фильтр, реагирующий на слова «кролика», «кролику», пишем
'кролика' rlike 'кролик[ау]'
и нажимаем «опробовать». Если результат «1», то выражение верное, и позже в коде фильтра мы можем использовать что-то вроде
lcase(added_lines) rlike 'кролик[ау]'
Здесь сверху вставляем нужный кусок кода, в поле «изменения сделаны участником» добавляем участника, который недавно (в своих последних 100 правках, сделанных не позже месяца назад) совершал действия, под которые пишется фильтр, и нажимаем кнопку «проверить».
Смотрим на результаты и проверяем, что фильтр действительно поймал нужные действия.
Если срабатываний нет, то включаем галочку «показывать изменения, не попадающие под фильтр», снова нажимаем «проверить», находим нужную правку и открываем (в новом окне браузера) ссылку «просмотреть», попадая на страницу «Просмотр отдельных изменений».
Здесь можно изучить переменные сделанной правки и понять каким образом нужно изменить код фильтра для получения корректного срабатывания, при необходимости возвращаясь к странице «средства отладки» для проверки отдельных выражений.
Если неясно, что именно не сработало, то можно поочерёдно оставлять в окне кода только нужное выражение и нажимать кнопку «проверить фильтр».
  • Проверяем код на свежих правках
Добавляем код на страницу пакетное тестирование, временно убрав условия, ограничивающие участников (вида 'autoconfirmed' in user_groups), и на этот раз оставив остальные поля пустыми
Нажимаем кнопку «проверить» каждые несколько минут, таким образом тестируя фильтр на 100 последних правках в проекте.
При нахождении ложных срабатываний дорабатываем код фильтра.
Этот шаг в принципе необязателен, но помогает уменьшить количество последующих изменений фильтра.
  • Создание фильтра
Со страницы списка фильтров нажимаем «создать новый фильтр» и создаём пока бездействующий (без предупреждений или запретов) фильтр. В поле описания кратко описываем назначение фильтра и тот факт, что фильтр пока тестируется.
После отсутствия ложных срабатываний в течение нескольких дней добавляем (по необходимости) нужное предупреждение и/ли запрет.


Для уменьшения времени, необходимого системе для проверки всех фильтров, каждый фильтр должен начинаться с более «лёгких» условий (проверка пространства, группы участника), которые отсеют многие правки, не переходя к более сложным (проверке добавленного текста и т.п.).