diff options
author | Brion Vibber <brion@pobox.com> | 2010-02-11 19:44:03 +0000 |
---|---|---|
committer | Brion Vibber <brion@pobox.com> | 2010-02-11 19:44:03 +0000 |
commit | 20714d1f35305cc29c2b657310c2e0db290fbb48 (patch) | |
tree | fddde13c69b84033e6da509a3ff13fa95e1bc21d /plugins | |
parent | 71151b2583d81e28c5f5d42a690c649f4e84f3bf (diff) |
OStatus fix: include feed profile at notice text processing time, fixes replies
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/OStatus/classes/Feedinfo.php | 3 | ||||
-rw-r--r-- | plugins/OStatus/lib/feedmunger.php | 20 |
2 files changed, 21 insertions, 2 deletions
diff --git a/plugins/OStatus/classes/Feedinfo.php b/plugins/OStatus/classes/Feedinfo.php index d3cccd42f..e71b0cfa0 100644 --- a/plugins/OStatus/classes/Feedinfo.php +++ b/plugins/OStatus/classes/Feedinfo.php @@ -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, diff --git a/plugins/OStatus/lib/feedmunger.php b/plugins/OStatus/lib/feedmunger.php index 5dce95342..7f223cb20 100644 --- a/plugins/OStatus/lib/feedmunger.php +++ b/plugins/OStatus/lib/feedmunger.php @@ -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 |