]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
OStatus: Salmon notifications now being generated moderately correctly. :) Needs...
authorBrion Vibber <brion@pobox.com>
Sat, 20 Feb 2010 01:01:38 +0000 (17:01 -0800)
committerBrion Vibber <brion@pobox.com>
Sat, 20 Feb 2010 01:01:38 +0000 (17:01 -0800)
plugins/OStatus/actions/salmon.php
plugins/OStatus/classes/Ostatus_profile.php

index 43d79cf4add5e9c3324e04ee1218c5d895dbc8a8..f7c86dc0ce869d490d402ab34b508b9215691713 100644 (file)
@@ -62,15 +62,13 @@ class SalmonAction extends Action
 
         $dom = DOMDocument::loadXML($xml);
 
-        // XXX: check that document element is Atom entry
+        if ($dom->documentElement->namespaceURI != Activity::ATOM ||
+            $dom->documentElement->localName != 'entry') {
+            $this->clientError(_m('Salmon post must be an Atom entry.'));
+        }
         // XXX: check the signature
 
-        // We need to run an entry into Activity, so get the first one
-        $entries = $dom->getElementsByTagNameNS(Activity::ATOM, 'entry');
-        if ($entries && $entries->length) {
-            // @fixme is it legit to have multiple entries?
-            $this->act = new Activity($entries->item(0), $dom->documentElement);
-        }
+        $this->act = new Activity($dom->documentElement);
         return true;
     }
 
index 5fe135f962fcafa5eaf69e322fbf5d1f834a87a0..b14b4c9a376ccca3a38979a8acac8b9a8095dbfd 100644 (file)
@@ -329,9 +329,15 @@ class Ostatus_profile extends Memcached_DataObject
                 ':' . $actor->id .
                 ':' . time(); // @fixme
 
-            //$entry = new Atom10Entry();
+            // @fixme consolidate all these NS settings somewhere
+            $attributes = array('xmlns' => Activity::ATOM,
+                                'xmlns:activity' => 'http://activitystrea.ms/spec/1.0/',
+                                'xmlns:thr' => 'http://purl.org/syndication/thread/1.0',
+                                'xmlns:georss' => 'http://www.georss.org/georss',
+                                'xmlns:ostatus' => 'http://ostatus.org/schema/1.0');
+
             $entry = new XMLStringer();
-            $entry->elementStart('entry');
+            $entry->elementStart('entry', $attributes);
             $entry->element('id', null, $id);
             $entry->element('title', null, $text);
             $entry->element('summary', null, $text);
@@ -343,10 +349,7 @@ class Ostatus_profile extends Memcached_DataObject
             $entry->raw($object->asActivityNoun('object'));
             $entry->elementEnd('entry');
 
-            $feed = $this->atomFeed($actor);
-            $feed->addEntry($entry);
-
-            $xml = $feed->getString();
+            $xml = $entry->getString();
             common_log(LOG_INFO, "Posting to Salmon endpoint $this->salmonuri: $xml");
 
             $salmon = new Salmon(); // ?