Filter Module
Implements customizable filters that search for forbiddan words or phrases and removes them with a customizable response and excludable channels. Optionally also adds pressure to the user for triggering a filter, and if the response is set to !, doesn't remove the message at all, only adding pressure.
If you just want a basic case-insensitive word filter that respects spaces, use !setconfig filter.templates
with your filter name and this template: (?i)(^| )%%($| )
.
Example usage:
!setfilter badwords "This is a christian server, no swearing allowed." !setconfig filter.templates badwords (?i)(^| )%%($| ) !addfilter badwords hell !addfilter badwords "jesus christ"
Configuration
filter.channels
A collection of channel exclusions for each filter.filter.filters
A collection of word lists for each filter. These are combined into a single regex of the form(word1|word2|etc...)
, depending on the filter template.filter.pressure
The amount of pressure added to the user when the filter is triggered (defaults to 0).filter.responses
The response message sent by each filter when triggered. If this is set to!
, the bot won't respond AND she won't delete the message, only the pressure will be added.filter.templates
The template used to construct the regex.%%
is replaced with(word1|word2|etc...)
using the filter's word list. Example:\[\]\(\/r?%%[-) "]
is transformed into\[\]\(\/r?(word1|word2)[-) "]
SetFilter
!setfilter <filter> [response] [channels]
Sets the [filter] response to [response] and it's excluded channel list to [channels]. Creates the filter if it doesn't exist.
filter
The name of a filter.response
(optional) The message that will be sent when a message is deleted. Can be left blank, but quotes are mandatory.channels
(optional) All additional arguments should be channels to exclude the filter from.
AddFilter
!addfilter <filter> <arbitrary string>
Adds [arbitrary string] to [filter] and recompiles the filter regex.
filter
The name of a filter. The filter must exist. Create a new filter by using !setfilter.arbitrary string
Arbitrary string to add to the filter. Quotes aren't necessary, but cannot be empty.
RemoveFilter
!removefilter <filter> <arbitrary string>
Removes [arbitrary string] from [filter], then recompiles the regex.
filter
The name of a filter. The filter must exist. Create a new filter by using !setfilter.arbitrary string
Arbitrary string to remove from the filter. Quotes aren't necessary, but cannot be empty.
DeleteFilter
!deletefilter <filter>
Deletes a filter and all of its settings.
filter
The name of a filter. The filter must exist. Create a new filter by using !setfilter.
SearchFilter
!searchfilter <filter> [arbitrary string]
Returns all terms of the given filter that contain the given string.
filter
The name of the filter. The filter must exist. Create a new filter by using !setfilter.arbitrary string
(optional) Arbitrary string to add to filter. If not provided, will simply return entire contents of the filter.