Differences between versions

ItemVersion from 15:43, 22 February 2026 by AnotherConsumerRightsPersonVersion from 19:32, 22 February 2026 by AnotherConsumerRightsPerson
Filter conditions
Conditions:
/* This filter was significantly based off of https://consumerrights.wiki/w/Special:AbuseFilter/2. See there for attribution. */
/* This filter was significantly based off of https://consumerrights.wiki/w/Special:AbuseFilter/2. See there for attribution. */
/* List of words we want to check for. The (?i) makes it case-insensitive,
/* List of words we want to check for. The (?i) makes it case-insensitive,
   and \b ensures we match whole words only. Each word is separated by | */
   and \b ensures we match whole words only. Each word is separated by | */
words := "(https://archive.today|https://archive.fo|https://archive.is|https://archive.li|https://archive.md|https://archive.ph|https://archive.vn|
words := "(https://archive.today|https://archive.fo|https://archive.is|https://archive.li|https://archive.md|https://archive.ph|https://archive.vn|
http://archive.today|http://archive.today|http://archive.fo|http://archive.is|http://archive.li|http://archive.md|http://archive.ph|http://archive.vn)\\b";
http://archive.today|http://archive.today|http://archive.fo|http://archive.is|http://archive.li|http://archive.md|http://archive.ph|http://archive.vn)\b";


/* The main filter has two parts connected by an & (AND) operator.
/* The main filter has two parts connected by an & (AND) operator.
   Both parts must be true for the filter to trigger */
   Both parts must be true for the filter to trigger */
(
(
     /* PART 1: Check if any spam words appear in these places */
     /* PART 1: Check if any spam words appear in these places */
     contains_any(lcase(added_lines),"<br><br>","<br/><br/>","<br>","<br>")|
     contains_any(lcase(added_lines),"<br><br>","<br/><br/>","<br>","<br>")|
     added_lines rlike words |  /* Look for words in the new text being added */
     added_lines rlike words |  /* Look for words in the new text being added */
/* PART 2: Check if user is NOT in any of our trusted groups */
/* PART 2: Check if user is NOT in any of our trusted groups */
!(
!(
     /* The ! at the start means "NOT" - so this checks if the user
     /* The ! at the start means "NOT" - so this checks if the user
     is NOT a member of any of these groups */
     is NOT a member of any of these groups */
     !"bot" in user_groups |          /* Check if user is a bot */
     !"bot" in user_groups |          /* Check if user is a bot */
     !"sysop" in user_groups      /* Check if user is a sysop */
     !"sysop" in user_groups      /* Check if user is a sysop */
     ))
     ))