Legoktm has uploaded a new change for review.
https://gerrit.wikimedia.org/r/78930
Change subject: Fix logging of failures
......................................................................
Fix logging of failures
This commit adds the missing i18n messages for the action, and simplifies
the function to log with.
A LogFormatter was added so we can use <code></code> tags within the message.
Change-Id: I82bda87407307f1309bccacbbba48ed5ff2e3c60
---
M MassMessage.i18n.php
M MassMessage.php
M MassMessageJob.php
A MassMessageLogFormatter.php
4 files changed, 31 insertions(+), 7 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/MassMessage
refs/changes/30/78930/1
diff --git a/MassMessage.i18n.php b/MassMessage.i18n.php
index 530ce93..6f046b8 100644
--- a/MassMessage.i18n.php
+++ b/MassMessage.i18n.php
@@ -36,6 +36,7 @@
'log-name-massmessage' => 'Mass message log',
'log-description-massmessage' => 'These events track users sending
messages through [[Special:MassMessage]].',
'logentry-massmessage-send' => '$1 {{GENDER:$2|sent a message}} to $3',
+ 'logentry-massmessage-failure' => 'Delivery of "$4" to $3 failed with
an error code of <code>$5</code>',
'massmessage-cannot-rename' => 'This is a system account and cannot be
renamed.',
);
@@ -86,6 +87,9 @@
'log-name-massmessage' => 'Log page title',
'log-description-massmessage' => 'Log page description',
'logentry-massmessage-send' => '{{logentry}}',
+ 'logentry-massmessage-failure' => '{{logentry}}
+* $4 is the subject line of the message
+* $5 is the API error code. This will always be in English.',
'massmessage-cannot-rename' => 'Error message a user sees when they try
renaming the bot account.',
);
diff --git a/MassMessage.php b/MassMessage.php
index 8023088..5dcdc48 100644
--- a/MassMessage.php
+++ b/MassMessage.php
@@ -60,6 +60,7 @@
$wgAutoloadClasses['MassMessageHooks'] = "$dir/MassMessage.hooks.php";
$wgAutoloadClasses['SpecialMassMessage'] = "$dir/SpecialMassMessage.php";
$wgAutoloadClasses['MassMessageJob'] = "$dir/MassMessageJob.php";
+$wgAutoloadClasses['MassMessageLogFormatter'] =
"$dir/MassMessageLogFormatter.php";
$wgJobClasses['massmessageJob'] = 'MassMessageJob';
$wgHooks['ParserFirstCallInit'][] = 'MassMessageHooks::onParserFirstCallInit';
@@ -79,6 +80,7 @@
$wgLogTypes[] = 'massmessage';
$wgLogActionsHandlers['massmessage/*'] = 'LogFormatter';
+$wgLogActionsHandlers['massmessage/failure'] = 'MassMessageLogFormatter';
// User rights
$wgAvailableRights[] = 'massmessage'; // Local messaging
diff --git a/MassMessageJob.php b/MassMessageJob.php
index 87c8df7..e8c5d10 100644
--- a/MassMessageJob.php
+++ b/MassMessageJob.php
@@ -52,18 +52,16 @@
/**
* Log any message failures on the submission site.
*
- * @param $title Title
- * @param $subject string
* @param $reason string
*/
- function logLocalFailure( $title, $subject, $reason ) {
+ function logLocalFailure( $reason ) {
$logEntry = new ManualLogEntry( 'massmessage', 'failure' );
$logEntry->setPerformer( MassMessage::getMessengerUser() );
- $logEntry->setTarget( $title );
- $logEntry->setComment( $subject );
+ $logEntry->setTarget( $this->title );
$logEntry->setParameters( array(
- '4::reason' => $reason,
+ '4::subject' => $this->params['subject'],
+ '5::reason' => $reason,
) );
$logid = $logEntry->insert();
@@ -121,7 +119,7 @@
try {
$api->execute();
} catch ( UsageException $e ) {
- $this->logLocalFailure( $this->title,
$this->params['subject'], $e->getCodeString() );
+ $this->logLocalFailure( $e->getCodeString() );
}
}
}
diff --git a/MassMessageLogFormatter.php b/MassMessageLogFormatter.php
new file mode 100644
index 0000000..94cdb6a
--- /dev/null
+++ b/MassMessageLogFormatter.php
@@ -0,0 +1,20 @@
+<?php
+
+/**
+ * Log formatter for 'failure' entries on Special:Log/massmessage
+ * This lets us use <code></code> tags in the message
+ */
+
+class MassMessageLogFormatter extends LogFormatter {
+
+ /**
+ * getActionMessage() typically returns a Message object, but
+ * if we return a string, it will just take that raw string and use it
+ *
+ * @return string
+ */
+ public function getActionMessage() {
+ $msg = parent::getActionMessage();
+ return $msg->parse();
+ }
+}
\ No newline at end of file
--
To view, visit https://gerrit.wikimedia.org/r/78930
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I82bda87407307f1309bccacbbba48ed5ff2e3c60
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/MassMessage
Gerrit-Branch: master
Gerrit-Owner: Legoktm <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits