]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
add --all and --suspicious options for update-profile-data.php
authorBrion Vibber <brion@pobox.com>
Fri, 11 Feb 2011 20:23:03 +0000 (12:23 -0800)
committerBrion Vibber <brion@pobox.com>
Fri, 11 Feb 2011 20:23:03 +0000 (12:23 -0800)
plugins/OStatus/scripts/update-profile-data.php

index d61d9470d1a2e74aa6183711c064c38492fab80f..20f6d57d9001d5ba5f9d879dda93cb8ceb00e033 100644 (file)
 
 define('INSTALLDIR', realpath(dirname(__FILE__) . '/../../..'));
 
+$longoptions = array('all', 'suspicious', 'quiet');
+
 $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
 updated profile data (nickname, avatar, bio, etc). Doesn't touch feed state.
 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;
 
 require_once INSTALLDIR.'/scripts/commandline.inc';
@@ -86,10 +93,29 @@ function fixProfile($uri) {
     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";
-    exit(1);
+    $ok = false;
 }
 
-$uri = $args[0];
-fixProfile($uri);
+exit($ok ? 0 : 1);