MediaWiki  1.33.0
SpamBlacklist Class Reference
Inheritance diagram for SpamBlacklist:
Collaboration diagram for SpamBlacklist:

Public Member Functions

 doLogging (User $user, Title $title, $revId)
 Actually push the url change events post-save. More...
 
 filter (array $links, Title $title=null, $preventLog=false, $mode='check')
 
 getCurrentLinks (Title $title)
 Look up the links currently in the article, so we can ignore them on a second run. More...
 
 getRegexEnd ( $batchSize)
 Returns the end of the regex for matches. More...
 
 getRegexStart ()
 Returns the start of the regex for matches. More...
 
 isLoggingEnabled ()
 
 logFilterHit ( $title, $url)
 Logs the filter hit to Special:Log if $wgLogSpamBlacklistHits is enabled. More...
 
 logUrlChanges ( $oldLinks, $newLinks, $addedLinks)
 Diff added/removed urls and generate events for them. More...
 
 warmCachesForFilter (Title $title, array $entries)
 
- Public Member Functions inherited from BaseBlacklist
 __construct ( $settings=[])
 Constructor. More...
 
 clearCache ()
 Clear all primary blacklist cache keys. More...
 
 filter (array $links, Title $title, $preventLog=false)
 
 getBlacklists ()
 Fetch local and (possibly cached) remote blacklists. More...
 
 getLocalBlacklists ()
 Returns the local blacklist. More...
 
 getWhitelists ()
 Returns the (local) whitelist. More...
 

Public Attributes

const STASH_AGE_DYING = 150
 
const STASH_TTL = 180
 
- Public Attributes inherited from BaseBlacklist
int $expiryTime = 900
 
array $files = []
 Array of blacklist sources. More...
 
int $warningChance = 100
 Chance of receiving a warning when the filter is hit. More...
 
int $warningTime = 600
 

Protected Member Functions

 antiSpoof ( $text)
 Apply some basic anti-spoofing to the links before they get filtered, see. More...
 
 getBlacklistType ()
 Returns the code for the blacklist implementation. More...
 

Private Member Functions

 logUrlChange ( $url, $action)
 Queue log data about change for a url addition or removal. More...
 

Private Attributes

array[] $urlChangeLog = []
 Changes to external links, for logging purposes. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from BaseBlacklist
static addBlacklistType ( $type, $class)
 Adds a blacklist class to the registry. More...
 
static getBlacklistTypes ()
 Return the array of blacklist types currently defined. More...
 
static getEmailBlacklist ()
 
static getInstance ( $type)
 Returns an instance of the given blacklist. More...
 
static getSpamBlacklist ()
 
static getTypeFromTitle (Title $title)
 Returns the type of blacklist from the given title. More...
 
static isLocalSource (Title $title)
 Check if the given local page title is a spam regex source. More...
 
- Protected Attributes inherited from BaseBlacklist
bool array $regexes = false
 Array containing regexes to test against. More...
 

Detailed Description

Definition at line 10 of file SpamBlacklist.php.

Member Function Documentation

◆ antiSpoof()

SpamBlacklist::antiSpoof (   $text)
protected

Apply some basic anti-spoofing to the links before they get filtered, see.

Bug:
12896
Parameters
string$text
Returns
string

Definition at line 37 of file SpamBlacklist.php.

◆ doLogging()

SpamBlacklist::doLogging ( User  $user,
Title  $title,
  $revId 
)

Actually push the url change events post-save.

Parameters
User$user
Title$title
int$revId

Definition at line 214 of file SpamBlacklist.php.

References $title, $urlChangeLog, $user, DeferredUpdates\addCallableUpdate(), as, isLoggingEnabled(), and use.

◆ filter()

SpamBlacklist::filter ( array  $links,
Title  $title = null,
  $preventLog = false,
  $mode = 'check' 
)
Parameters
string[]$linksAn array of links to check against the blacklist
Title | null$titleThe title of the page to which the filter shall be applied. This is used to load the old links already on the page, so the filter is only applied to links that got added. If not given, the filter is applied to all $links.
bool$preventLogWhether to prevent logging of hits. Set to true when the action is testing the links rather than attempting to save them (e.g. the API spamblacklist action)
string$modeEither 'check' or 'stash'
Returns
string[]|bool Matched text(s) if the edit should not be allowed; false otherwise

