]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
add sms broadcast to broadcasting
authorEvan Prodromou <evan@prodromou.name>
Sun, 20 Jul 2008 19:55:49 +0000 (15:55 -0400)
committerEvan Prodromou <evan@prodromou.name>
Sun, 20 Jul 2008 19:55:49 +0000 (15:55 -0400)
darcs-hash:20080720195549-84dde-4193f27f8efda497fbe55f1c514fe30e4dd8a69d.gz

lib/mail.php
lib/util.php

index 21a1c7a8f25dc8836e083df9a699b801d139c2df..c229414b077ff44a8159a0970a4e2b4c028858a7 100644 (file)
@@ -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);
+}
index 6f6f1dd249121be3f5ccc34a3ebd539a48a105df..e49bb374914ea7a8b249caf6a16d01e38508f877 100644 (file)
@@ -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;
 }