]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
OStatus fix: include feed profile at notice text processing time, fixes replies
authorBrion Vibber <brion@pobox.com>
Thu, 11 Feb 2010 19:44:03 +0000 (19:44 +0000)
committerBrion Vibber <brion@pobox.com>
Thu, 11 Feb 2010 19:44:03 +0000 (19:44 +0000)
plugins/OStatus/classes/Feedinfo.php
plugins/OStatus/lib/feedmunger.php

index d3cccd42f0e14d12a19c76a8ae4f6a30ee62588f..e71b0cfa00345f68fcd5233f68e5dcb8dd9b185a 100644 (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,
index 5dce95342e1cfe26672535fce90bf30f0fc7ff66..7f223cb20d5a3a562475b60b0527f66368d09b9a 100644 (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