mediawiki-extensions-AbuseF.../hooks.txt
Daimona Eaytoy db09ad81e0 Add a hook to allow computing variables from different types of RC rows
Bug: T115128
Change-Id: Ia6de35b70f491591ea6eb699106ba97c94510091
2021-02-01 14:57:10 +00:00

89 lines
4.7 KiB
Plaintext

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.
'AbuseFilter-generateVarsForRecentChange': 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