From 3372a98f8eddd619a4a1fa7108b726e3f26acfcc Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sun, 20 Jul 2008 15:55:49 -0400 Subject: [PATCH] add sms broadcast to broadcasting darcs-hash:20080720195549-84dde-4193f27f8efda497fbe55f1c514fe30e4dd8a69d.gz --- lib/mail.php | 32 ++++++++++++++++++++++++++++++++ lib/util.php | 8 +++++++- 2 files changed, 39 insertions(+), 1 deletion(-) diff --git a/lib/mail.php b/lib/mail.php index 21a1c7a8f2..c229414b07 100644 --- a/lib/mail.php +++ b/lib/mail.php @@ -157,3 +157,35 @@ function mail_new_incoming_address() { $suffix = mail_domain(); return $prefix . '@' . $suffix; } + +function mail_broadcast_notice_sms($notice) { + $user = new User(); + $user->smsnotify = 1; + $user->whereAdd('EXISTS (select subscriber from subscriptions where ' + ' subscriber = user.id and subscribed = ' . $notice->profile_id); + $user->whereAdd('sms is not null'); + + $cnt = $user->find(); + + while ($user->fetch()) { + mail_send_sms_notice($notice, $user); + } +} + +function mail_send_notice($notice, $user) { + $profile = $user->getProfile(); + $name = $profile->getBestName(); + $carrier = Sms_carrier::staticGet($user->carrier); + $sms_email = $carrier->toEmailAddress($user->sms); + $to = $name . ' <' . $sms_email . '>'; + $other = $notice->getProfile(); + + $headers = array(); + $headers['From'] = $user->incomingemail; + $headers['To'] = $name . ' <' . $sms_email . '>'; + $headers['Subject'] = sprintf(_('%s status on %s'), + $other->getBestName(), + common_exact_date($notice->created)); + $body = $notice->content; + mail_send($sms_email, $headers, $body); +} diff --git a/lib/util.php b/lib/util.php index 6f6f1dd249..e49bb37491 100644 --- a/lib/util.php +++ b/lib/util.php @@ -971,7 +971,13 @@ function common_real_broadcast($notice, $remote=false) { common_log(LOG_ERR, 'Error in jabber broadcast for notice ' . $notice->id); } } - // XXX: broadcast notices to SMS + if ($success) { + require_once(INSTALLDIR.'/lib/mail.php'); + $success = mail_broadcast_notice_sms($notice); + if (!$success) { + common_log(LOG_ERR, 'Error in sms broadcast for notice ' . $notice->id); + } + } // XXX: broadcast notices to other IM return $success; }