summaryrefslogtreecommitdiff
path: root/plugins/OStatus
diff options
context:
space:
mode:
authorBrion Vibber <brion@pobox.com>2010-02-11 19:44:03 +0000
committerBrion Vibber <brion@pobox.com>2010-02-11 19:44:03 +0000
commit20714d1f35305cc29c2b657310c2e0db290fbb48 (patch)
treefddde13c69b84033e6da509a3ff13fa95e1bc21d /plugins/OStatus
parent71151b2583d81e28c5f5d42a690c649f4e84f3bf (diff)
OStatus fix: include feed profile at notice text processing time, fixes replies
Diffstat (limited to 'plugins/OStatus')
-rw-r--r--plugins/OStatus/classes/Feedinfo.php3
-rw-r--r--plugins/OStatus/lib/feedmunger.php20
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