add --all and --suspicious options for update-profile-data.php

This commit is contained in:
Brion Vibber 2011-02-11 12:23:03 -08:00
parent f30744c7c5
commit c92358fa7b

View File

@ -20,13 +20,20 @@
define('INSTALLDIR', realpath(dirname(__FILE__) . '/../../..')); define('INSTALLDIR', realpath(dirname(__FILE__) . '/../../..'));
$longoptions = array('all', 'suspicious', 'quiet');
$helptext = <<<END_OF_HELP $helptext = <<<END_OF_HELP
update-profile-data.php [options] http://example.com/profile/url update-profile-data.php [options] [http://example.com/profile/url]
Rerun profile discovery for the given OStatus remote profile, and save the Rerun profile discovery for the given OStatus remote profile, and save the
updated profile data (nickname, avatar, bio, etc). Doesn't touch feed state. updated profile data (nickname, avatar, bio, etc). Doesn't touch feed state.
Can be used to clean up after breakages. Can be used to clean up after breakages.
Options:
--all Run for all known OStatus profiles
--suspicious Run for OStatus profiles with all-numeric nicknames
(fixes 0.9.7 prerelease back-compatibility bug)
END_OF_HELP; END_OF_HELP;
require_once INSTALLDIR.'/scripts/commandline.inc'; require_once INSTALLDIR.'/scripts/commandline.inc';
@ -86,10 +93,29 @@ function fixProfile($uri) {
return true; return true;
} }
if (empty($args[0]) || !Validate::uri($args[0])) { $ok = true;
if (have_option('all')) {
$oprofile = new Ostatus_profile();
$oprofile->find();
echo "Found $oprofile->N profiles:\n\n";
while ($oprofile->fetch()) {
$ok = fixProfile($oprofile->uri) && $ok;
}
} else if (have_option('suspicious')) {
$oprofile = new Ostatus_profile();
$oprofile->joinAdd(array('profile_id', 'profile:id'));
$oprofile->whereAdd("nickname rlike '^[0-9]$'");
$oprofile->find();
echo "Found $oprofile->N matching profiles:\n\n";
while ($oprofile->fetch()) {
$ok = fixProfile($oprofile->uri) && $ok;
}
} else if (!empty($args[0]) && Validate::uri($args[0])) {
$uri = $args[0];
$ok = fixProfile($uri);
} else {
print "$helptext"; print "$helptext";
exit(1); $ok = false;
} }
$uri = $args[0]; exit($ok ? 0 : 1);
fixProfile($uri);