*
* @file
*/
+use Wikimedia\Rdbms\LikeMatch;
/**
* Some functions to help implement an external link filter for spam control.
/**
* Check whether $content contains a link to $filterEntry
*
- * @param $content Content: content to check
- * @param string $filterEntry domainparts, see makeRegex() for more details
- * @return Integer: 0 if no match or 1 if there's at least one match
+ * @param Content $content Content to check
+ * @param string $filterEntry Domainparts, see makeRegex() for more details
+ * @return int 0 if no match or 1 if there's at least one match
*/
static function matchEntry( Content $content, $filterEntry ) {
if ( !( $content instanceof TextContent ) ) {
- //TODO: handle other types of content too.
+ // TODO: handle other types of content too.
// Maybe create ContentHandler::matchFilter( LinkFilter ).
// Think about a common base class for LinkFilter and MagicWord.
return 0;
$text = $content->getNativeData();
- $regex = LinkFilter::makeRegex( $filterEntry );
+ $regex = self::makeRegex( $filterEntry );
return preg_match( $regex, $text );
}
*
* @param string $filterEntry URL, if it begins with "*.", it'll be
* replaced to match any subdomain
- * @return String: regex pattern, for preg_match()
+ * @return string Regex pattern, for preg_match()
*/
private static function makeRegex( $filterEntry ) {
$regex = '!http://';
}
/**
- * Make an array to be used for calls to DatabaseBase::buildLike(), which
+ * Make an array to be used for calls to Database::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
* This function does the same as wfMakeUrlIndexes(), except it also takes care
* of adding wildcards
*
- * @param String $filterEntry domainparts
- * @param String $protocol protocol (default http://)
- * @return Array to be passed to DatabaseBase::buildLike() or false on error
+ * @param string $filterEntry Domainparts
+ * @param string $protocol Protocol (default http://)
+ * @return array|bool Array to be passed to Database::buildLike() or false on error
*/
public static function makeLikeArray( $filterEntry, $protocol = 'http://' ) {
- $db = wfGetDB( DB_MASTER );
+ $db = wfGetDB( DB_REPLICA );
$target = $protocol . $filterEntry;
$bits = wfParseUrl( $target );
* Filters an array returned by makeLikeArray(), removing everything past first
* pattern placeholder.
*
- * @param array $arr array to filter
- * @return array filtered array
+ * @param array $arr Array to filter
+ * @return array Filtered array
*/
public static function keepOneWildcard( $arr ) {
if ( !is_array( $arr ) ) {