Merge remote branch 'dev/master'

This commit is contained in:
Evan Prodromou 2011-02-10 22:21:56 -05:00
commit d876418acd
3 changed files with 51 additions and 26 deletions

View File

@ -205,18 +205,19 @@ class Activity
// the surrounding feed. // the surrounding feed.
$this->actor = new ActivityObject($authorEl); $this->actor = new ActivityObject($authorEl);
} else if (!empty($feed) && $authorEl = $this->_child($feed, self::AUTHOR,
self::ATOM)) {
// If there's no <atom:author> on the entry, it's safe to assume
// the containing feed's authorship info applies.
$this->actor = new ActivityObject($authorEl);
} else if (!empty($feed) && } else if (!empty($feed) &&
$subjectEl = $this->_child($feed, self::SUBJECT)) { $subjectEl = $this->_child($feed, self::SUBJECT)) {
// Feed subject is used for things like groups. // Feed subject is used for things like groups.
// Should actually possibly not be interpreted as an actor...? // Should actually possibly not be interpreted as an actor...?
$this->actor = new ActivityObject($subjectEl); $this->actor = new ActivityObject($subjectEl);
} else if (!empty($feed) && $authorEl = $this->_child($feed, self::AUTHOR,
self::ATOM)) {
// If there's no <atom:author> on the entry, it's safe to assume
// the containing feed's authorship info applies.
$this->actor = new ActivityObject($authorEl);
} }
$contextEl = $this->_child($entry, self::CONTEXT); $contextEl = $this->_child($entry, self::CONTEXT);

View File

@ -273,14 +273,6 @@ class ActivityUtils
static function getFeedAuthor($feedEl) static function getFeedAuthor($feedEl)
{ {
// Try the feed author
$author = ActivityUtils::child($feedEl, Activity::AUTHOR, Activity::ATOM);
if (!empty($author)) {
return new ActivityObject($author);
}
// Try old and deprecated activity:subject // Try old and deprecated activity:subject
$subject = ActivityUtils::child($feedEl, Activity::SUBJECT, Activity::SPEC); $subject = ActivityUtils::child($feedEl, Activity::SUBJECT, Activity::SPEC);
@ -289,6 +281,14 @@ class ActivityUtils
return new ActivityObject($subject); return new ActivityObject($subject);
} }
// Try the feed author
$author = ActivityUtils::child($feedEl, Activity::AUTHOR, Activity::ATOM);
if (!empty($author)) {
return new ActivityObject($author);
}
// Sheesh. Not a very nice feed! Let's try fingerpoken in the // Sheesh. Not a very nice feed! Let's try fingerpoken in the
// entries. // entries.
@ -298,14 +298,6 @@ class ActivityUtils
$entry = $entries->item(0); $entry = $entries->item(0);
// Try the author
$author = ActivityUtils::child($entry, Activity::AUTHOR, Activity::ATOM);
if (!empty($author)) {
return new ActivityObject($author);
}
// Try the (deprecated) activity:actor // Try the (deprecated) activity:actor
$actor = ActivityUtils::child($entry, Activity::ACTOR, Activity::SPEC); $actor = ActivityUtils::child($entry, Activity::ACTOR, Activity::SPEC);
@ -313,6 +305,14 @@ class ActivityUtils
if (!empty($actor)) { if (!empty($actor)) {
return new ActivityObject($actor); return new ActivityObject($actor);
} }
// Try the author
$author = ActivityUtils::child($entry, Activity::AUTHOR, Activity::ATOM);
if (!empty($author)) {
return new ActivityObject($author);
}
} }
return null; return null;

View File

@ -1354,7 +1354,17 @@ class Ostatus_profile extends Memcached_DataObject
{ {
$orig = clone($profile); $orig = clone($profile);
$profile->nickname = self::getActivityObjectNickname($object, $hints); // Existing nickname is better than nothing.
if (!array_key_exists('nickname', $hints)) {
$hints['nickname'] = $profile->nickname;
}
$nickname = self::getActivityObjectNickname($object, $hints);
if (!empty($nickname)) {
$profile->nickname = $nickname;
}
if (!empty($object->title)) { if (!empty($object->title)) {
$profile->fullname = $object->title; $profile->fullname = $object->title;
@ -1370,9 +1380,23 @@ class Ostatus_profile extends Memcached_DataObject
$profile->profileurl = $object->id; $profile->profileurl = $object->id;
} }
$profile->bio = self::getActivityObjectBio($object, $hints); $bio = self::getActivityObjectBio($object, $hints);
$profile->location = self::getActivityObjectLocation($object, $hints);
$profile->homepage = self::getActivityObjectHomepage($object, $hints); if (!empty($bio)) {
$profile->bio = $bio;
}
$location = self::getActivityObjectLocation($object, $hints);
if (!empty($location)) {
$profile->location = $location;
}
$homepage = self::getActivityObjectHomepage($object, $hints);
if (!empty($homepage)) {
$profile->homepage = $homepage;
}
if (!empty($object->geopoint)) { if (!empty($object->geopoint)) {
$location = ActivityContext::locationFromPoint($object->geopoint); $location = ActivityContext::locationFromPoint($object->geopoint);