Conditions:
(
documentation) | sus := "(?x)\b(?:
fortnite
|ass+
|poo+
|fart(?:ed|ing|s)?
|suck(?:ed|ing|s)?
|cool
|gay
|fat
|balls
|daddy
|i[ ]like
|sexy?
|racist
)\b";
page_namespace == 0 &
!("confirmed" in user_groups) &
added_lines irlike sus &
!(removed_lines irlike sus) &
(
/* Baseline AGF */
score := 1.0;
/* More AGF on "sweary" pages */
score := score + 0.2 * rcount("(?i)" + sus, old_wikitext);
/* Added references */
ref_score := (count("<ref", added_lines) - count("<ref", removed_lines));
score := score + 2.0 * ref_score;
/* Added markup */
markup_score := (rcount("[[{|]", added_lines)) - (rcount("[[{|]", removed_lines));
score := score + 0.1 * markup_score;
/* Added quotes or italics */
quote_score := (rcount("(?<!')''(?!')|\"", added_lines)) - rcount("(?<!')''(?!')|\"", removed_lines);
score := score + 0.5 * quote_score;
/* No summary */
score := score - 0.5 * (summary irlike "^(?:/\*.*?\*/)?\s*$");
/* Did they add these words and do nothing else except adjust whitespace and punctuation? */
score := score - 2.0 * (norm(str_replace_regexp(added_lines, sus, "")) == norm(removed_lines));
/* Multiple bad words */
score := score - 0.5 * (rcount("(?i)" + sus, added_lines) - rcount("(?i)" + sus, removed_lines));
/* Long runs */
two_sus := "(?i)(?:(?:" + sus + ")\W*){2}";
score := score - 2.0 * (rcount(two_sus, added_lines) - rcount(two_sus, removed_lines));
/* Large additions are probably more helpful */
pinned_edit_delta := edit_delta < -1000 ? -1000 : edit_delta > 1000 ? 1000 : edit_delta;
score := score + 0.001 * pinned_edit_delta;
/* On the other hand, if the word count is exactly the same, that probably means they just swapped out one word, or did a search-and-replace */
score := score - 1.0 * (rcount("\w+", added_lines) == rcount("\w+", removed_lines));
/* Anying in all caps, not necessarily these words */
score := score - 1.0 * (rcount("[A-Z]{4,}", added_lines) > rcount("[A-Z]{4,}", removed_lines));
/* Added plain text to the end of a single line */
score := score - 1.0 * (
strpos(norm(added_lines), norm(removed_lines)) == 0 &
length(added_lines) == length(removed_lines) &
quote_score + ref_score + markup_score == 0
);
score < 0
)
|
Tools: |
Export this filter to another wiki
|