From f30744c7c565c50047b90515bcfd71baa382c96e Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Fri, 11 Feb 2011 12:13:33 -0800 Subject: [PATCH] refactor for multi.... --- .../OStatus/scripts/update-profile-data.php | 80 ++++++++++--------- 1 file changed, 43 insertions(+), 37 deletions(-) diff --git a/plugins/OStatus/scripts/update-profile-data.php b/plugins/OStatus/scripts/update-profile-data.php index 4f5409bfab..d61d9470d1 100644 --- a/plugins/OStatus/scripts/update-profile-data.php +++ b/plugins/OStatus/scripts/update-profile-data.php @@ -31,21 +31,6 @@ END_OF_HELP; require_once INSTALLDIR.'/scripts/commandline.inc'; -if (empty($args[0]) || !Validate::uri($args[0])) { - print "$helptext"; - exit(1); -} - -$uri = $args[0]; - - -$oprofile = Ostatus_profile::staticGet('uri', $uri); - -if (!$oprofile) { - print "No OStatus remote profile known for URI $uri\n"; - exit(1); -} - function showProfileInfo($oprofile) { if ($oprofile->isGroup()) { echo "group\n"; @@ -58,32 +43,53 @@ function showProfileInfo($oprofile) { echo "\n"; } -echo "Before:\n"; -showProfileInfo($oprofile); +function fixProfile($uri) { + $oprofile = Ostatus_profile::staticGet('uri', $uri); -$feedurl = $oprofile->feeduri; -$client = new HttpClient(); -$response = $client->get($feedurl); -if ($response->isOk()) { - 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); - echo " (ok)\n"; + if (!$oprofile) { + print "No OStatus remote profile known for URI $uri\n"; + return false; + } + + echo "Before:\n"; + showProfileInfo($oprofile); + + $feedurl = $oprofile->feeduri; + $client = new HttpClient(); + $response = $client->get($feedurl); + if ($response->isOk()) { + 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); + echo " (ok)\n"; + } else { + echo " (no entry; skipping)\n"; + return false; + } } else { - echo " (no entry; skipping)\n"; + echo " (bad feed; skipping)\n"; + return false; } } else { - echo " (bad feed; skipping)\n"; + echo "Failed feed fetch: {$response->getStatus()} for $feedurl\n"; + return false; } -} else { - echo "Failed feed fetch: {$response->getStatus()} for $feedurl\n"; + + echo "After:\n"; + showProfileInfo($oprofile); + return true; } -echo "After:\n"; -showProfileInfo($oprofile); +if (empty($args[0]) || !Validate::uri($args[0])) { + print "$helptext"; + exit(1); +} + +$uri = $args[0]; +fixProfile($uri);