]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - lib/subs.php
Twitter bridge - change regex to look for mb @-replies
[quix0rs-gnu-social.git] / lib / subs.php
index 383bfa007023c9ba0152e4b1860cfc14475f6ff2..51ae54059f8dda989a8e6ceeffc14b1900760390 100644 (file)
@@ -24,6 +24,7 @@ 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);
@@ -32,6 +33,11 @@ function subs_subscribe_user($user,$other_nickname) {
                return _('No such user.');
        }
 
+       return subs_subscribe_to($user, $other);
+}
+
+function subs_subscribe_to($user, $other) {
+
        if ($user->isSubscribed($other)) {
                return _('Already subscribed!.');
        }
@@ -43,15 +49,28 @@ function subs_subscribe_user($user,$other_nickname) {
 
        subs_notify($other, $user);
 
+       if (common_config('memcached', 'enabled')) {
+               $cache = new Memcache();
+               if ($cache->connect(common_config('memcached', 'server'), common_config('memcached', 'port'))) {
+                       $cache->delete(common_cache_key('user:notices_with_friends:' . $user->id));
+               }
+       }
+       
        if ($other->autosubscribe && !$other->isSubscribed($user)) {
                if (!$other->subscribeTo($user)) {
                        return _('Could not subscribe other to you.');
                }
+               if (common_config('memcached', 'enabled')) {
+                       $cache = new Memcache();
+                       if ($cache->connect(common_config('memcached', 'server'), common_config('memcached', 'port'))) {
+                               $cache->delete(common_cache_key('user:notices_with_friends:' . $other->id));
+                       }
+               }
+               
                subs_notify($user, $other);
        }
 
        return true;
-
 }
 
 function subs_notify($listenee, $listener) {
@@ -65,15 +84,21 @@ function subs_notify_email($listenee, $listener) {
        mail_subscribe_notify($listenee, $listener);
 }
 
-
 /* 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)
+
+       if (!$other) {
                return _('No such user.');
+       }
+
+       return subs_unsubscribe_to($user, $other);
+}
+
+function subs_unsubscribe_to($user, $other) {
 
        if (!$user->isSubscribed($other))
                return _('Not subscribed!.');
@@ -90,7 +115,13 @@ function subs_unsubscribe_user($user, $other_nickname) {
        if (!$sub->delete())
                return _('Couldn\'t delete subscription.');
 
+       if (common_config('memcached', 'enabled')) {
+               $cache = new Memcache();
+               if ($cache->connect(common_config('memcached', 'server'), common_config('memcached', 'port'))) {
+                       $cache->delete(common_cache_key('user:notices_with_friends:' . $user->id));
+               }
+       }
+       
        return true;
-
 }