public function updateDateRange($date, $use_year = true) { $date = new LsDate($date); if ($use_year) { $date->setDay('00'); $date->setMonth('00'); } if ($date->getYear() == '0000') { return false; } //start date and end date both null, make start date the date if (!$this->end_date && !$this->start_date) { $this->start_date = (string) $date; $this->end_date = (string) $date; return true; } $end_date = new LsDate($this->end_date); $start_date = new LsDate($this->start_date); $start_date_comp = LsDate::compare($date, $start_date); $end_date_comp = LsDate::compare($date, $end_date); //if date is the same as either start date or end date, make no changes if ($start_date_comp == LsDate::COMPARE_SAME || $end_date_comp === LsDate::COMPARE_SAME) { return false; } else { if ($start_date_comp == LsDate::COMPARE_BEFORE) { $this->start_date = (string) $date; return true; } else { if ($end_date_comp == LsDate::COMPARE_AFTER) { $this->end_date = (string) $date; return true; } } } //no changes have been made return false; }
private function getRawFiles() { $url = 'http://www.senate.gov/legislative/Public_Disclosure/database_download.htm'; $this->browser->get($url); $text = $this->browser->getResponseText(); $re = '/(http\\:\\/\\/soprweb\\.senate\\.gov\\/downloads\\/(((19|20)\\d\\d)_(\\d)\\.zip))">.*?((\\d+)\\/(\\d+)\\/(\\d+))/is'; //</td><td align="center">6/17/2008</td> preg_match_all($re, $text, $matches, PREG_SET_ORDER); foreach ($matches as $match) { $date = new LsDate($match[6]); $file = sfConfig::get('sf_root_dir') . '/data/ldaFiles/' . $match[2]; if (file_exists($file)) { $date2 = new LsDate(date('Y-m-d', filemtime($file))); if (LsDate::compare($date, $date2) < 1) { continue; } } $this->browser->get($match[1]); $saved = file_put_contents($file, $this->browser->getResponseText()); if ($saved !== FALSE) { $this->printDebug('saved'); $zip = zip_open($file); if (is_resource($zip)) { $this->printDebug('unzipped'); while ($zip_entry = zip_read($zip)) { $n = basename(zip_entry_name($zip_entry)); $li = Doctrine::getTable('LdaImport')->findOneByFilename($n); if ($li && $li->filesize == zip_entry_filesize($zip_entry)) { continue; } $fp = fopen($this->_dir . $n, 'w'); if (zip_entry_open($zip, $zip_entry, "r")) { $buf = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry)); zip_entry_close($zip_entry); fwrite($fp, $buf); fclose($fp); $li = new LdaImport(); $li->year = $match[2]; $li->quarter = $match[5]; $li->filename = $n; $li->filesize = filesize($this->_dir . $n); $li->offset = 0; $li->save(); } } zip_close($zip); } else { $this->printDebug('zip failure'); } } else { continue; } } }