OStatus support for people tags
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user