X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;ds=sidebyside;f=lib%2Fsubs.php;h=165bbaa8ff7a4bbdc09429f3b703e55d6407846d;hb=1d29ba83150bdd7a23e497ca9a743ac2b6158b6f;hp=383bfa007023c9ba0152e4b1860cfc14475f6ff2;hpb=92645bbc578fafeb6816a44b8cf9cd594ffb5bd7;p=quix0rs-gnu-social.git diff --git a/lib/subs.php b/lib/subs.php index 383bfa0070..165bbaa8ff 100644 --- a/lib/subs.php +++ b/lib/subs.php @@ -1,7 +1,7 @@ . */ -if (!defined('LACONICA')) { exit(1); } +if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } -require_once('XMPPHP/XMPP.php'); - -/* Subscribe $user to nickname $other_nickname - Returns true or an error message. -*/ -function subs_subscribe_user($user,$other_nickname) { - - $other = User::staticGet('nickname', $other_nickname); - - if (!$other) { - return _('No such user.'); - } - - if ($user->isSubscribed($other)) { - return _('Already subscribed!.'); - } - - if (!$user->subscribeTo($other)) { - return _('Could not subscribe.'); - return; - } - - subs_notify($other, $user); - - if ($other->autosubscribe && !$other->isSubscribed($user)) { - if (!$other->subscribeTo($user)) { - return _('Could not subscribe other to you.'); - } - subs_notify($user, $other); - } - - return true; - -} - -function subs_notify($listenee, $listener) { - # XXX: add other notifications (Jabber, SMS) here - # XXX: queue this and handle it offline - # XXX: Whatever happens, do it in Twitter-like API, too - subs_notify_email($listenee, $listener); -} +/* Subscribe user $user to other user $other. + * Note: $other must be a local user, not a remote profile. + * Because the other way is quite a bit more complicated. + */ -function subs_notify_email($listenee, $listener) { - mail_subscribe_notify($listenee, $listener); +function subs_subscribe_to($user, $other) +{ + try { + Subscription::start($user->getProfile(), $other); + return true; + } catch (Exception $e) { + return $e->getMessage(); + } } - -/* Unsubscribe $user from nickname $other_nickname - Returns true or an error message. -*/ -function subs_unsubscribe_user($user, $other_nickname) { - - $other = User::staticGet('nickname', $other_nickname); - if (!$other) - return _('No such user.'); - - if (!$user->isSubscribed($other)) - return _('Not subscribed!.'); - - $sub = DB_DataObject::factory('subscription'); - - $sub->subscriber = $user->id; - $sub->subscribed = $other->id; - - $sub->find(true); - - // note we checked for existence above - - if (!$sub->delete()) - return _('Couldn\'t delete subscription.'); - - return true; - +function subs_unsubscribe_to($user, $other) +{ + try { + Subscription::cancel($user->getProfile(), $other); + return true; + } catch (Exception $e) { + return $e->getMessage(); + } } -