X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=bin%2FformatAddresses.php;h=6b8a8dd4f9b69f43653fa2b80b5feab5d590e130;hb=e999a40a812f8a2f350d69c5e1611669ff8937d1;hp=4ab19d2064f726734e15e37d42fc871835485a9e;hpb=020a95fa78dc544b3064739d409026a0056d98f4;p=platal.git diff --git a/bin/formatAddresses.php b/bin/formatAddresses.php index 4ab19d2..6b8a8dd 100755 --- a/bin/formatAddresses.php +++ b/bin/formatAddresses.php @@ -22,31 +22,122 @@ require './connect.db.inc.php'; require_once '../classes/address.php'; +require_once '../classes/geocoder.php'; +require_once '../classes/gmapsgeocoder.php'; $globals->debug = 0; // Do not store backtraces -print "(Re)Formats postal addresses for all addresses in the database.\n"; +$targets = array( + 'g' => 'formatted_address', + 'p' => '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(); + $address->changed = ($geocoding_required ? 1 : 0); + $address->format(); + if ($address->delete()) { + $address->save(); + } 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: ?>