MediaWiki  master
LinkFilter Class Reference

Some functions to help implement an external link filter for spam control. More...

List of all members.

Static Public Member Functions

static keepOneWildcard ($arr)
 Filters an array returned by makeLikeArray(), removing everything past first pattern placeholder.
static makeLikeArray ($filterEntry, $prot= 'http://')
 Make an array to be used for calls to DatabaseBase::buildLike(), which will match the specified string.
static matchEntry (Content $content, $filterEntry)
 Check whether $content contains a link to $filterEntry.

Static Private Member Functions

static makeRegex ($filterEntry)
 Builds a regex pattern for $filterEntry.

Detailed Description

Some functions to help implement an external link filter for spam control.

Todo:
implement the filter. Currently these are just some functions to help maintenance/cleanupSpam.php remove links to a single specified domain. The next thing is to implement functions for checking a given page against a big list of domains.

Another cool thing to do would be a web interface for fast spam removal.

Definition at line 34 of file LinkFilter.php.


Member Function Documentation

static LinkFilter::keepOneWildcard ( arr) [static]

Filters an array returned by makeLikeArray(), removing everything past first pattern placeholder.

Parameters:
$arrarray: array to filter
Returns:
array filtered array

Definition at line 155 of file LinkFilter.php.

References $value, and as.

Referenced by LinkSearchPage\getQueryInfo(), and ApiQueryBase\prepareUrlQuerySearchString().

static LinkFilter::makeLikeArray ( filterEntry,
prot = 'http://' 
) [static]

Make an array to be used for calls to DatabaseBase::buildLike(), which will match the specified string.

There are several kinds of filter entry: *.domain.com - Produces http://com.domain.%, matches domain.com and www.domain.com domain.com - Produces http://com.domain./%, matches domain.com or domain.com/ but not www.domain.com *.domain.com/x - Produces http://com.domain.%/x%, matches www.domain.com/xy domain.com/x - Produces http://com.domain./x%, matches domain.com/xy but not www.domain.com/xy

Asterisks in any other location are considered invalid.

Parameters:
$filterEntryString: domainparts
$protString: protocol
Returns:
Array to be passed to DatabaseBase::buildLike() or false on error

Definition at line 92 of file LinkFilter.php.

References $path, array(), and wfGetDB().

Referenced by CleanupSpam\execute(), LinkSearchPage\mungeQuery(), and ApiQueryBase\prepareUrlQuerySearchString().

static LinkFilter::makeRegex ( filterEntry) [static, private]

Builds a regex pattern for $filterEntry.

Parameters:
$filterEntryString: URL, if it begins with "*.", it'll be replaced to match any subdomain
Returns:
String: regex pattern, for preg_match()

Definition at line 64 of file LinkFilter.php.

Referenced by matchEntry().

static LinkFilter::matchEntry ( Content content,
filterEntry 
) [static]

Check whether $content contains a link to $filterEntry.

Parameters:
$contentContent: content to check
$filterEntryString: domainparts, see makeRegex() for more details
Returns:
Integer: 0 if no match or 1 if there's at least one match

Definition at line 43 of file LinkFilter.php.

References Content\getNativeData(), and makeRegex().

Referenced by CleanupSpam\cleanupArticle().


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