move check for bad IDs from activityobject to activity and make simpler

This commit is contained in:
Evan Prodromou 2010-03-27 22:44:10 -04:00
parent 8a9e664014
commit 29566c5d4b
2 changed files with 18 additions and 18 deletions

View File

@ -179,6 +179,17 @@ class Activity
$this->actor = new ActivityObject($actorEl); $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) && } else if (!empty($feed) &&
$subjectEl = $this->_child($feed, self::SUBJECT)) { $subjectEl = $this->_child($feed, self::SUBJECT)) {

View File

@ -177,10 +177,7 @@ class ActivityObject
$this->type = self::PERSON; // XXX: is this fair? $this->type = self::PERSON; // XXX: is this fair?
$this->title = $this->_childContent($element, self::NAME); $this->title = $this->_childContent($element, self::NAME);
$id = $this->_childContent($element, self::URI); $this->id = $this->_childContent($element, self::URI);
if (ActivityUtils::validateUri($id)) {
$this->id = $id;
}
if (empty($this->id)) { if (empty($this->id)) {
$email = $this->_childContent($element, self::EMAIL); $email = $this->_childContent($element, self::EMAIL);
@ -193,15 +190,6 @@ class ActivityObject
private function _fromAtomEntry($element) 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, $this->type = $this->_childContent($element, Activity::OBJECTTYPE,
Activity::SPEC); Activity::SPEC);
@ -209,11 +197,6 @@ class ActivityObject
$this->type = ActivityObject::NOTE; $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->summary = ActivityUtils::childHtmlContent($element, self::SUMMARY);
$this->content = ActivityUtils::getContent($element); $this->content = ActivityUtils::getContent($element);
@ -226,6 +209,12 @@ class ActivityObject
$this->source = $this->_getSource($element); $this->source = $this->_getSource($element);
$this->link = ActivityUtils::getPermalink($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() // @fixme rationalize with Activity::_fromRssItem()