From 16f75b95c695d4730bed8bdf6b609caa47721e3a Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Fri, 13 Aug 2010 11:41:44 -0700 Subject: [PATCH] Fixes for RSS subscriptions: accept posts with no ActivityStreams object-type set; be more liberal about accepting posts from feeds where the author info doesn't match (we'll post under the feed's profile and just not try to update the profile info). --- plugins/OStatus/classes/Ostatus_profile.php | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/plugins/OStatus/classes/Ostatus_profile.php b/plugins/OStatus/classes/Ostatus_profile.php index 8f8eb773f8..e76683a1c2 100644 --- a/plugins/OStatus/classes/Ostatus_profile.php +++ b/plugins/OStatus/classes/Ostatus_profile.php @@ -456,8 +456,10 @@ class Ostatus_profile extends Memcached_DataObject case ActivityObject::NOTE: case ActivityObject::STATUS: case ActivityObject::COMMENT: + case null: // Unspecified type is assumed to be a blog post; as we get from RSS. break; default: + common_log(LOG_INFO, "Aborting processing for unrecognized activity type " . $activity->objects[0]->type); throw new ClientException("Can't handle that kind of post."); } @@ -496,8 +498,11 @@ class Ostatus_profile extends Memcached_DataObject } else if ($actor->id) { // We have an ActivityStreams actor with an explicit ID that doesn't match the feed owner. // This isn't what we expect from mainline OStatus person feeds! - // Group feeds go down another path, with different validation. - throw new Exception("Got an actor '{$actor->title}' ({$actor->id}) on single-user feed for {$this->uri}"); + // Group feeds go down another path, with different validation... + // Most likely this is a plain ol' blog feed of some kind which + // doesn't match our expectations. We'll take the entry, but ignore + // the info. + common_log(LOG_WARNING, "Got an actor '{$actor->title}' ({$actor->id}) on single-user feed for {$this->uri}"); } else { // Plain without ActivityStreams actor info. // We'll just ignore this info for now and save the update under the feed's identity.