/** * main method - parse whole file and save into DB * @param string $file_name */ public function download($file_name = "") { $this->sourceManager = new SourceManager($this->database); if ($file_name != "") { try { $insertedRows = $this->parseData($file_name); $this->logger->addLog(new Log(Log::TYPE_INFO, 'WIFILEAKS DOWNLOAD', 'ulozeno ' . $insertedRows . ' siti')); } catch (\Exception $e) { $this->logger->addLog(new Log(Log::TYPE_ERROR, 'WIFILEAKS DOWNLOAD', 'Nepodarilo se ulozit. Zprava: ' . $e->getMessage() . '/n')); } } else { $rh = file_get_contents(self::WIFILEAKS_DOWNLOAD_DIR); preg_match_all(self::WIFILEAKS_DOWNLOAD_FILENAME_PATTERN, $rh, $matches); $latest = array('date' => 0, 'file' => ''); foreach ($matches as $match) { preg_match(self::WIFILEAKS_DOWNLOAD_FILENAME_DATE_PATTERN, $match[0], $date); $dates[] = $date; if (intval($date[1]) > $latest['date']) { $latest['date'] = intval($date[1]); $latest['file'] = $date[0]; } } if ($latest['file'] != '') { $lddc = $this->sourceManager->getLatestDownloadDataByIdSource(self::ID_SOURCE); if ($lddc) { if ($lddc == $latest['file']) { $this->logger->addLog(new Log(Log::TYPE_INFO, 'WIFILEAKS DOWNLOAD', 'NENALEZENA ZMENA - NEJAKTUALNEJSI SOUBOR J*Z BYL ZPRACOVAN')); echo 'NENALEZENA ZMENA - NEJAKTUALNEJSI SOUBOR J*Z BYL ZPRACOVAN'; return; } } $filePath = self::WIFILEAKS_DOWNLOAD_DIR . $latest['file']; // smazani predchozich $this->database->table("wifi")->where("id_source", self::ID_SOURCE)->delete(); // nahrani novych $insertedRows = $this->parseData($filePath); $this->logger->addLog(new Log(Log::TYPE_INFO, 'WIFILEAKS DOWNLOAD', 'ulozeno ' . $insertedRows . ' siti')); $this->sourceManager->saveLatestDownloadDataByIdSource(self::ID_SOURCE, $latest['file']); } else { echo 'POKUS O STAZENI Z WIFILEAKS NEBYL USPESNY - ZADNY SOUBOR NEVYHOVUJE REGULARNIMU VYRAZU: ' . self::WIFILEAKS_DOWNLOAD_FILENAME_PATTERN; $this->logger->addLog(new Log(Log::TYPE_ERROR, 'WIFILEAKS DOWNLOAD', 'POKUS O STAZENI Z WIFILEAKS NEBYL USPESNY - ZADNY SOUBOR NEVYHOVUJE REGULARNIMU VYRAZU: ' . self::WIFILEAKS_DOWNLOAD_FILENAME_PATTERN)); } } }