Фильтр правок

Фильтры правок (обсуждение) — это автоматизированный механизм проверок правок участников.
(Список | Последние изменения фильтров | Изучение правок | Журнал срабатываний)
Перейти к навигации Перейти к поиску

Различия между версиями

ЭлементВерсия участника Alex Smotrov от 16:46, 8 октября 2009Версия участника Alex Smotrov от 19:04, 20 октября 2009
Основные сведения
Примечания:
Подряд идущий одинаковый текст: обычно множественный copy/paste нескольких слов для вандализма.
Подряд идущий одинаковый текст: обычно множественный copy/paste нескольких слов для вандализма. Или слишком длинное слово без пробелов.


edit:  
edit: перенос условия "слишком длинное слово" из [[Special:AbuseFilter/62]]
1) оптимизация: не производить вычисления переменных для тех правок, которые всё равно не будут проверяться; спасибо [[user:VasilievVV]] за консультацию; среднее время работы доходило до 80мс.
2) не проверять новые пустые статьи, которые всё равно ловятся фильтром [[Special:AbuseFilter/30|пустая статья]]
Условия фильтрации
Условия:
(документация)
action == 'edit' & !'uploader' in user_groups  
action == 'edit'
&(article_articleid | article_namespace > 0 | length(new_text) > 150)
&(!'user' in user_groups | user_editcount < 10)
& edit_delta  < 10000 &! added_links
&(old_size > 0 | article_namespace > 0 | length(new_text) > 150)
&!added_links
&(
&(
add := rmwhitespace(added_lines);
rem := rmwhitespace(removed_lines);
m1 := "([а-яА-Я]{1,3})\1{5}";
m1 := "([а-яА-Я]{1,3})\1{5}";
m2 := "([^_:*'&|=}{a-fA-F\d-]{1,3})\1{9}";
m2 := "([^_:*'&|=}{a-fA-F\d-]{1,3})\1{9}";
m3 := "([^_:*'&|=}{<>-]{4,30})\1{3}";
m3 := "([^_:*'&|=}{<>-]{4,30})\1{3}";
(add rlike m1 &! rem rlike m1)|
m4 := "[a-zа-я\d]{40}";
(add rlike m2 &! rem rlike m2)|
add := rmwhitespace(added_lines);
(add rlike m3 &! rem rlike m3 &! rcount('(!![^!]|\|\|[^|])', add) > 2)
(add rlike m1 &! rmwhitespace(removed_lines) rlike m1)|
(add rlike m2 &! rmwhitespace(removed_lines) rlike m2)|
(add rlike m3 &! rmwhitespace(removed_lines) rlike m3  
  &! rcount('(!![^!]|\|\|[^|])', add) > 2)|
(lcase(added_lines) rlike m4 &! lcase(removed_lines) rlike m4)
)
)