Commit 7bef2ad4 authored by mmn's avatar mmn

Update Profile Data script fixes, might work for groups too now

parent a93c69d1
......@@ -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 {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment