Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
85.71% covered (warning)
85.71%
12 / 14
33.33% covered (danger)
33.33%
1 / 3
CRAP
0.00% covered (danger)
0.00%
0 / 1
CategorySpamlistLookup
85.71% covered (warning)
85.71%
12 / 14
33.33% covered (danger)
33.33%
1 / 3
4.05
0.00% covered (danger)
0.00%
0 / 1
 __construct
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 fetchTargets
100.00% covered (success)
100.00%
12 / 12
100.00% covered (success)
100.00%
1 / 1
2
 isCachable
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
1<?php
2
3namespace MediaWiki\MassMessage\Lookup;
4
5use MediaWiki\Category\Category;
6use MediaWiki\MassMessage\UrlHelper;
7use MediaWiki\MediaWikiServices;
8use MediaWiki\Title\Title;
9use MediaWiki\WikiMap\WikiMap;
10
11class CategorySpamlistLookup extends SpamlistLookup {
12
13    /**
14     * @var Title
15     */
16    protected $spamlist;
17
18    /**
19     * @param Title $spamlist
20     */
21    public function __construct( Title $spamlist ) {
22        $this->spamlist = $spamlist;
23    }
24
25    /**
26     * Get an array of targets from a category
27     * @return array[]
28     */
29    public function fetchTargets() {
30        $members = Category::newFromTitle( $this->spamlist )->getMembers();
31        $targets = [];
32        $currentWikiId = WikiMap::getCurrentWikiId();
33
34        /** @var Title $member */
35        foreach ( $members as $member ) {
36            $targets[] = [
37                'title' => $member->getPrefixedText(),
38                'wiki' => $currentWikiId,
39                'site' => UrlHelper::getBaseUrl(
40                    MediaWikiServices::getInstance()->getMainConfig()->get( 'CanonicalServer' )
41                ),
42            ];
43        }
44        return $targets;
45    }
46
47    /**
48     * @return false
49     */
50    public function isCachable() {
51        return false;
52    }
53}