OStatus fix: include feed profile at notice text processing time, fixes replies

This commit is contained in:
Brion Vibber 2010-02-11 19:44:03 +00:00
parent 71151b2583
commit 20714d1f35
2 changed files with 21 additions and 2 deletions

View File

@ -356,7 +356,6 @@ class Feedinfo extends Memcached_DataObject
// @fixme this might sort in wrong order if we get multiple updates
$notice = $munger->notice($index);
$notice->profile_id = $this->profile_id;
// Double-check for oldies
// @fixme this could explode horribly for multiple feeds on a blog. sigh
@ -368,7 +367,7 @@ class Feedinfo extends Memcached_DataObject
}
// @fixme need to ensure that groups get handled correctly
$saved = Notice::saveNew($this->profile_id,
$saved = Notice::saveNew($notice->profile_id,
$notice->content,
'ostatus',
array('is_local' => Notice::REMOTE_OMB,

View File

@ -154,6 +154,11 @@ class FeedMunger
{
return $this->getAtomLink($this->feed, array('rel' => 'hub'));
}
function getSelfLink()
{
return $this->getAtomLink($this->feed, array('rel' => 'self'));
}
/**
* Get an appropriate avatar image source URL, if available.
@ -209,6 +214,7 @@ class FeedMunger
$notice->id = -1;
} else {
$notice = new Notice();
$notice->profile_id = $this->profileIdForEntry($index);
}
$link = $this->getAltLink($entry);
@ -239,6 +245,20 @@ class FeedMunger
return $notice;
}
function profileIdForEntry($index=1)
{
// hack hack hack
// should get profile for this entry's author...
$feed = new Feedinfo();
$feed->feeduri = $self;
$feed = Feedinfo::staticGet('feeduri', $this->getSelfLink());
if ($feed) {
return $feed->profile_id;
} else {
throw new Exception("Can't find feed profile");
}
}
/**
* @param feed item $entry
* @return mixed Location or false