Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 15
0.00% covered (danger)
0.00%
0 / 2
CRAP
0.00% covered (danger)
0.00%
0 / 1
ListContentSpamlistLookup
0.00% covered (danger)
0.00%
0 / 15
0.00% covered (danger)
0.00%
0 / 2
20
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
0.00% covered (danger)
0.00%
0 / 14
0.00% covered (danger)
0.00%
0 / 1
12
1<?php
2
3namespace MediaWiki\MassMessage\Lookup;
4
5use MediaWiki\MassMessage\Content\MassMessageListContent;
6use MediaWiki\MassMessage\UrlHelper;
7use MediaWiki\MediaWikiServices;
8use MediaWiki\Revision\SlotRecord;
9use MediaWiki\Title\Title;
10use MediaWiki\WikiMap\WikiMap;
11
12class ListContentSpamlistLookup extends SpamlistLookup {
13
14    /**
15     * @var Title
16     */
17    protected $spamlist;
18
19    /**
20     * @param Title $spamlist
21     */
22    public function __construct( Title $spamlist ) {
23        $this->spamlist = $spamlist;
24    }
25
26    /**
27     * Get an array of targets from a page with the MassMessageListContent model.
28     *
29     * @return array[]
30     */
31    public function fetchTargets() {
32        $services = MediaWikiServices::getInstance();
33
34        $content = $services
35            ->getRevisionLookup()
36            ->getRevisionByTitle( $this->spamlist )
37            ->getContent( SlotRecord::MAIN );
38        '@phan-var MassMessageListContent $content';
39        $targets = $content->getValidTargets();
40        $currentWikiId = WikiMap::getCurrentWikiId();
41        foreach ( $targets as &$target ) {
42            if ( array_key_exists( 'site', $target ) ) {
43                $target['wiki'] = DatabaseLookup::getDBName( $target['site'] );
44            } else {
45                $target['site'] = UrlHelper::getBaseUrl( $services->getMainConfig()->get( 'CanonicalServer' ) );
46                $target['wiki'] = $currentWikiId;
47            }
48        }
49        return $targets;
50    }
51}