$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);
Example #2
0
     $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']] . ",";
         }
     }