MediaWiki
master
|
Some functions to help implement an external link filter for spam control. More...
Static Public Member Functions | |
static | getIndexedUrlsNonReversed ( $urls) |
Converts a set of URLs to be able to compare them with existing indexes. More... | |
static | getProtocolPrefix ( $protocol) |
static | getQueryConditions ( $filterEntry, array $options=[]) |
Return query conditions which will match the specified string. More... | |
static | keepOneWildcard ( $arr) |
Filters an array returned by makeLikeArray(), removing everything past first pattern placeholder. More... | |
static | makeIndexes ( $url, $reverseDomain=true) |
Converts a URL into a format for el_index. More... | |
static | makeLikeArray ( $filterEntry, $protocol='http://') |
Make an array to be used for calls to Database::buildLike(), which will match the specified string. More... | |
static | matchEntry (Content $content, $filterEntry, $protocol='http://') |
Check whether $content contains a link to $filterEntry. More... | |
static | prepareProtocols () |
static | reverseIndexe ( $domainIndex) |
Public Attributes | |
const | VERSION = 1 |
Increment this when makeIndexes output changes. More... | |
Some functions to help implement an external link filter for spam control.
Another cool thing to do would be a web interface for fast spam removal.
Definition at line 43 of file LinkFilter.php.
|
static |
Converts a set of URLs to be able to compare them with existing indexes.
string[] | $urls | List of URLs to be indexed |
Definition at line 232 of file LinkFilter.php.
References MediaWiki\MainConfigNames\ExternalLinksSchemaMigrationStage, MediaWiki\MediaWikiServices\getInstance(), MediaWiki\ExternalLinks\LinkFilter\makeIndexes(), and SCHEMA_COMPAT_READ_OLD.
|
static |
Definition at line 399 of file LinkFilter.php.
References MediaWiki\MediaWikiServices\getInstance(), and MediaWiki\MainConfigNames\UrlProtocols.
|
static |
Return query conditions which will match the specified string.
There are several kinds of filter entry:
*.domain.com - Matches domain.com and www.domain.com domain.com - Matches domain.com or domain.com/ but not www.domain.com *.domain.com/x - Matches domain.com/xy or www.domain.com/xy. Also probably matches domain.com/foobar/xy due to limitations of LIKE syntax. domain.com/x - Matches domain.com/xy but not www.domain.com/xy 192.0.2.* - Matches any IP in 192.0.2.0/24. Can also have a path appended. [2001:db8::*] - Matches any IP in 2001:db8::/112. Can also have a path appended. [2001:db8:*] - Matches any IP in 2001:db8::/32. Can also have a path appended. foo@domain.com - With protocol 'mailto:', matches the email address foo@domain.com. *@domain.com - With protocol 'mailto:', matches any email address at domain.com, but not subdomains like foo@mail.domain.com
Asterisks in any other location are considered invalid.
string | $filterEntry | Filter entry, as described above |
array | $options | Options are:
|
Definition at line 304 of file LinkFilter.php.
References DB_REPLICA, MediaWiki\MainConfigNames\ExternalLinksSchemaMigrationStage, MediaWiki\MediaWikiServices\getInstance(), MediaWiki\ExternalLinks\LinkFilter\keepOneWildcard(), MediaWiki\ExternalLinks\LinkFilter\makeLikeArray(), SCHEMA_COMPAT_READ_OLD, and wfGetDB().
Referenced by MediaWiki\Specials\SpecialLinkSearch\getQueryInfo().
|
static |
Filters an array returned by makeLikeArray(), removing everything past first pattern placeholder.
array | $arr | Array to filter |
Definition at line 513 of file LinkFilter.php.
Referenced by MediaWiki\ExternalLinks\LinkFilter\getQueryConditions().
|
static |
Converts a URL into a format for el_index.
string | $url | |
bool | $reverseDomain |
Definition at line 171 of file LinkFilter.php.
References wfParseUrl().
Referenced by MediaWiki\ExternalLinks\LinkFilter\getIndexedUrlsNonReversed(), and MediaWiki\Deferred\LinksUpdate\ExternalLinksTable\insertLink().
|
static |
Make an array to be used for calls to Database::buildLike(), which will match the specified string.
This function does the same as LinkFilter::makeIndexes(), except it also takes care of adding wildcards
string | $filterEntry | Filter entry, |
string | $protocol | Protocol (default http://) |
Definition at line 442 of file LinkFilter.php.
References DB_REPLICA, wfGetDB(), and wfParseUrl().
Referenced by MediaWiki\ExternalLinks\LinkFilter\getQueryConditions().
|
static |
Check whether $content contains a link to $filterEntry.
Content | $content | Content to check |
string | $filterEntry | Domainparts, see makeRegex() for more details |
string | $protocol | 'http://' or 'https://' |
Definition at line 58 of file LinkFilter.php.
References $content.
|
static |
Definition at line 417 of file LinkFilter.php.
References MediaWiki\MediaWikiServices\getInstance(), and MediaWiki\MainConfigNames\UrlProtocols.
|
static |
Definition at line 252 of file LinkFilter.php.
References wfParseUrl().
Referenced by MediaWiki\Specials\SpecialLinkSearch\formatResult(), and MediaWiki\ExternalLinks\ExternalLinksLookup\getExternalLinksForPage().
const MediaWiki\ExternalLinks\LinkFilter::VERSION = 1 |
Increment this when makeIndexes output changes.
It'll cause maintenance/refreshExternallinksIndex.php to run from update.php.
Definition at line 48 of file LinkFilter.php.