jenkins-bot has submitted this change and it was merged.
Change subject: Call normalizeTargets in MassMessageTargets::getTargets
......................................................................
Call normalizeTargets in MassMessageTargets::getTargets
Change-Id: Ie2c3813c916df51a06140b3d5fd532047debe210
---
M includes/MassMessage.php
M includes/MassMessageTargets.php
M includes/SpecialCreateMassMessageList.php
M includes/SpecialMassMessage.php
M tests/MassMessageTargetsTest.php
5 files changed, 22 insertions(+), 17 deletions(-)
Approvals:
Legoktm: Looks good to me, approved
jenkins-bot: Verified
diff --git a/includes/MassMessage.php b/includes/MassMessage.php
index 215bdda..a5f915c 100644
--- a/includes/MassMessage.php
+++ b/includes/MassMessage.php
@@ -316,9 +316,7 @@
$spamlist = self::getSpamlist( $data['spamlist'] );
// Get the array of pages to deliver to.
- $pages = MassMessageTargets::normalizeTargets(
- MassMessageTargets::getTargets( $spamlist )
- );
+ $pages = MassMessageTargets::getTargets( $spamlist );
// Log it.
self::logToWiki( $spamlist, $user, $data['subject'] );
diff --git a/includes/MassMessageTargets.php b/includes/MassMessageTargets.php
index 714a4ff..cc46bcc 100644
--- a/includes/MassMessageTargets.php
+++ b/includes/MassMessageTargets.php
@@ -15,30 +15,41 @@
* site: The hostname and port (if exists) of the wiki
*
* @param Title $spamlist
+ * @param $normalize Whether to normalize and deduplicate the targets
* @return array|null
*/
- public static function getTargets( Title $spamlist ) {
+ public static function getTargets( Title $spamlist, $normalize = true
) {
if ( !$spamlist->exists() && !$spamlist->inNamespace(
NS_CATEGORY ) ) {
return null;
}
if ( $spamlist->inNamespace( NS_CATEGORY ) ) {
- return self::getCategoryTargets( $spamlist );
+ $targets = self::getCategoryTargets( $spamlist );
} elseif ( $spamlist->hasContentModel( 'MassMessageListContent'
) ) {
- return self::getMassMessageListContentTargets(
$spamlist );
+ $targets = self::getMassMessageListContentTargets(
$spamlist );
} elseif ( $spamlist->hasContentModel( CONTENT_MODEL_WIKITEXT )
) {
- return self::getParserFunctionTargets( $spamlist );
+ $targets = self::getParserFunctionTargets( $spamlist );
} else {
- return null;
+ $targets = null;
+ }
+
+ if ( !$targets ) {
+ return $targets; // null or empty array
+ }
+
+ if ( $normalize ) {
+ return self::normalizeTargets( $targets );
+ } else {
+ return $targets;
}
}
/**
* Get array of normalized targets with duplicates removed
- * @param array $data
+ * @param array $data
* @return array
*/
- public static function normalizeTargets( array $data ) {
+ protected static function normalizeTargets( array $data ) {
global $wgNamespacesToConvert;
foreach ( $data as &$target ) {
diff --git a/includes/SpecialCreateMassMessageList.php
b/includes/SpecialCreateMassMessageList.php
index cfa1afe..60386e8 100644
--- a/includes/SpecialCreateMassMessageList.php
+++ b/includes/SpecialCreateMassMessageList.php
@@ -113,7 +113,7 @@
* @return array|null
*/
protected function getTargets( Title $source ) {
- $pages = MassMessageTargets::getTargets( $source );
+ $pages = MassMessageTargets::getTargets( $source, /* $normalize
= */ false );
if ( $pages === null ) {
return null;
}
diff --git a/includes/SpecialMassMessage.php b/includes/SpecialMassMessage.php
index e53f328..08d084e 100644
--- a/includes/SpecialMassMessage.php
+++ b/includes/SpecialMassMessage.php
@@ -264,9 +264,7 @@
// Output the number of recipients
$spamlist = MassMessage::getSpamlist( $data['spamlist'] );
- $targets = MassMessageTargets::normalizeTargets(
- MassMessageTargets::getTargets( $spamlist )
- );
+ $targets = MassMessageTargets::getTargets( $spamlist );
$infoFieldset = Xml::fieldset(
$this->msg( 'massmessage-fieldset-info' )->text(),
$this->msg( 'massmessage-preview-count' )->numParams(
count( $targets ) )->parse()
diff --git a/tests/MassMessageTargetsTest.php b/tests/MassMessageTargetsTest.php
index 8ce1e38..19489b7 100644
--- a/tests/MassMessageTargetsTest.php
+++ b/tests/MassMessageTargetsTest.php
@@ -45,9 +45,7 @@
public function testGetParserFunctionTargets( $text, $check ) {
$title = Title::newFromText( 'Input list' );
MassMessageTest::updatePage( $title, $text );
- $data = MassMessageTargets::normalizeTargets(
- MassMessageTargets::getTargets( $title )
- );
+ $data = MassMessageTargets::getTargets( $title );
if ( empty( $check ) ) {
// Check that the spamlist is empty
--
To view, visit https://gerrit.wikimedia.org/r/161683
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: Ie2c3813c916df51a06140b3d5fd532047debe210
Gerrit-PatchSet: 2
Gerrit-Project: mediawiki/extensions/MassMessage
Gerrit-Branch: master
Gerrit-Owner: Wctaiwan <[email protected]>
Gerrit-Reviewer: Legoktm <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits