X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=bin%2FformatAddresses.php;h=52636efe3f8244892164b8b674589ef201ef86f3;hb=07e02fe3af9db38b14225e5bf0ed937147acb37d;hp=4ab19d2064f726734e15e37d42fc871835485a9e;hpb=ce0d7be772306674fadaf020511871aba1683816;p=platal.git diff --git a/bin/formatAddresses.php b/bin/formatAddresses.php index 4ab19d2..52636ef 100755 --- a/bin/formatAddresses.php +++ b/bin/formatAddresses.php @@ -1,7 +1,7 @@ #!/usr/bin/php5 -q debug = 0; // Do not store backtraces -print "(Re)Formats postal addresses for all addresses in the database.\n"; -$it = XDB::rawIterator('SELECT * - FROM profile_addresses - ORDER BY pid, jobid, type, id'); +$targets = array( + 'g' => 'pa.formatted_address', + 'p' => 'pa.postalText' +); +$ranges = array( + 'f' => ' != \'\'', + 'e' => ' = \'\'', + 'a' => ' IS NOT NULL' +); + +$options = getopt('g::t:r:h::', array('geocode::', 'target:', 'range:', 'help::')); + +$help_required = isset($options['h']) || isset($options['help']); +$geocoding_required = isset($options['g']) || isset($options['geocode']); +$target = ''; +$range = ''; + +if (isset($options['t'])) { + $target = $options['t']; +} elseif (isset($options['target'])) { + $target = $options['target']; +} + +if (isset($options['r'])) { + $range = $options['r']; +} elseif ($options['range']) { + $range = $options['range']; +} + +$missing_option = !array_key_exists($target, $targets) || !array_key_exists($range, $ranges); + +if ($missing_option || $help_required) { + echo <<total(); $i = 0; $j = 0; +$skipped = 0; printf("\r%u / %u", $i, $total); -while ($item = $it->next()) { - $address = new Address($item); - $address->format(array('postalText' => true)); - $address->delete(); - $address->save(); + +while ($address = $it->next()) { + $address->changed = ($geocoding_required ? 1 : 0); + $address->format(); + if ($address->delete()) { + $address->save(false); + } else { + ++$skipped; + } ++$i; - if ($i == 100) { + if ($i == $display_limit) { ++$j; $i = 0; - printf("\r%u / %u", $i + 100 * $j, $total); + printf("\r%u / %u", $i + $display_limit * $j, $total); } + sleep($wait * $address->geocoding_calls); } -print "Done.\n"; +printf("\r%u / %u", $i + $display_limit * $j, $total); + +if ($skipped != 0) { + printf("\n%u addresses skipped.\n", $skipped); +} + +print "\nDone.\n"; -// vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8: +// vim:set et sw=4 sts=4 sws=4 foldmethod=marker fenc=utf-8: ?>