+ $act->objects[0]->type = ActivityObject::PHOTO;
+ $act->objects[0]->thumbnail = $photo->thumb_uri;
+ $act->objects[0]->largerImage = $photo->uri;
+ return false;
+ }
+
+
+ function onStartHandleFeedEntry($activity)
+ {
+ common_log(LOG_INFO, 'photo plugin: onEndAtomPubNewActivity');
+ $oprofile = Ostatus_profile::ensureActorProfile($activity);
+ foreach ($activity->objects as $object) {
+ if($object->type == ActivityObject::PHOTO) {
+ $uri = $object->largerImage;
+ $thumb_uri = $object->thumbnail;
+ $profile_id = $oprofile->profile_id;
+ $source = 'unknown'; // TODO: put something better here.
+
+ common_log(LOG_INFO, 'uri : ' . $uri);
+ common_log(LOG_INFO, 'thumb_uri : ' . $thumb_uri);
+
+ // It's possible this is validated elsewhere, but I'm not sure and
+ // would rather be safe.
+ $uri = filter_var($uri, FILTER_SANITIZE_URL);
+ $thumb_uri = filter_var($thumb_uri, FILTER_SANITIZE_URL);
+ $uri = filter_var($uri, FILTER_VALIDATE_URL);
+ $thumb_uri = filter_var($thumb_uri, FILTER_VALIDATE_URL);
+
+ if(empty($thumb_uri)) {
+ // We need a thumbnail, so if we aren't given one, use the actual picture for now.
+ $thumb_uri = $uri;
+ }
+
+ if (!empty($uri) && !empty($thumb_uri)) {
+ GNUsocialPhoto::saveNew($profile_id, $thumb_uri, $uri, $source, false);
+ } else {
+ common_log(LOG_INFO, 'bad URI for photo');
+ }
+ return false;
+ }
+ }