Differences between versions

ItemVersion from 23:46, 4 April 2024 by Suffusion of YellowVersion from 03:40, 5 April 2024 by Suffusion of Yellow
Filter conditions
Conditions:
( documentation)
sus := "(?x)\b(?:
sus := "(?x)\b(?:
     fortnite
     fortnite
     |ass+
     |ass+
     |poo+
     |poo+
     |fart(?:ed|ing|s)?
     |fart(?:ed|ing|s)?
     |suck(?:ed|ing|s)?
     |suck(?:ed|ing|s)?
     |cool
     |cool
     |gay
     |gay
     |fat
     |fat
     |balls
     |balls
     |daddy
     |daddy
     |i[ ]like
     |i[ ]like
     |sexy?
     |sexy?
     |racist
     |racist
)\b";
)\b";


page_namespace == 0 &
page_namespace == 0 &
!("confirmed" in user_groups) &
!("confirmed" in user_groups) &
added_lines irlike sus &
added_lines irlike sus &
!(removed_lines irlike sus) &
!(removed_lines irlike sus) &
(
(
     /* Baseline AGF */
     /* Baseline AGF */
     score := 1.0;
     score := 1.0;


     /* More AGF on "sweary" pages */
     /* More AGF on "sweary" pages */
     score := score + 0.2 * rcount("(?i)" + sus, old_wikitext);
     score := score + 0.2 * rcount("(?i)" + sus, old_wikitext);


     /* Added references */
     /* Added references */
     ref_score := (count("<ref", added_lines) - count("<ref", removed_lines));
     ref_score := (count("<ref", added_lines) - count("<ref", removed_lines));
     score := score + 2.0 * ref_score;
     score := score + 2.0 * ref_score;


     /* Added markup */
     /* Added markup */
     markup_score := (rcount("[[{|]", added_lines)) - (rcount("[[{|]", removed_lines));
     markup_score := (rcount("[[{|]", added_lines)) - (rcount("[[{|]", removed_lines));
     score = score + 0.1 * markup_score;
     score := score + 0.1 * markup_score;


     /* Added quotes or italics */
     /* Added quotes or italics */
     quote_score := (rcount("(?<!')''(?!')|\"", added_lines)) - rcount("(?<!')''(?!')|\"", added_lines);
     quote_score := (rcount("(?<!')''(?!')|\"", added_lines)) - rcount("(?<!')''(?!')|\"", added_lines);
     score = score + 0.5 * quote_score;
     score := score + 0.5 * quote_score;


     /* No summary */
     /* No summary */
     score := score - 0.5 * (summary irlike "^(?:/\*.*?\*/)?\s*$");
     score := score - 0.5 * (summary irlike "^(?:/\*.*?\*/)?\s*$");


     /* Did they add these words and do nothing else except adjust whitespace and punctuation? */
     /* 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));
     score := score - 2.0 * (norm(str_replace_regexp(added_lines, sus, "")) == norm(removed_lines));


     /* Multiple bad words */
     /* Multiple bad words */
     score := score - 0.5 * (rcount("(?i)" + sus, added_lines) - rcount("(?i)" + sus, removed_lines));
     score := score - 0.5 * (rcount("(?i)" + sus, added_lines) - rcount("(?i)" + sus, removed_lines));


     /* Long runs */
     /* Long runs */
     two_sus := "(?i)(?:(?:" + sus + ")\W*){2}";
     two_sus := "(?i)(?:(?:" + sus + ")\W*){2}";
     score := score - 2.0 * (rcount(two_sus, added_lines) - rcount(two_sus, removed_lines));
     score := score - 2.0 * (rcount(two_sus, added_lines) - rcount(two_sus, removed_lines));


     /* Large additions are probably more helpful */
     /* Large additions are probably more helpful */
     pinned_edit_delta := edit_delta < -1000 ? -1000 : edit_delta > 1000 ? 1000 : edit_delta;
     pinned_edit_delta := edit_delta < -1000 ? -1000 : edit_delta > 1000 ? 1000 : edit_delta;
     score := score + 0.001 * pinned_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 */
     /* 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));
     score := score - 1.0 * (rcount("\w+", added_lines) == rcount("\w+", removed_lines));


     /* Anying in all caps, not necessarily these words */
     /* Anying in all caps, not necessarily these words */
     score := score - 1.0 * (rcount("[A-Z]{4,}", added_lines) > rcount("[A-Z]{4,}", removed_lines));
     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 */
     /* Added plain text to the end of a single line */
     score := score - 1.0 * (
     score := score - 1.0 * (
             strpos(norm(added_lines), norm(removed_lines)) == 0 &
             strpos(norm(added_lines), norm(removed_lines)) == 0 &
             length(added_lines) == length(removed_lines) &
             length(added_lines) == length(removed_lines) &
             quote_score + ref_score + markup_score == 0
             quote_score + ref_score + markup_score == 0
     );
     );


     score < 0
     score < 0
)
)

Differences between versions

ItemVersion from 23:46, 4 April 2024 by Suffusion of YellowVersion from 03:40, 5 April 2024 by Suffusion of Yellow
Filter conditions
Conditions:
( documentation)
sus := "(?x)\b(?:
sus := "(?x)\b(?:
     fortnite
     fortnite
     |ass+
     |ass+
     |poo+
     |poo+
     |fart(?:ed|ing|s)?
     |fart(?:ed|ing|s)?
     |suck(?:ed|ing|s)?
     |suck(?:ed|ing|s)?
     |cool
     |cool
     |gay
     |gay
     |fat
     |fat
     |balls
     |balls
     |daddy
     |daddy
     |i[ ]like
     |i[ ]like
     |sexy?
     |sexy?
     |racist
     |racist
)\b";
)\b";


page_namespace == 0 &
page_namespace == 0 &
!("confirmed" in user_groups) &
!("confirmed" in user_groups) &
added_lines irlike sus &
added_lines irlike sus &
!(removed_lines irlike sus) &
!(removed_lines irlike sus) &
(
(
     /* Baseline AGF */
     /* Baseline AGF */
     score := 1.0;
     score := 1.0;


     /* More AGF on "sweary" pages */
     /* More AGF on "sweary" pages */
     score := score + 0.2 * rcount("(?i)" + sus, old_wikitext);
     score := score + 0.2 * rcount("(?i)" + sus, old_wikitext);


     /* Added references */
     /* Added references */
     ref_score := (count("<ref", added_lines) - count("<ref", removed_lines));
     ref_score := (count("<ref", added_lines) - count("<ref", removed_lines));
     score := score + 2.0 * ref_score;
     score := score + 2.0 * ref_score;


     /* Added markup */
     /* Added markup */
     markup_score := (rcount("[[{|]", added_lines)) - (rcount("[[{|]", removed_lines));
     markup_score := (rcount("[[{|]", added_lines)) - (rcount("[[{|]", removed_lines));
     score = score + 0.1 * markup_score;
     score := score + 0.1 * markup_score;


     /* Added quotes or italics */
     /* Added quotes or italics */
     quote_score := (rcount("(?<!')''(?!')|\"", added_lines)) - rcount("(?<!')''(?!')|\"", added_lines);
     quote_score := (rcount("(?<!')''(?!')|\"", added_lines)) - rcount("(?<!')''(?!')|\"", added_lines);
     score = score + 0.5 * quote_score;
     score := score + 0.5 * quote_score;


     /* No summary */
     /* No summary */
     score := score - 0.5 * (summary irlike "^(?:/\*.*?\*/)?\s*$");
     score := score - 0.5 * (summary irlike "^(?:/\*.*?\*/)?\s*$");


     /* Did they add these words and do nothing else except adjust whitespace and punctuation? */
     /* 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));
     score := score - 2.0 * (norm(str_replace_regexp(added_lines, sus, "")) == norm(removed_lines));


     /* Multiple bad words */
     /* Multiple bad words */
     score := score - 0.5 * (rcount("(?i)" + sus, added_lines) - rcount("(?i)" + sus, removed_lines));
     score := score - 0.5 * (rcount("(?i)" + sus, added_lines) - rcount("(?i)" + sus, removed_lines));


     /* Long runs */
     /* Long runs */
     two_sus := "(?i)(?:(?:" + sus + ")\W*){2}";
     two_sus := "(?i)(?:(?:" + sus + ")\W*){2}";
     score := score - 2.0 * (rcount(two_sus, added_lines) - rcount(two_sus, removed_lines));
     score := score - 2.0 * (rcount(two_sus, added_lines) - rcount(two_sus, removed_lines));


     /* Large additions are probably more helpful */
     /* Large additions are probably more helpful */
     pinned_edit_delta := edit_delta < -1000 ? -1000 : edit_delta > 1000 ? 1000 : edit_delta;
     pinned_edit_delta := edit_delta < -1000 ? -1000 : edit_delta > 1000 ? 1000 : edit_delta;
     score := score + 0.001 * pinned_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 */
     /* 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));
     score := score - 1.0 * (rcount("\w+", added_lines) == rcount("\w+", removed_lines));


     /* Anying in all caps, not necessarily these words */
     /* Anying in all caps, not necessarily these words */
     score := score - 1.0 * (rcount("[A-Z]{4,}", added_lines) > rcount("[A-Z]{4,}", removed_lines));
     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 */
     /* Added plain text to the end of a single line */
     score := score - 1.0 * (
     score := score - 1.0 * (
             strpos(norm(added_lines), norm(removed_lines)) == 0 &
             strpos(norm(added_lines), norm(removed_lines)) == 0 &
             length(added_lines) == length(removed_lines) &
             length(added_lines) == length(removed_lines) &
             quote_score + ref_score + markup_score == 0
             quote_score + ref_score + markup_score == 0
     );
     );


     score < 0
     score < 0
)
)

Videos

Youtube | Vimeo | Bing

Websites

Google | Yahoo | Bing

Encyclopedia

Google | Yahoo | Bing

Facebook