Commit | Line | Data |
---|---|---|
3095cd65 SJ |
1 | #!/usr/bin/php5 |
2 | <?php | |
3 | // WARNING: this script takes a few weeks to be executed completly, thus run it into a screen. | |
4 | ||
5 | require_once 'connect.db.inc.php'; | |
3095cd65 SJ |
6 | require_once '../../classes/address.php'; |
7 | ||
8 | $globals->debug = 0; // Do not store backtraces. | |
9 | ||
74e1e725 | 10 | echo "Tries to geocode addresses (due a bug in the previous release, all addresses must run once again). (1/2)\n"; |
3095cd65 SJ |
11 | $it = XDB::rawIterator('SELECT * |
12 | FROM profile_addresses | |
13 | ORDER BY pid, jobid, type, id'); | |
14 | $pid = 0; | |
15 | $jobid = 0; | |
2493913b | 16 | while ($address = new Address($it->next())) { |
3095cd65 SJ |
17 | $address->format(array(true, true)); |
18 | $address->delete(); | |
19 | $address->save(); | |
20 | if (!($pid == $address->pid && $jobid == $address->jobid)) { | |
21 | $pid = $address->pid; | |
22 | $jobid = $address->jobid; | |
23 | sleep(60); | |
24 | } | |
25 | } | |
26 | ||
74e1e725 | 27 | echo "Deletes duplicated addresses. (2/2)\n"; |
3095cd65 SJ |
28 | $it = XDB::rawIterator("SELECT * |
29 | FROM profile_addresses | |
30 | WHERE type = 'home' | |
31 | ORDER BY pid, id"); | |
32 | $addresses = array(); | |
33 | $duplicates = array(); | |
34 | $address = new Address($it->next()); | |
35 | $pid = $address->pid; | |
36 | $addresses[] = $address; | |
37 | $count = 1; | |
38 | while ($address = new Address($it->next())) { | |
39 | if ($address->pid == $pid) { | |
40 | $address[] = $address; | |
41 | ++$count; | |
42 | } else { | |
43 | if ($count != 1) { | |
44 | for ($i = 0; $i < $count; ++$i) { | |
45 | for ($j = $i + 1; $j < $count; ++$j) { | |
46 | if ($addresses[$i]->text == $addresses[$j]->text) { | |
47 | $duplicates[$i] = true; | |
48 | } | |
49 | } | |
50 | } | |
51 | foreach ($duplicates as $key => $bool) { | |
52 | unset($addresses[$key]); | |
53 | } | |
54 | if (count($addresses) != $count) { | |
55 | Address::deleteAddresses($pid, 'home'); | |
56 | $id = 0; | |
57 | foreach ($addresses as $address) { | |
58 | $address->setId($id); | |
59 | $address->save(); | |
60 | ++$id; | |
61 | } | |
62 | XDB::execute('UPDATE profile_merge_issues | |
63 | SET issues = REPLACE(issues, \'address\', \'\') | |
64 | WHERE pid = {?}', $pid); | |
65 | } | |
66 | unset($duplicates); | |
67 | } | |
68 | unset($addresses); | |
69 | $pid = $address->pid; | |
70 | $addresses[] = $address; | |
71 | $count = 1; | |
72 | } | |
73 | } | |
74e1e725 | 74 | |
2493913b | 75 | echo "That's all folks!\n"; |
3095cd65 SJ |
76 | |
77 | /* vim:set et sw=4 sts=4 ts=4: */ | |
78 | ?> |