This document describes how event hooks work in the AbuseFilter extension. For a more comprehensive guide to hooks, navigate to your root MediaWiki directory and read docs/Hooks.md. == Events and parameters == This is a list of known events and parameters; please add to it if you're going to add events to the AbuseFilter extension. 'AbuseFilter-builder': Allows overwriting of the builder values, i.e. names and descriptions of the AbuseFilter language like variables. &$realValues: Builder values 'AbuseFilter-deprecatedVariables': Allows adding deprecated variables. If a filter uses an old variable, the parser will automatically translate it to the new one. &$deprecatedVariables: array of deprecated variables, syntax: [ 'old_name' => 'new_name' ] 'AbuseFilter-computeVariable': Like AbuseFilter-interceptVariable but called if the requested method wasn't found. Return true to indicate that the method is known to the hook and was computed successful. $method: Method to generate the variable $vars: AbuseFilterVariableHolder $parameters: Parameters with data to compute the value &$result: Result of the computation 'AbuseFilter-contentToString': Called when converting a Content object to a string to which filters can be applied. If the hook function returns true, Content::getTextForSearchIndex() will be used for non-text content. $content: The Content object &$text: Set this to the desired text. 'AbuseFilter-filterAction': DEPRECATED! Use AbuseFilterAlterVariables instead. Allows overwriting of abusefilter variables in AbuseFilter::filterAction just before they're checked against filters. Note that you may specify custom variables in a saner way using other hooks: AbuseFilter-generateTitleVars, AbuseFilter-generateUserVars and AbuseFilter-generateGenericVars. $vars: AbuseFilterVariableHolder with variables $title: Title object 'AbuseFilterAlterVariables': Allows overwriting of abusefilter variables just before they're checked against filters. Note that you may specify custom variables in a saner way using other hooks: AbuseFilter-generateTitleVars, AbuseFilter-generateUserVars and AbuseFilter-generateGenericVars. $vars: AbuseFilterVariableHolder with variables $title: Title object target of the action $user: User object performer of the action 'AbuseFilter-generateTitleVars': Allows altering the variables generated for a title $vars: AbuseFilterVariableHolder $title: Title object $prefix: Variable name prefix $rc: RecentChange|null If the variables should be generated for an RC entry, this is the entry. Null if it's for the current action being filtered. 'AbuseFilter-generateUserVars': Allows altering the variables generated for a specific user $vars: AbuseFilterVariableHolder $user: User object $rc: RecentChange|null If the variables should be generated for an RC entry, this is the entry. Null if it's for the current action being filtered. 'AbuseFilter-generateGenericVars': Allows altering generic variables, i.e. independent from page and user $vars: AbuseFilterVariableHolder $rc: RecentChange|null If the variables should be generated for an RC entry, this is the entry. Null if it's for the current action being filtered. 'AbuseFilterGenerateVarsForRecentChange': Hook that allows extensions to generate variables from a RecentChange row with a non-standard model. The hooks `AbuseFilterGenerate(Title|User|Generic)Hook` should be used for computing single variables in standard RC rows. $generator: RCVariableGenerator $rc: RecentChange $vars: VariableHolder $contextUser: User 'AbuseFilter-interceptVariable': Called before a lazy-loaded variable is computed to be able to set it before the core code runs. Return false to make the function return right after. $method: Method to generate the variable $vars: AbuseFilterVariableHolder $parameters: Parameters with data to compute the value &$result: Result of the computation 'AbuseFilterShouldFilterAction': Called before filtering an action. If the current action should not be filtered, return false and add a useful reason to $skipReasons. $vars: AbuseFilterVariableHolder $title: Title object target of the action $user: User object performer of the action &$skipReasons: Array of reasons why the action should be skipped 'AbuseFilterGetDangerousActions': Allows specifying custom consequences which can harm the user and prevent the edit from being saved. &$actions: Array (string[]) of dangerous actions 'AbuseFilterCustomActions': Allows specifying custom actions. Callers should append to $actions, using the action name as (string) key, and the value should be a callable that takes two parameters, a MediaWiki\Extension\AbuseFilter\Consequence\Parameters and an array of raw action parameters, and returns a Consequence object. &$actions: Array (callable[]) of actions