Editing filter 1,297 (see also a graph of recent actions)
Filter parameters
Filter ID:1,297

Description:

(publicly viewable)
Filter hits: 8,266 hits
Statistics:Of the last 75,773 actions, this filter has matched 257 (0.34%). On average, its run time is 1.7 ms, and it consumes 1.4 conditions of the condition limit.
Conditions:
( documentation)
sus := "(?x)\b(?: #Common words a[ ]fraud |adolf[ ]hitler |amazing |anal |ass+ |ahh+ |bald |balls |big[ ]black |boobs |booty |bum |butt |caca |cheeks |ching[ ]chong |cool(?:est)? |creeps? |cum |daddy |dumb? |fart(?:ed|ing|s)? |fat |gay(?:est|s)? |haha |hehe |hello |hes |hola |(?<!\S)hi(?!\S) |i[ ](?:eat|like|love|hate) |idk |is[ ](?:bad|fake) |is[ ]the[ ](?:best|worst) |m[ou]m(?:my)? |morons? |nonces? |nuh |oh[ ]no |omg |pedos? |pee+ |poo+ |porn(hub|o)? |puta |racists? |retards? |sexy |scammers? |scumbags? |smell[ys] |stink[ys] |stupid |subscribe[ ]to |suck(?:ed|ing|s)? |tits |toes |turd |twat |(?<!\S)ur(?!\S) |vaginas? |yall |yummy #Memes |among[ ]us |caseoh |fortnite |roblox |ronaldo |sigmas? |the[ ]goat |womp )\b"; page_namespace == 0 & !("confirmed" in user_groups) & edit_delta < 500 & ( match := get_matches("(?i)" + sus, added_lines)[0]; match & ( escaped_match := "(?:\b" + rescape(match) + "\b)"; !((removed_lines + "\n" + page_title) irlike sus) & !((old_wikitext + "\n" + added_links) irlike escaped_match) & ( ref_cnt := count("<ref", added_lines) - count("<ref", removed_lines); ref_cnt <= 0 ) ) ) & ( /* Baseline AGF */ score := 0.5; /* More AGF on "sweary" pages (no need to include all of 384 here; just what's common in existing pages */ score := score + 0.25 * rcount("(?i)fuck|\bshit|bitch|" + sus, old_wikitext); /* More AGF on fiction or music related pages */ score := score + 2.0 * (new_wikitext irlike "(?x) category:.*(?:films|shows|books|series|studios|episodes|bands|musical[ ]groups|albums|songs) |discography |filmography "); /* More points for "complex" diffs */ score := score + 0.1 * rcount("(?m)^@@", edit_diff); /* More points for a long summary, unless it's one of the mobile suggestions */ sum := get_matches("^(?:/\*.*?\*/)?\s*(.*)\s*$", summary)[1]; if !(sum irlike "added content|fixed typo") then ( score := score + 0.02 * length(sum); ) end; /* Added quotes or italics */ quote := "(?<!')''(?!')|[\"\x{201C}\x{201D}]"; quote_cnt := (rcount(quote, added_lines)) - rcount(quote, removed_lines); clamped_quote_cnt := quote_cnt < 0 ? 0 : quote_cnt; score := score + 0.5 * clamped_quote_cnt; /* Added or removed markup */ markup_cnt := (rcount("[[\]{}|*#=]", added_lines)) - (rcount("[[\]{}|*#=]", removed_lines)); clamped_markup_cnt := markup_cnt < -10 ? -10 : markup_cnt; score := score + 0.1 * clamped_markup_cnt; /* Removed references */ score := score - 2.0 * (ref_cnt < 0); /* Unencyclopedic language */ bonus_words := "\b(?:i|me|my|your?)\b"; score := score - 0.5 * ( added_lines irlike bonus_words & !(removed_lines irlike bonus_words) & !(match irlike bonus_words) /* Avoid double-counting "i like", etc. */ ); /* Did they add the matched word and do nothing else except adjust whitespace and punctuation? */ score := score - 2.0 * (rmwhitespace(rmspecials(str_replace_regexp(added_lines, match, ""))) == rmwhitespace(rmspecials(removed_lines))); /* Multiple bad words (different from the first match; if that has one legit. use, it has many) */ extra_cnt := rcount("(?i)(?!" + escaped_match + ")" + sus, added_lines); clamped_extra_cnt := extra_cnt > 4 ? 4 : extra_cnt; score := score - 0.5 * clamped_extra_cnt; /* Back-to-back bad words */ score := score - 2.5 * (added_lines irlike ("(?:(?:" + sus + ")\W*){2}")); /* 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)); /* Match contains at least one all-caps word */ score := score - 1.0 * (match rlike '\b[A-Z]{2,}\b'); if (!quote_cnt & !markup_cnt) then ( /* Added plain text to the end of a single line */ score := score - 1.0 * ( strpos(rmwhitespace(added_lines), rmwhitespace(removed_lines)) != -1 & length(added_lines) == 1 & length(removed_lines) == 1 ); /* No changes at all to punctuation or markup */ score := score - 2.0 * (str_replace_regexp(added_lines, "[\w\s]", "") == str_replace_regexp(removed_lines, "[\w\s]", "")); ) end; /* Not much use of the shift key */ score := score - 1.0 * (rcount('[A-Z]', added_lines) == rcount('[A-Z]', removed_lines)); /* Link containing the matched word */ link := get_matches('<a href[^>]*title="([^"]*' + escaped_match + ')[^"]*[^>]*>', new_html); if (link[0]) then ( /* Red link */ if (link[0] contains 'class="new"') then ( score := score - 2.5; ) else ( /* Blue link, but not if it's the exact match, e.g. [[saturated fat]] but not [[fat]] */ if (length(sanitize(link[1])) > length(match)) then ( score := score + 2.5; ) end; ) end; ) end; /* Unbalanced markup */ score := score - 2.0 * ( rcount("[{\[]", added_lines) != rcount("[}\]]", added_lines) & rcount("[{\[]", old_wikitext) == rcount("[}\]]", old_wikitext) ); /* Nothing but letters and spaces between matched word and end of a line */ score := score - 2.0 * ( added_lines irlike ("(?m)" + escaped_match + "[a-z ]*$") ); /* No template or link markup between matched word and start or end of the page */ score := score - 2.0 * ( new_wikitext irlike (escaped_match + "[^}\]]*$|^[^{\[]*" + escaped_match) ); score < 0 )
Notes:
Flags:
Filter last modified: 21:25, 18 April 2024 by Suffusion of Yellow ( talk | contribs)
History: View this filter's history
Tools: Export this filter to another wiki
Actions to take when matched
Editing filter 1,297 (see also a graph of recent actions)
Filter parameters
Filter ID:1,297

