Revize 6806f46f
Přidáno uživatelem horkym před téměř 7 roky(ů)
cron/parser.php | ||
---|---|---|
2 | 2 |
|
3 | 3 |
require_once "traffic.php"; |
4 | 4 |
require_once "location.php"; |
5 |
require_once "logging.php"; |
|
5 | 6 |
|
6 | 7 |
class Parser { |
7 | 8 |
|
... | ... | |
26 | 27 |
// Skoro to same jako $traffic, akorat bez rozmeru pro casove intervaly. |
27 | 28 |
private $trafficOneDay; |
28 | 29 |
|
29 |
public function __construct() { |
|
30 |
// Objekt pro logovani do souboru cron.txt ve slozce log. |
|
31 |
private $logs; |
|
32 |
|
|
33 |
public function __construct($logs) { |
|
30 | 34 |
$this->name = "DOPR_D_"; |
31 | 35 |
$this->path = "http://doprava.plzensky-kraj.cz/opendata/doprava/den/".$this->name; |
32 | 36 |
|
... | ... | |
37 | 41 |
$this->intervalMilli = (int) (24 * 3600000 / $this->HOW_MANY_INTERVALS); |
38 | 42 |
$this->traffic = array(); |
39 | 43 |
$this->trafficOneDay = array(); |
44 |
|
|
45 |
$this->logs = $logs; |
|
40 | 46 |
} |
41 | 47 |
|
42 | 48 |
public function doWork($date) { |
49 |
$this->logs->log(Logging::INFO, "ZACATEK PROCEDURY pro den ".DateTime::createFromFormat("Ymd", $date)->format("d.m.Y")."."); |
|
50 |
|
|
43 | 51 |
$zipUrl = $this->path.$date.".zip"; |
44 | 52 |
$dir = "download/$date/"; |
45 | 53 |
$downloaded = $dir."downloaded.zip"; |
... | ... | |
54 | 62 |
} |
55 | 63 |
|
56 | 64 |
if ($ok == 0 || $result == 1) { |
65 |
$this->logs->log(Logging::INFO, "Zpracovavani zaznamu o doprave."); |
|
57 | 66 |
$this->parse($dir.$this->name.$date.".csv", TRUE); |
67 |
|
|
68 |
$this->logs->log(Logging::INFO, "Zpracovavani zaznamu o lokacich."); |
|
58 | 69 |
$this->parse($dir."Locations.csv", FALSE); |
59 | 70 |
// return; odkomentovat v pripade, ze extrahovana data nemaji byt odstranena. |
60 | 71 |
} |
61 | 72 |
|
73 |
$this->logs->log(Logging::INFO, "Odstranovani slozky s extrahovanymi daty."); |
|
62 | 74 |
$this->deleteDir($dir); |
63 | 75 |
|
64 | 76 |
} |
77 |
|
|
78 |
$this->logs->log(Logging::INFO, "KONEC PROCEDURY."); |
|
65 | 79 |
} |
66 | 80 |
|
67 | 81 |
private function parse($fileName, $traffic) { |
... | ... | |
128 | 142 |
if (mkdir($dir)) { |
129 | 143 |
if (copy($zipUrl, $downloaded)) { |
130 | 144 |
// Stazeni probehlo v poradku. |
145 |
$this->logs->log(Logging::INFO, "Stazeni archivu probehlo v poradku."); |
|
131 | 146 |
return 0; |
132 | 147 |
} else { |
133 | 148 |
// Nepovedlo se stazeni zip souboru. |
149 |
$this->logs->log(Logging::ERROR, "Nepovedlo se stazeni archivu."); |
|
134 | 150 |
return -1; |
135 | 151 |
} |
136 | 152 |
} else { |
137 | 153 |
// Nepodarilo se vytvorit slozku pro data. |
154 |
$this->logs->log(Logging::ERROR, "Nepodarilo se vytvorit slozku pro data."); |
|
138 | 155 |
return -2; |
139 | 156 |
} |
140 | 157 |
} else { |
141 | 158 |
// Data k vybranemu dni jiz byla stazena. |
159 |
$this->logs->log(Logging::INFO, "Data k vybranemu dni jiz byla stazena."); |
|
142 | 160 |
return 1; |
143 | 161 |
} |
144 | 162 |
} else { |
145 | 163 |
// Pro dany datum neexistuji data. |
164 |
$this->logs->log(Logging::WARNING, "Pro dany datum neexistuji data."); |
|
146 | 165 |
return -3; |
147 | 166 |
} |
148 | 167 |
} |
... | ... | |
153 | 172 |
$zip->extractTo($dir); |
154 | 173 |
$zip->close(); |
155 | 174 |
// Extrahovani v poradku dokonceno. |
175 |
$this->logs->log(Logging::INFO, "Extrahovani archivu v poradku dokonceno."); |
|
156 | 176 |
return 0; |
157 | 177 |
} else { |
158 | 178 |
// Nepovedlo se extrahovani obsahu zipu. |
179 |
$this->logs->log(Logging::ERROR, "Pri extrahovani archivu doslo k chybe."); |
|
159 | 180 |
return -1; |
160 | 181 |
} |
161 | 182 |
} |
Také k dispozici: Unified diff
refs #6919: Logy
Vytvorena trida pro logovani. Vyuziti v hlavnim skriptu a ve tride Parser (pro objekty komunikujici s databazi zatim nevyuzito). Pridan ukazkovy vystupni soubor.