|
1 <?php |
|
2 |
|
3 @set_time_limit(0); |
|
4 @ini_set('memory_limit', '256M'); |
|
5 |
|
6 if ( $dir = @opendir('.') ) |
|
7 { |
|
8 while ( $dh = @readdir($dir) ) |
|
9 { |
|
10 if ( !preg_match('/^stats-data(-[0-9]+)\.php$/', $dh) ) |
|
11 continue; |
|
12 |
|
13 split_stats_file($dh); |
|
14 } |
|
15 closedir($dir); |
|
16 } |
|
17 |
|
18 function split_stats_file($file) |
|
19 { |
|
20 echo "loading $file"; |
|
21 |
|
22 require($file); |
|
23 if ( !is_array($stats_data) ) |
|
24 { |
|
25 return false; |
|
26 } |
|
27 |
|
28 unlink($file); |
|
29 |
|
30 echo "\rprocessing $file\n"; |
|
31 |
|
32 $newdata = array(); |
|
33 foreach ( $stats_data['messages'] as $channel => &$chandata ) |
|
34 { |
|
35 echo " processing channel $channel\n"; |
|
36 foreach ( $chandata as $i => $message ) |
|
37 { |
|
38 $message_day = gmdate('Ymd', $message['time']); |
|
39 if ( !isset($newdata[$message_day]) ) |
|
40 { |
|
41 echo "\r processing " . gmdate('Y-m-d', $message['time']); |
|
42 $newdata[$message_day] = array( |
|
43 'messages' => array() |
|
44 ); |
|
45 if ( isset($stats_data['counts']) ) |
|
46 { |
|
47 $newdata[$message_day]['counts'] = $stats_data['counts']; |
|
48 } |
|
49 if ( isset($stats_data['anonymous']) ) |
|
50 { |
|
51 $newdata[$message_day]['anonymous'] = $stats_data['anonymous']; |
|
52 } |
|
53 } |
|
54 if ( !isset($newdata[$message_day]['messages'][$channel]) ) |
|
55 { |
|
56 $newdata[$message_day]['messages'][$channel] = array(); |
|
57 } |
|
58 $newdata[$message_day]['messages'][$channel][] = $message; |
|
59 unset($chandata[$i]); |
|
60 } |
|
61 echo "\n"; |
|
62 } |
|
63 foreach ( $newdata as $date => &$data ) |
|
64 { |
|
65 echo "\r writing output for $date"; |
|
66 write_stats_file("stats-data-$date.php", $data); |
|
67 } |
|
68 echo "\n"; |
|
69 } |
|
70 |
|
71 function write_stats_file($file, $data) |
|
72 { |
|
73 $fp = @fopen($file, 'w'); |
|
74 if ( !$fp ) |
|
75 return false; |
|
76 |
|
77 ob_start(); |
|
78 var_export($data); |
|
79 $data = ob_get_contents(); |
|
80 ob_end_clean(); |
|
81 |
|
82 fwrite($fp, "<?php\n\$stats_data = $data;\n"); |
|
83 fclose($fp); |
|
84 unset($data); |
|
85 } |