/**
  * 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));
         }
     }
 }