/* 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);
return _('No such user.');
}
+ return subs_subscribe_to($user, $other);
+}
+
+function subs_subscribe_to($user, $other) {
+
if ($user->isSubscribed($other)) {
return _('Already subscribed!.');
}
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) {
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!.');
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;
-
}