Definition at line 55 of file SpamBlacklist.php.

References $cache, $matches, $title, $wgRequest, as, captcha-old\count, BaseBlacklist\getBlacklists(), getBlacklistType(), getCurrentLinks(), ObjectCache\getLocalClusterInstance(), BaseBlacklist\getWhitelists(), isLoggingEnabled(), logFilterHit(), logUrlChanges(), and wfDebugLog().

Referenced by warmCachesForFilter().

◆ getBlacklistType()

SpamBlacklist::getBlacklistType ( )
protected

Returns the code for the blacklist implementation.

Returns
string

Reimplemented from BaseBlacklist.

Definition at line 25 of file SpamBlacklist.php.

Referenced by filter().

◆ getCurrentLinks()

SpamBlacklist::getCurrentLinks ( Title  $title)

Look up the links currently in the article, so we can ignore them on a second run.

WARNING: I can add more of the same link with no problem here.

Parameters
Title$title
Returns
array

Definition at line 273 of file SpamBlacklist.php.

References $cache, $dbr, $fname, $title, array(), DB_REPLICA, ObjectCache\getMainWANInstance(), use, and wfGetDB().

Referenced by filter().

◆ getRegexEnd()

SpamBlacklist::getRegexEnd (   $batchSize)

Returns the end of the regex for matches.

Parameters
int$batchSize
Returns
string

Reimplemented from BaseBlacklist.

Definition at line 313 of file SpamBlacklist.php.

◆ getRegexStart()

SpamBlacklist::getRegexStart ( )

Returns the start of the regex for matches.

Returns
string

Reimplemented from BaseBlacklist.

Definition at line 303 of file SpamBlacklist.php.

◆ isLoggingEnabled()

SpamBlacklist::isLoggingEnabled ( )

Definition at line 179 of file SpamBlacklist.php.

References ExtensionRegistry\getInstance().

Referenced by doLogging(), filter(), and logUrlChanges().

◆ logFilterHit()

SpamBlacklist::logFilterHit (   $title,
  $url 
)

Logs the filter hit to Special:Log if $wgLogSpamBlacklistHits is enabled.

Parameters
Title$title
string$urlURL that the user attempted to add

Definition at line 323 of file SpamBlacklist.php.

References $title, class, and ExtensionRegistry\getInstance().

Referenced by filter().

◆ logUrlChange()

SpamBlacklist::logUrlChange (   $url,
  $action 
)
private

Queue log data about change for a url addition or removal.

Parameters
string$url
string$action'insert' or 'remove'

Definition at line 247 of file SpamBlacklist.php.

References wfDebugLog(), and wfParseUrl().

Referenced by logUrlChanges().

◆ logUrlChanges()

SpamBlacklist::logUrlChanges (   $oldLinks,
  $newLinks,
  $addedLinks 
)

Diff added/removed urls and generate events for them.

Parameters
string[]$oldLinks
string[]$newLinks
string[]$addedLinks

Definition at line 192 of file SpamBlacklist.php.

References as, isLoggingEnabled(), and logUrlChange().

Referenced by filter().

◆ warmCachesForFilter()

SpamBlacklist::warmCachesForFilter ( Title  $title,
array  $entries 
)
Parameters
Title$title
string[]$entries

Reimplemented from BaseBlacklist.

Definition at line 294 of file SpamBlacklist.php.

References $title, and filter().

Member Data Documentation

◆ $urlChangeLog

array [] SpamBlacklist::$urlChangeLog = []
private

Changes to external links, for logging purposes.

Definition at line 18 of file SpamBlacklist.php.

Referenced by doLogging().

◆ STASH_AGE_DYING

const SpamBlacklist::STASH_AGE_DYING = 150

Definition at line 12 of file SpamBlacklist.php.

◆ STASH_TTL

const SpamBlacklist::STASH_TTL = 180

Definition at line 11 of file SpamBlacklist.php.


The documentation for this class was generated from the following file: