$map[] = sprintf('"%s" => isset($el["%s"]) ? $el["%s"] : null', $dst, $src, $src); } $fn = create_function('$el', 'return array(' . join(', ', $map) . ');'); return array_map($fn, $rows); } // paremad URL-id: http://otse.err.ee/saatekavad/tv/: // ETV: http://otse.err.ee/xml/29-03-2012-etv-2.html // ETV2: http://otse.err.ee/xml/29-03-2012-etv2-2.html require 'scraperwiki/simple_html_dom.php'; #$etv_program = fetchETV(1); #saveTable($etv_program, 'id', 'etv_program'); #$etv_shows = fetchETVShows( array_unique(cutColumn($etv_program, 'show_id'))); #saveTable($etv_shows, 'id', 'etv_shows'); list($kanal2_program, $kanal2_shows) = fetchKanal2Week(); saveTable($kanal2_program, 'id', 'kanal2_program'); saveTable($kanal2_shows, 'id', 'kanal2_shows'); /* destination: copyWeb( 'http://kanal2.ee/program/week?date=' . (empty($weekStart) ? date('Y-m-d') : $weekStart), 'div.saatekava_nadalakava div.dayblock, div.saatekava_nadalakava table.kavatabel tr', 'span.day, .time, .saade a', "SELECT substr(id_1, strlen('saatekava_popup_')) AS show_id FROM _ WHERE ..." ); problems: - can't do more than one operation on crawled web - can't set some variable and fill following fields on top of it (very often date, month or something) */ // WORKER FUNCTIONS function fetchKanal2Week($weekStart = null) { $url = 'http://kanal2.ee/program/week?date=' . (empty($weekStart) ? date('Y-m-d') : $weekStart);
$x = $player[$argv[2]]['losses'] + $player[$argv[2]]['wins']; $results['b'] = $player[$argv[2]]['elo'] + ($results['b'] - $player[$argv[2]]['elo']) * (1 + ($argv[3] / 7) ** 1.5) * (($x + 0.5) / $x ** (($x + 6) / 6) + 1); } else { $x = $player[$argv[1]]['losses'] + $player[$argv[1]]['wins']; $results['a'] = $player[$argv[1]]['elo'] + ($results['a'] - $player[$argv[1]]['elo']) * (($x + 0.5) / $x ** (($x + 6) / 6) + 1); $x = $player[$argv[2]]['losses'] + $player[$argv[2]]['wins']; $results['b'] = $player[$argv[2]]['elo'] + ($results['b'] - $player[$argv[2]]['elo']) * (($x + 0.5) / $x ** (($x + 6) / 6) + 1); } print "------------------------------------------------------" . PHP_EOL; print "New rating for " . $argv[1] . ": " . round($results['a']) . " (" . sprintf("%+d", round($results['a'] - $player[$argv[1]]['elo'])) . ")" . PHP_EOL; print "New rating for " . $argv[2] . ": " . round($results['b']) . " (" . sprintf("%+d", round($results['b'] - $player[$argv[2]]['elo'])) . ")" . PHP_EOL; print "Head to head: " . $argv[1] . " " . $record[$argv[1]][$argv[2]] . " " . $argv[2] . PHP_EOL; print "------------------------------------------------------" . PHP_EOL; $player[$argv[1]]['elo'] = $results['a']; $player[$argv[2]]['elo'] = $results['b']; saveTable($player); poolTable($player); $output = "Name,"; foreach ($player as $playa) { $output .= $playa['name'] . ","; } $output .= PHP_EOL; foreach ($player as $playa) { $output .= $playa['name'] . ","; foreach ($player as $playor) { if (!isset($record[$playa['name']][$playor['name']])) { $output .= "0:0,"; } else { $output .= $record[$playa['name']][$playor['name']] . ","; } }