* only send the one invitation reminder per email address, regardless of how many invitations there are
* don't send invitations converted invitations * better error checking * more logging
This commit is contained in:
parent
e53dad35b8
commit
e7a4fee32b
|
@ -135,6 +135,11 @@ class EmailReminderPlugin extends Plugin
|
|||
if (self::sendReminderEmail($type, $object, $subject, $title)) {
|
||||
try {
|
||||
Email_reminder::recordReminder($type, $object, $day);
|
||||
common_log(
|
||||
LOG_INFO,
|
||||
"Sent {$type} reminder to {$object->address}.",
|
||||
__FILE__
|
||||
);
|
||||
} catch (Exception $e) {
|
||||
// oh noez
|
||||
common_log(LOG_ERR, $e->getMessage(), __FILE__);
|
||||
|
|
|
@ -86,7 +86,9 @@ class SiteConfirmReminderHandler extends QueueHandler
|
|||
break;
|
||||
case UserInviteReminderHandler::INVITE_REMINDER:
|
||||
$invitation = new Invitation();
|
||||
$invitation->find();
|
||||
// Only send one reminder (the latest one), regardless of how many invitations a user has
|
||||
$sql = 'SELECT * FROM (SELECT * FROM invitation WHERE registered_user_id IS NULL ORDER BY created DESC) invitees GROUP BY invitees.address';
|
||||
$invitation->query($sql);
|
||||
while ($invitation->fetch()) {
|
||||
try {
|
||||
$qm->enqueue(array($invitation, $opts), 'uinvrem');
|
||||
|
|
|
@ -141,6 +141,9 @@ class UserConfirmRegReminderHandler extends UserReminderHandler {
|
|||
return true;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
common_log(LOG_INFO, "No need to send registration reminder to {$confirm->address}.", __FILE__);
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -124,6 +124,9 @@ class UserInviteReminderHandler extends UserReminderHandler {
|
|||
return true;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
common_log(LOG_INFO, "No need to send invitation reminder to {$invitation->address}.", __FILE__);
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -90,19 +90,32 @@ case 'all':
|
|||
|
||||
if (have_option('u', 'universe')) {
|
||||
$sn = new Status_network();
|
||||
if ($sn->find()) {
|
||||
while ($sn->fetch()) {
|
||||
$server = $sn->getServerName();
|
||||
StatusNet::init($server);
|
||||
// Different queue manager, maybe!
|
||||
$qm = QueueManager::get();
|
||||
foreach ($reminders as $reminder) {
|
||||
extract($reminder);
|
||||
$qm->enqueue(array($type, $opts), 'siterem');
|
||||
if (!$quiet) { print "Sent pending {$type} reminders for {$server}.\n"; }
|
||||
try {
|
||||
if ($sn->find()) {
|
||||
while ($sn->fetch()) {
|
||||
try {
|
||||
$server = $sn->getServerName();
|
||||
StatusNet::init($server);
|
||||
// Different queue manager, maybe!
|
||||
$qm = QueueManager::get();
|
||||
foreach ($reminders as $reminder) {
|
||||
extract($reminder);
|
||||
$qm->enqueue(array($type, $opts), 'siterem');
|
||||
if (!$quiet) { print "Sent pending {$type} reminders for {$server}.\n"; }
|
||||
}
|
||||
} catch (Exception $e) {
|
||||
// keep going
|
||||
common_log(LOG_ERR, "Couldn't init {$server}.\n", __FILE__);
|
||||
if (!$quiet) { print "Couldn't init {$server}.\n"; }
|
||||
continue;
|
||||
}
|
||||
}
|
||||
if (!$quiet) { print "Done! Reminders sent to all unconfirmed addresses in the known universe.\n"; }
|
||||
}
|
||||
if (!$quiet) { print "Done! Reminders sent to all unconfirmed addresses in the known universe.\n"; }
|
||||
} catch (Exception $e) {
|
||||
if (!$quiet) { print $e->getMessage() . "\n"; }
|
||||
common_log(LOG_ERR, $e->getMessage(), __FILE__);
|
||||
exit(1);
|
||||
}
|
||||
} else {
|
||||
$qm = QueueManager::get();
|
||||
|
|
Loading…
Reference in New Issue
Block a user