Description:

(publicly viewable)
Filter hits: 8,266 hits
Statistics:Of the last 75,773 actions, this filter has matched 257 (0.34%). On average, its run time is 1.7 ms, and it consumes 1.4 conditions of the condition limit.
Conditions:
( documentation)
sus := "(?x)\b(?: #Common words a[ ]fraud |adolf[ ]hitler |amazing |anal |ass+ |ahh+ |bald |balls |big[ ]black |boobs |booty |bum |butt |caca |cheeks |ching[ ]chong |cool(?:est)? |creeps? |cum |daddy |dumb? |fart(?:ed|ing|s)? |fat |gay(?:est|s)? |haha |hehe |hello |hes |hola |(?<!\S)hi(?!\S) |i[ ](?:eat|like|love|hate) |idk |is[ ](?:bad|fake) |is[ ]the[ ](?:best|worst) |m[ou]m(?:my)? |morons? |nonces? |nuh |oh[ ]no |omg |pedos? |pee+ |poo+ |porn(hub|o)? |puta |racists? |retards? |sexy |scammers? |scumbags? |smell[ys] |stink[ys] |stupid |subscribe[ ]to |suck(?:ed|ing|s)? |tits |toes |turd |twat |(?<!\S)ur(?!\S) |vaginas? |yall |yummy #Memes |among[ ]us |caseoh |fortnite |roblox |ronaldo |sigmas? |the[ ]goat |womp )\b"; page_namespace == 0 & !("confirmed" in user_groups) & edit_delta < 500 & ( match := get_matches("(?i)" + sus, added_lines)[0]; match & ( escaped_match := "(?:\b" + rescape(match) + "\b)"; !((removed_lines + "\n" + page_title) irlike sus) & !((old_wikitext + "\n" + added_links) irlike escaped_match) & ( ref_cnt := count("<ref", added_lines) - count("<ref", removed_lines); ref_cnt <= 0 ) ) ) & ( /* Baseline AGF */ score := 0.5; /* More AGF on "sweary" pages (no need to include all of 384 here; just what's common in existing pages */ score := score + 0.25 * rcount("(?i)fuck|\bshit|bitch|" + sus, old_wikitext); /* More AGF on fiction or music related pages */ score := score + 2.0 * (new_wikitext irlike "(?x) category:.*(?:films|shows|books|series|studios|episodes|bands|musical[ ]groups|albums|songs) |discography |filmography "); /* More points for "complex" diffs */ score := score + 0.1 * rcount("(?m)^@@", edit_diff); /* More points for a long summary, unless it's one of the mobile suggestions */ sum := get_matches("^(?:/\*.*?\*/)?\s*(.*)\s*$", summary)[1]; if !(sum irlike "added content|fixed typo") then ( score := score + 0.02 * length(sum); ) end; /* Added quotes or italics */ quote := "(?<!')''(?!')|[\"\x{201C}\x{201D}]"; quote_cnt := (rcount(quote, added_lines)) - rcount(quote, removed_lines); clamped_quote_cnt := quote_cnt < 0 ? 0 : quote_cnt; score := score + 0.5 * clamped_quote_cnt; /* Added or removed markup */ markup_cnt := (rcount("[[\]{}|*#=]", added_lines)) - (rcount("[[\]{}|*#=]", removed_lines)); clamped_markup_cnt := markup_cnt < -10 ? -10 : markup_cnt; score := score + 0.1 * clamped_markup_cnt; /* Removed references */ score := score - 2.0 * (ref_cnt < 0); /* Unencyclopedic language */ bonus_words := "\b(?:i|me|my|your?)\b"; score := score - 0.5 * ( added_lines irlike bonus_words & !(removed_lines irlike bonus_words) & !(match irlike bonus_words) /* Avoid double-counting "i like", etc. */ ); /* Did they add the matched word and do nothing else except adjust whitespace and punctuation? */ score := score - 2.0 * (rmwhitespace(rmspecials(str_replace_regexp(added_lines, match, ""))) == rmwhitespace(rmspecials(removed_lines))); /* Multiple bad words (different from the first match; if that has one legit. use, it has many) */ extra_cnt := rcount("(?i)(?!" + escaped_match + ")" + sus, added_lines); clamped_extra_cnt := extra_cnt > 4 ? 4 : extra_cnt; score := score - 0.5 * clamped_extra_cnt; /* Back-to-back bad words */ score := score - 2.5 * (added_lines irlike ("(?:(?:" + sus + ")\W*){2}")); /* 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)); /* Match contains at least one all-caps word */ score := score - 1.0 * (match rlike '\b[A-Z]{2,}\b'); if (!quote_cnt & !markup_cnt) then ( /* Added plain text to the end of a single line */ score := score - 1.0 * ( strpos(rmwhitespace(added_lines), rmwhitespace(removed_lines)) != -1 & length(added_lines) == 1 & length(removed_lines) == 1 ); /* No changes at all to punctuation or markup */ score := score - 2.0 * (str_replace_regexp(added_lines, "[\w\s]", "") == str_replace_regexp(removed_lines, "[\w\s]", "")); ) end; /* Not much use of the shift key */ score := score - 1.0 * (rcount('[A-Z]', added_lines) == rcount('[A-Z]', removed_lines)); /* Link containing the matched word */ link := get_matches('<a href[^>]*title="([^"]*' + escaped_match + ')[^"]*[^>]*>', new_html); if (link[0]) then ( /* Red link */ if (link[0] contains 'class="new"') then ( score := score - 2.5; ) else ( /* Blue link, but not if it's the exact match, e.g. [[saturated fat]] but not [[fat]] */ if (length(sanitize(link[1])) > length(match)) then ( score := score + 2.5; ) end; ) end; ) end; /* Unbalanced markup */ score := score - 2.0 * ( rcount("[{\[]", added_lines) != rcount("[}\]]", added_lines) & rcount("[{\[]", old_wikitext) == rcount("[}\]]", old_wikitext) ); /* Nothing but letters and spaces between matched word and end of a line */ score := score - 2.0 * ( added_lines irlike ("(?m)" + escaped_match + "[a-z ]*$") ); /* No template or link markup between matched word and start or end of the page */ score := score - 2.0 * ( new_wikitext irlike (escaped_match + "[^}\]]*$|^[^{\[]*" + escaped_match) ); score < 0 )
Notes:
Flags:
Filter last modified: 21:25, 18 April 2024 by Suffusion of Yellow ( talk | contribs)
History: View this filter's history
Tools: Export this filter to another wiki
Actions to take when matched

Videos

Youtube | Vimeo | Bing

Websites

Google | Yahoo | Bing

Encyclopedia

Google | Yahoo | Bing

Facebook