X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=lib%2Factivity.php;h=2d3930df0d85ec46207e6ff63fa9790556f3f664;hb=a3b9367c9aea253d560db7d9b16d625cd0953a62;hp=779be2a9ad0840b18c81281e114839f7b38f9f2f;hpb=08eca420ca11badcb166961c1f37896ce2c9571c;p=quix0rs-gnu-social.git diff --git a/lib/activity.php b/lib/activity.php index 779be2a9ad..2d3930df0d 100644 --- a/lib/activity.php +++ b/lib/activity.php @@ -244,6 +244,9 @@ class Activity if (!empty($targetEl)) { $this->target = new ActivityObject($targetEl); + } elseif (ActivityUtils::compareTypes($this->verb, array(ActivityVerb::FAVORITE))) { + // StatusNet didn't send a 'target' for their Favorite atom entries + $this->target = clone($this->objects[0]); } $this->summary = ActivityUtils::childContent($entry, 'summary'); @@ -389,9 +392,10 @@ class Activity if ($object instanceof Activity) { // Sharing a post activity is more like sharing the original object - if ($this->verb == 'share' && $object->verb == 'post') { + if (ActivityVerb::canonical($this->verb) == ActivityVerb::canonical(ActivityVerb::SHARE) && + ActivityVerb::canonical($object->verb) == ActivityVerb::canonical(ActivityVerb::POST)) { // XXX: Here's one for the obfuscation record books - $object = $object->object; + $object = $object->objects[0]; } } @@ -482,7 +486,9 @@ class Activity $activity['verb'] = ActivityVerb::canonical($this->verb); // url - $activity['url'] = $this->id; + if ($this->link) { + $activity['url'] = $this->link; + } /* Purely extensions hereafter */ @@ -619,28 +625,22 @@ class Activity } if (!empty($this->context->conversation)) { - $xs->element('link', array('rel' => 'ostatus:conversation', + $xs->element('link', array('rel' => ActivityContext::CONVERSATION, 'href' => $this->context->conversation)); - } - - foreach ($this->context->attention as $attnURI) { - $xs->element('link', array('rel' => 'ostatus:attention', + $xs->element(ActivityContext::CONVERSATION, null, $this->context->conversation); + /* Since we use XMLWriter we just use the previously hardcoded prefix for ostatus, + otherwise we should use something like this: + $xs->elementNS(array(ActivityContext::OSTATUS => 'ostatus'), // namespace + 'conversation', // tag (or the element name from ActivityContext::CONVERSATION) + null, // attributes + $this->context->conversation); // content + */ + } + + foreach ($this->context->attention as $attnURI=>$type) { + $xs->element('link', array('rel' => ActivityContext::MENTIONED, + ActivityContext::OBJECTTYPE => $type, // FIXME: undocumented 'href' => $attnURI)); - $xs->element('link', array('rel' => 'mentioned', - 'href' => $attnURI)); - } - - // XXX: shoulda used ActivityVerb::SHARE - - if (!empty($this->context->forwardID)) { - if (!empty($this->context->forwardUrl)) { - $xs->element('ostatus:forward', - array('ref' => $this->context->forwardID, - 'href' => $this->context->forwardUrl)); - } else { - $xs->element('ostatus:forward', - array('ref' => $this->context->forwardID)); - } } if (!empty($this->context->location)) {