From: Brion Vibber <brion@pobox.com> Date: Fri, 9 Apr 2010 18:36:02 +0000 (-0700) Subject: Fix for strip_geo's decaching; also added --all option to run over all notices by... X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=b47fc9c0bcd9f37438d2aaeb7b5bc98183b554ea;p=quix0rs-gnu-social.git Fix for strip_geo's decaching; also added --all option to run over all notices by given profile to help in fixing up cache inconsistencies --- diff --git a/scripts/strip_geo.php b/scripts/strip_geo.php index 010fb31f54..b3f27be616 100755 --- a/scripts/strip_geo.php +++ b/scripts/strip_geo.php @@ -21,7 +21,7 @@ define('INSTALLDIR', realpath(dirname(__FILE__) . '/..')); $shortoptions = 'i::n::y'; -$longoptions = array('id=', 'nickname=', 'yes', 'dry-run'); +$longoptions = array('id=', 'nickname=', 'yes', 'dry-run', 'all'); $helptext = <<<END_OF_HELP strip_geo.php [options] @@ -31,6 +31,8 @@ Removes geolocation info from the given user's notices. -n --nickname nickname of the user -y --yes do not wait for confirmation --dry-run list affected notices without deleting + --all run over and decache all messages, even if they don't + have geo data now (helps to fix cache bugs) END_OF_HELP; @@ -67,10 +69,14 @@ if (!have_option('y', 'yes') && !have_option('--dry-run')) { } // @fixme for a very prolific poster this could be too many. -print "Finding notices with geolocation data..."; $notice = new Notice(); $notice->profile_id = $profile->id; -$notice->whereAdd("lat != ''"); +if (have_option('--all')) { + print "Finding all notices by $profile->nickname..."; +} else { + print "Finding notices by $profile->nickname with geolocation data..."; + $notice->whereAdd("lat != ''"); +} $notice->find(); if ($notice->N) { @@ -101,10 +107,10 @@ if ($notice->N) { $ok = $update->query($query); if ($ok) { // And now we decache him manually, as query() doesn't know what we're doing... - $orig->blow(); + $orig->decache(); echo "(removed)"; } else { - echo "(failed?)"; + echo "(unchanged?)"; } } print "\n";