diff options
author | Evan Prodromou <evan@status.net> | 2010-02-23 16:02:27 -0500 |
---|---|---|
committer | Evan Prodromou <evan@status.net> | 2010-02-23 16:02:27 -0500 |
commit | b09304a6c4553044983176fb2740206777868378 (patch) | |
tree | 612381c27789be05070d4e7ca03d8f05fff58d5e /plugins/OStatus/classes/Ostatus_profile.php | |
parent | a0c255e231a84cf77554cc3c0a095eae7b0ffd9c (diff) | |
parent | 90d34b26c66ceb5d37a9c2782356b46361a523cc (diff) |
Merge branch 'testing' of git@gitorious.org:statusnet/mainline into testing
Conflicts:
plugins/OStatus/OStatusPlugin.php
Diffstat (limited to 'plugins/OStatus/classes/Ostatus_profile.php')
-rw-r--r-- | plugins/OStatus/classes/Ostatus_profile.php | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/plugins/OStatus/classes/Ostatus_profile.php b/plugins/OStatus/classes/Ostatus_profile.php index e8cc13c6c..91b957fa2 100644 --- a/plugins/OStatus/classes/Ostatus_profile.php +++ b/plugins/OStatus/classes/Ostatus_profile.php @@ -347,6 +347,29 @@ class Ostatus_profile extends Memcached_DataObject } /** + * Check if this remote profile has any active local subscriptions, and + * if not drop the PuSH subscription feed. + * + * @return boolean + */ + public function garbageCollect() + { + if ($this->isGroup()) { + $members = $this->localGroup()->getMembers(0, 1); + $count = $members->N; + } else { + $count = $this->localProfile()->subscriberCount(); + } + if ($count == 0) { + common_log(LOG_INFO, "Unsubscribing from now-unused remote feed $oprofile->feeduri"); + $this->unsubscribe(); + return true; + } else { + return false; + } + } + + /** * Send an Activity Streams notification to the remote Salmon endpoint, * if so configured. * @@ -379,7 +402,8 @@ class Ostatus_profile extends Memcached_DataObject 'xmlns:activity' => 'http://activitystrea.ms/spec/1.0/', 'xmlns:thr' => 'http://purl.org/syndication/thread/1.0', 'xmlns:georss' => 'http://www.georss.org/georss', - 'xmlns:ostatus' => 'http://ostatus.org/schema/1.0'); + 'xmlns:ostatus' => 'http://ostatus.org/schema/1.0', + 'xmlns:poco' => 'http://portablecontacts.net/spec/1.0'); $entry = new XMLStringer(); $entry->elementStart('entry', $attributes); |