forked from GNUsocial/gnu-social
		
	Update Profile Data script fixes, might work for groups too now
This commit is contained in:
		| @@ -301,7 +301,7 @@ class ActivityUtils | ||||
|         return false; | ||||
|     } | ||||
|  | ||||
|     static function getFeedAuthor($feedEl) | ||||
|     static function getFeedAuthor(DOMDocument $feedEl) | ||||
|     { | ||||
|         // Try old and deprecated activity:subject | ||||
|  | ||||
|   | ||||
| @@ -1281,6 +1281,12 @@ class Ostatus_profile extends Managed_DataObject | ||||
|      */ | ||||
|     public function updateFromActivityObject(ActivityObject $object, array $hints=array()) | ||||
|     { | ||||
|         if (self::getActivityObjectProfileURI($actorObj) !== $this->getUri()) { | ||||
|             common_log(LOG_ERR, 'Trying to update profile with URI '._ve($this->getUri()).' from ActivityObject with URI: '._ve(self::getActivityObjectProfileURI($actorObj))); | ||||
|             // FIXME: Maybe not AuthorizationException? | ||||
|             throw new AuthorizationException('Trying to update profile from ActivityObject with different URI.'); | ||||
|         } | ||||
|  | ||||
|         if ($this->isGroup()) { | ||||
|             $group = $this->localGroup(); | ||||
|             self::updateGroup($group, $object, $hints); | ||||
|   | ||||
| @@ -62,15 +62,16 @@ function fixProfile(Ostatus_profile $oprofile) { | ||||
|         echo "Updating profile from feed: $feedurl\n"; | ||||
|         $dom = new DOMDocument(); | ||||
|         if ($dom->loadXML($response->getBody())) { | ||||
|             $feed = $dom->documentElement; | ||||
|             $entries = $dom->getElementsByTagNameNS(Activity::ATOM, 'entry'); | ||||
|             if ($entries->length) { | ||||
|                 $entry = $entries->item(0); | ||||
|                 $activity = new Activity($entry, $feed); | ||||
|                 $oprofile->checkAuthorship($activity); | ||||
|             if ($dom->documentElement->tagName !== 'feed') { | ||||
|                 echo "  (no <feed> element in feed URL response; skipping)\n"; | ||||
|                 return false; | ||||
|             } | ||||
|             $actorObj = ActivityUtils::getFeedAuthor($dom->documentElement); | ||||
|             if ($actorObj) { | ||||
|                 $oprofile->updateFromActivityObject($actorObj); | ||||
|                 echo "  (ok)\n"; | ||||
|             } else { | ||||
|                 echo "  (no entry; skipping)\n"; | ||||
|                 echo "  (no author on feed; skipping)\n"; | ||||
|                 return false; | ||||
|             } | ||||
|         } else { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user