votedate = (int) $doc['when']; $votedate = getdate($vote->votedate); $vote->congress = (int) $doc['session']; $vote->session = 2 - ($votedate['year'] % 2); $vote->chamber = substr((string) $doc['where'], 0, 1); $vote->number = (int) $doc['roll']; $vote->type = (string) $doc->type; $vote->question = (string) $doc->question; $vote->required = (string) $doc->required; $vote->result = (string) $doc->result; //// look up referenced bill, if any $vote->bill_id = 0; if (isset($doc->bill)) { $congress = (int) $doc->bill['session']; $billtype = (string) $doc->bill['type']; $number = (int) $doc->bill['number']; $bill = Bill::get_by_congress_type_number($congress, $billtype, $number); if ($bill != null) { $vote->bill_id = $bill->id; } } //// look up referenced amendment, if any $vote->amendment_id = 0; if (isset($doc->amendment)) { $ref = (string) $doc->amendment['ref']; $number = (string) $doc->amendment['number']; if ($ref == 'bill-serial') { $amdt = Amendment::get_by_bill_sequence($vote->bill_id, $number); if ($amdt != null) { $vote->amendment_id = $amdt->id; } } else if ($ref == 'regular') { $chamber = substr($number, 0, 1); $number = substr($number, 1); $amdt = Amendment::get_by_congress_chamber_number($vote->congress, $chamber, $number); if ($amdt != null) { $vote->amendment_id = $amdt->id; } } } //// tally the votes $votes = array(); foreach ($doc->voter as $voter) { $votes[(int) $voter['id']] = (string) $voter['vote']; } $vote->votes = $votes; $vote->save(); echo "{$vote->congress} {$vote->session} {$vote->chamber} {$vote->number}\n"; } if (isset($_SERVER['argv'])) { if ($_SERVER['argv'][0] != 'vote.php') { return; } if (count($_SERVER['argv']) > 1) { //// parse arguments parseVote($_SERVER['argv'][1]); } else { //// process all current congress amendments in the data dir $current = get_current_congress_session(); $votes_dir = $data_dir ."/us/{$current['congress']}/rolls"; $listing = scandir($votes_dir); foreach ($listing as $filename) { $path ="{$votes_dir}/{$filename}"; if (is_file($path)) { parseVote($path); } } } } ?>