]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - scripts/initializeinbox.php
Suppress PHP warnings/notices during AtomPub XML parsing to avoid HTTP header problem...
[quix0rs-gnu-social.git] / scripts / initializeinbox.php
index 43afc48eb2b2822ed057d441d03ccd5ea943ebd1..44508fe22abf87f6b4b96baed93d141f4f5d0891 100644 (file)
 
 define('INSTALLDIR', realpath(dirname(__FILE__) . '/..'));
 
-$shortoptions = 'i:n:af';
-$longoptions = array('id=', 'nickname=', 'all', 'force');
+$shortoptions = 'i:n:af:';
+$longoptions = array('id=', 'nickname=', 'all', 'file=');
 
 $helptext = <<<END_OF_INITIALIZEINBOX_HELP
 initializeinbox.php [options]
 initialize the inbox for a user
 
-  -i --id       ID of user to update
-  -n --nickname nickname of the user to update
-  -f --force    force update even if user already has a location
-  -a --all      update all
+  -i --id         ID of user to update
+  -n --nickname   nickname of the user to update
+  -f FILENAME     read list of IDs from FILENAME (1 per line)
+  --file=FILENAME ditto
+  -a --all        update all
 
 END_OF_INITIALIZEINBOX_HELP;
 
@@ -60,6 +61,21 @@ try {
                 initializeInbox($user);
             }
         }
+    } else if (have_option('f', 'file')) {
+        $filename = get_option_value('f', 'file');
+        if (!file_exists($filename)) {
+            throw new Exception("No such file '$filename'.");
+        } else if (!is_readable($filename)) {
+            throw new Exception("Can't read '$filename'.");
+        }
+        $ids = file($filename);
+        foreach ($ids as $id) {
+            $user = User::staticGet('id', $id);
+            if (empty($user)) {
+                print "Can't find user with id '$id'.\n";
+            }
+            initializeInbox($user);
+        }
     } else {
         show_help();
         exit(1);
@@ -75,14 +91,20 @@ function initializeInbox($user)
         print "Initializing inbox for $user->nickname...";
     }
 
-    $inbox = Inbox::staticGet('user_id', $user_id);
+    $inbox = Inbox::staticGet('user_id', $user->id);
 
+    if ($inbox && !empty($inbox->fake)) {
+        if (!have_option('q', 'quiet')) {
+            echo "(replacing faux cached inbox)";
+        }
+        $inbox = false;
+    }
     if (!empty($inbox)) {
         if (!have_option('q', 'quiet')) {
             print "SKIP\n";
         }
     } else {
-        $inbox = Inbox::initialize($user_id);
+        $inbox = Inbox::initialize($user->id);
         if (!have_option('q', 'quiet')) {
             if (empty($inbox)) {
                 print "ERR\n";