Differences between versions

ItemVersion from 19:32, 22 February 2026 by AnotherConsumerRightsPersonVersion from 03:02, 25 February 2026 by JakeL
Filter conditions
Conditions:
/* This filter was significantly based off of https://consumerrights.wiki/w/Special:AbuseFilter/2. See there for attribution. */
words := "https?://archive\\.(today|fo|is|li|md|ph|vn)";
/* 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 | */
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";


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