/** * estrae gli N atti più rilevanti per determinati argomenti (tag) */ function run_a0_get_main_acts_for_tags($task, $args, $options) { static $loaded; // load application context if (!$loaded) { task_loader(); $loaded = true; } echo "memory usage: " . memory_get_usage() . "\n"; $msg = sprintf("start time: %s\n", date('H:i:s')); echo $msg; $n = 1; if (array_key_exists('nrecs', $options)) { $n = (int) $options['nrecs']; } if (!is_int($n) || $n < 1) { throw new Exception("il numero di atti deve essere un intero\n"); } if (count($args) > 0) { $argomenti = array(); foreach ($args as $cnt => $arg) { $id = TagPeer::getIdFromTagValue($arg); $xml_url = sprintf("http://parlamento.openpolis.it/xml/indici/tag/%d.xml", $id); $xsl_file = SF_ROOT_DIR . "/web/xml/indici/xslt/tagActsSorter.xslt"; printf("Argomento %s:\n", $arg, $id); getImportantActs($xml_url, $xsl_file, $n); print "\n"; } } $start_time = time(); $msg = sprintf("end time: %s\n", date('H:i:s')); echo $msg; $msg = sprintf("memory usage: %10d\n", memory_get_usage()); echo pakeColor::colorize($msg, array('fg' => 'red', 'bold' => false)); }
/** * calcola o ri-calcola le posizioni per indici e presenze * nelle tabelle cache, a una determinata data (o a tutte) * * @param string $task * @param string $args * @param string $options * @return void * @author Guglielmo Celata */ function run_opp_rebuild_positions($task, $args, $options) { static $loaded; // load application context if (!$loaded) { task_loader(); $loaded = true; } $data = ''; $dry_run = false; if (array_key_exists('data', $options)) { $data = $options['data']; } if (array_key_exists('dry-run', $options)) { $dry_run = true; } $msg = sprintf("start time: %s\n", date('H:i:s')); echo $msg; if ($data != '') { $p_dates = array($data => $data); } $p_dates = OppPoliticianHistoryCachePeer::extractDates('N', null, 10000); while ($rs->next()) { $cnt++; $r = $rs->getRow(); printf("%6d) %1s %7d ... ", $cnt, $r['chi_tipo'], $r['chi_id']); // calcolo date fine mese scorso e precedente list($data_1, $data_2) = Util::getLast2MonthsDate($data); // estrazione record storici a due mesi $r_1 = OppPoliticianHistoryCachePeer::retrieveByDataChiTipoChiIdRamo($data_1, $r['chi_tipo'], $r['chi_id'], $r['ramo']); $r_2 = OppPoliticianHistoryCachePeer::retrieveByDataChiTipoChiIdRamo($data_2, $r['chi_tipo'], $r['chi_id'], $r['ramo']); // salta record per cui non c'è abbastanza storia if (!$r_1 instanceof OppPoliticianHistoryCache || !$r_2 instanceof OppPoliticianHistoryCache) { printf(" NA \n"); continue; } list($presenze_delta, $assenze_delta, $missioni_delta) = presenzeDelta($data_lookup, $r, $r_1, $r_2); printf("d_presenze: %7.2f, d_assenze: %7.2f, d_missioni: %7.2f, ", $presenze_delta, $assenze_delta, $missioni_delta); $indice_delta = indiceDelta($data_lookup, $r, $r_1, $r_2, $data_1, $data_2); printf("d_indice: %7.2f, ", $indice_delta); $ribellioni_delta = ribellioniDelta($data_lookup, $r, $r_1, $r_2, $data_1, $data_2); printf("d_ribellioni: %7.2f", $ribellioni_delta); if (!$dry_run) { $r = OppPoliticianHistoryCachePeer::retrieveByDataChiTipoChiIdRamo($data_lookup, $r['chi_tipo'], $r['chi_id'], $r['ramo']); $r->setPresenzeDelta($presenze_delta); $r->setAssenzeDelta($assenze_delta); $r->setMissioniDelta($missioni_delta); $r->setIndiceDelta($indice_delta); $r->setRibellioniDelta($ribellioni_delta); $r->save(); printf(" OK!\n"); } else { printf("\n"); } } echo "data: {$data_lookup}\n"; $msg = sprintf("end time: %s\n", date('H:i:s')); echo $msg; }