OStatus support for people tags

This commit is contained in:
Shashi Gowda
2011-03-07 00:45:34 +05:30
parent b372ed721d
commit c335db4bbc
13 changed files with 1151 additions and 47 deletions

View File

@@ -64,13 +64,6 @@ class OStatusQueueHandler extends QueueHandler
}
}
foreach ($notice->getReplies() as $profile_id) {
$oprofile = Ostatus_profile::staticGet('profile_id', $profile_id);
if ($oprofile) {
$this->pingReply($oprofile);
}
}
if (!empty($this->notice->reply_to)) {
$replyTo = Notice::staticGet('id', $this->notice->reply_to);
if (!empty($replyTo)) {
@@ -82,6 +75,14 @@ class OStatusQueueHandler extends QueueHandler
}
}
}
foreach ($notice->getProfileTags() as $ptag) {
$oprofile = Ostatus_profile::staticGet('peopletag_id', $ptag->id);
if (!$oprofile) {
$this->pushPeopletag($ptag);
}
}
return true;
}
@@ -107,6 +108,17 @@ class OStatusQueueHandler extends QueueHandler
$this->pushFeed($feed, array($this, 'groupFeedForNotice'), $group_id);
}
function pushPeopletag($ptag)
{
// For a local people tag, ping the PuSH hub to update its feed.
// Updates may come from either a local or a remote user.
$feed = common_local_url('ApiTimelineList',
array('id' => $ptag->id,
'user' => $ptag->tagger,
'format' => 'atom'));
$this->pushFeed($feed, array($this, 'peopletagFeedForNotice'), $ptag);
}
function pingReply($oprofile)
{
if ($this->user) {
@@ -225,4 +237,13 @@ class OStatusQueueHandler extends QueueHandler
return $feed;
}
function peopletagFeedForNotice($ptag)
{
$atom = new AtomListNoticeFeed($ptag);
$atom->addEntryFromNotice($this->notice);
$feed = $atom->getString();
return $feed;
}
}