summaryrefslogtreecommitdiff
path: root/lib/activity.php
diff options
context:
space:
mode:
Diffstat (limited to 'lib/activity.php')
-rw-r--r--lib/activity.php63
1 files changed, 9 insertions, 54 deletions
diff --git a/lib/activity.php b/lib/activity.php
index b1744e68f..bd1d5d56c 100644
--- a/lib/activity.php
+++ b/lib/activity.php
@@ -238,17 +238,17 @@ class Activity
$this->time = strtotime($pubDateEl->textContent);
}
- $authorEl = $this->_child($item, self::AUTHOR, self::RSS);
-
- if (!empty($authorEl)) {
+ if ($authorEl = $this->_child($item, self::AUTHOR, self::RSS)) {
$this->actor = ActivityObject::fromRssAuthor($authorEl);
+ } else if ($dcCreatorEl = $this->_child($item, self::CREATOR, self::DC)) {
+ $this->actor = ActivityObject::fromDcCreator($dcCreatorEl);
+ } else if ($posterousEl = $this->_child($item, ActivityObject::AUTHOR, ActivityObject::POSTEROUS)) {
+ // Special case for Posterous.com
+ $this->actor = ActivityObject::fromPosterousAuthor($posterousEl);
+ } else if (!empty($channel)) {
+ $this->actor = ActivityObject::fromRssChannel($channel);
} else {
- $dcCreatorEl = $this->_child($item, self::CREATOR, self::DC);
- if (!empty($dcCreatorEl)) {
- $this->actor = ActivityObject::fromDcCreator($dcCreatorEl);
- } else if (!empty($channel)) {
- $this->actor = ActivityObject::fromRssChannel($channel);
- }
+ // No actor!
}
$this->title = ActivityUtils::childContent($item, ActivityObject::TITLE, self::RSS);
@@ -362,48 +362,3 @@ class Activity
}
}
-class AtomCategory
-{
- public $term;
- public $scheme;
- public $label;
-
- function __construct($element=null)
- {
- if ($element && $element->attributes) {
- $this->term = $this->extract($element, 'term');
- $this->scheme = $this->extract($element, 'scheme');
- $this->label = $this->extract($element, 'label');
- }
- }
-
- protected function extract($element, $attrib)
- {
- $node = $element->attributes->getNamedItemNS(Activity::ATOM, $attrib);
- if ($node) {
- return trim($node->textContent);
- }
- $node = $element->attributes->getNamedItem($attrib);
- if ($node) {
- return trim($node->textContent);
- }
- return null;
- }
-
- function asString()
- {
- $attribs = array();
- if ($this->term !== null) {
- $attribs['term'] = $this->term;
- }
- if ($this->scheme !== null) {
- $attribs['scheme'] = $this->scheme;
- }
- if ($this->label !== null) {
- $attribs['label'] = $this->label;
- }
- $xs = new XMLStringer();
- $xs->element('category', $attribs);
- return $xs->asString();
- }
-}