summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvan Prodromou <evan@status.net>2010-03-27 22:44:10 -0400
committerEvan Prodromou <evan@status.net>2010-03-27 22:44:10 -0400
commit29566c5d4b17eb42d3f69bb6b8e74259ee4218fb (patch)
treea16631a67f7c2f7bbb4bf51c9330459c1cd42952
parent8a9e664014479487b77e0841584310a8b820890e (diff)
move check for bad IDs from activityobject to activity and make simpler
-rw-r--r--lib/activity.php11
-rw-r--r--lib/activityobject.php25
2 files changed, 18 insertions, 18 deletions
diff --git a/lib/activity.php b/lib/activity.php
index f9192c6b8..5d6230c6d 100644
--- a/lib/activity.php
+++ b/lib/activity.php
@@ -179,6 +179,17 @@ class Activity
$this->actor = new ActivityObject($actorEl);
+ // Cliqset has bad actor IDs (just nickname of user). We
+ // work around it by getting the author data and using its
+ // id instead
+
+ if (!preg_match('/^\w+:/', $this->actor->id)) {
+ $authorEl = ActivityUtils::child($entry, 'author');
+ if (!empty($authorEl)) {
+ $authorObj = new ActivityObject($authorEl);
+ $this->actor->id = $authorObj->id;
+ }
+ }
} else if (!empty($feed) &&
$subjectEl = $this->_child($feed, self::SUBJECT)) {
diff --git a/lib/activityobject.php b/lib/activityobject.php
index 34d1b9170..677a48197 100644
--- a/lib/activityobject.php
+++ b/lib/activityobject.php
@@ -177,10 +177,7 @@ class ActivityObject
$this->type = self::PERSON; // XXX: is this fair?
$this->title = $this->_childContent($element, self::NAME);
- $id = $this->_childContent($element, self::URI);
- if (ActivityUtils::validateUri($id)) {
- $this->id = $id;
- }
+ $this->id = $this->_childContent($element, self::URI);
if (empty($this->id)) {
$email = $this->_childContent($element, self::EMAIL);
@@ -193,15 +190,6 @@ class ActivityObject
private function _fromAtomEntry($element)
{
- if ($element->localName == 'actor') {
- // Old-fashioned <activity:actor>...
- // First pull anything from <author>, then we'll add on top.
- $author = ActivityUtils::child($element->parentNode, 'author');
- if ($author) {
- $this->_fromAuthor($author);
- }
- }
-
$this->type = $this->_childContent($element, Activity::OBJECTTYPE,
Activity::SPEC);
@@ -209,11 +197,6 @@ class ActivityObject
$this->type = ActivityObject::NOTE;
}
- $id = $this->_childContent($element, self::ID);
- if (ActivityUtils::validateUri($id)) {
- $this->id = $id;
- }
-
$this->summary = ActivityUtils::childHtmlContent($element, self::SUMMARY);
$this->content = ActivityUtils::getContent($element);
@@ -226,6 +209,12 @@ class ActivityObject
$this->source = $this->_getSource($element);
$this->link = ActivityUtils::getPermalink($element);
+
+ $this->id = $this->_childContent($element, self::ID);
+
+ if (empty($this->id) && !empty($this->link)) { // fallback if there's no ID
+ $this->id = $this->link;
+ }
}
// @fixme rationalize with Activity::_fromRssItem()