19 # It's faster using the S modifier even though it will usually only be run once
27 if ( substr(
$line, -1, 1 ) ==
"\\" ) {
35 if ( $build ===
false ) {
37 } elseif ( strlen( $build ) + strlen(
$line ) > $batchSize ) {
38 $regexes[] = $regexStart .
39 str_replace(
'/',
'\/', preg_replace(
'|\\\*/|u',
'/', $build ) ) .
47 if ( $build !==
false ) {
48 $regexes[] = $regexStart .
49 str_replace(
'/',
'\/', preg_replace(
'|\\\*/|u',
'/', $build ) ) .
62 foreach ( $regexes as $regex ) {
63 Wikimedia\suppressWarnings();
65 $ok = preg_match( $regex,
'' );
66 Wikimedia\restoreWarnings();
68 if ( $ok ===
false ) {
84 preg_replace(
'/#.*$/',
'',
99 if ( self::validateRegexes( $regexes ) ) {
106 wfDebugLog(
'SpamBlacklist',
"Spam blacklist warning: bogus line in $fileName\n" );
124 if ( substr(
$line, -1, 1 ) ==
"\\" ) {
131 if ( self::validateRegexes( $regexes ) ) {
139 if ( !self::validateRegexes( $regexes ) ) {
170 if ( !
$source->isDisabled() ) {
wfDebugLog( $logGroup, $text, $dest='all', array $context=[])
Send a line to a supplementary debug log file, if configured, or main debug log if not.
wfMessage( $key,... $params)
This is the function for getting translated interface messages.
Base class for different kinds of blacklists.
getRegexStart()
Returns the start of the regex for matches.
getRegexEnd( $batchSize)
Returns the end of the regex for matches.
Utility class for working with blacklists.
static buildSafeRegexes( $lines, BaseBlacklist $blacklist, $fileName=false)
Do a sanity check on the batch regex.
static buildRegexes( $lines, BaseBlacklist $blacklist, $batchSize=4096)
Build a set of regular expressions matching URLs with the list of regex fragments.
static regexesFromMessage( $message, BaseBlacklist $blacklist)
Build a set of regular expressions from a MediaWiki message.
static regexesFromText( $source, BaseBlacklist $blacklist, $fileName=false)
Build a set of regular expressions from the given multiline input text, with empty lines and comments...
static stripLines( $lines)
Strip comments and whitespace, then remove blanks.
static validateRegexes( $regexes)
Confirm that a set of regexes is either empty or valid.
static getBadLines( $lines, BaseBlacklist $blacklist)
Returns an array of invalid lines.