Exemplo n.º 1
0
 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;
 }
Exemplo n.º 2
0
 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;
         }
     }
 }