summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--plugins/OStatus/OStatusPlugin.php44
1 files changed, 44 insertions, 0 deletions
diff --git a/plugins/OStatus/OStatusPlugin.php b/plugins/OStatus/OStatusPlugin.php
index e1f3fd9d3..9e6d03177 100644
--- a/plugins/OStatus/OStatusPlugin.php
+++ b/plugins/OStatus/OStatusPlugin.php
@@ -335,4 +335,48 @@ class OStatusPlugin extends Plugin
common_log(LOG_DEBUG, "No ostatus profile for incoming feed $feedsub->uri");
}
}
+
+ function onEndSubscribe($subscriber, $other)
+ {
+ $user = User::staticGet('id', $subscriber->id);
+
+ if (empty($user)) {
+ return true;
+ }
+
+ $oprofile = Ostatus_profile::staticGet('profile_id', $other->id);
+
+ if (empty($oprofile)) {
+ return true;
+ }
+
+ // We have a local user subscribing to a remote profile; make the
+ // magic happen!
+
+ $oprofile->notify($subscriber, ActivityVerb::FOLLOW);
+
+ return true;
+ }
+
+ function onEndUnsubscribe($subscriber, $other)
+ {
+ $user = User::staticGet('id', $subscriber->id);
+
+ if (empty($user)) {
+ return true;
+ }
+
+ $oprofile = Ostatus_profile::staticGet('profile_id', $other->id);
+
+ if (empty($oprofile)) {
+ return true;
+ }
+
+ // We have a local user subscribing to a remote profile; make the
+ // magic happen!
+
+ $oprofile->notify($subscriber, ActivityVerb::UNFOLLOW);
+
+ return true;
+ }
}