function processEdit(&$stack, &$frame) { $id = $frame['ID']; $isVand = $frame['RealClassification'] == 'V' ? 1 : 0; if ($isVand or $frame['RealClassification'] == 'C') { $isActive = 1; } else { $isActive = 0; } $reviewers = $frame['Vandalism'] + $frame['Constructive'] + $frame['Skipped']; $reviewers_agreeing = max($frame['Vandalism'], $frame['Constructive'], $frame['Skipped']); $source = 'Review Interface'; foreach ($stack as &$stackFrame) { if (isset($stackFrame['Name'])) { $source = $stackFrame['Name']; } } $mysql = getMasterMySQL(); $row = mysql_fetch_assoc(mysql_query('SELECT `isvandalism`, `isactive`, `reviewers`, `reviewers_agreeing` FROM `editset` WHERE `editid` = \'' . mysql_real_escape_string($id) . '\'')); if (!$row) { echo 'Inserting ' . $id . ' ...'; $ret = insertEdit($id, $isVand, $isActive, $reviewers, $reviewers_agreeing, $source); if ($ret) { echo ' Done.' . "\n"; } else { echo ' Failed.' . "\n"; } } else { $updates = array(); if ($row['isvandalism'] != $isVand) { $updates[] = '`isvandalism` = \'' . mysql_real_escape_string($isVand) . '\''; } if ($row['isactive'] != $isActive) { $updates[] = '`isactive` = \'' . mysql_real_escape_string($isActive) . '\''; } if ($row['reviewers'] != $reviewers) { $updates[] = '`reviewers` = \'' . mysql_real_escape_string($reviewers) . '\''; } if ($row['reviewers_agreeing'] != $reviewers_agreeing) { $updates[] = '`reviewers_agreeing` = \'' . mysql_real_escape_string($reviewers_agreeing) . '\''; } if (count($updates) > 0) { echo 'Updating ' . $id . ' ...'; $ret = mysql_query('UPDATE `editset` SET ' . implode(', ', $updates) . ' WHERE `editid` = \'' . mysql_real_escape_string($id) . '\''); if ($ret) { echo ' Done.' . "\n"; } else { echo ' Failed.' . "\n"; } } } }
function processRow($id, $isVand, $isActive, $reviewers, $reviewers_agreeing, $source) { echo "Getting master data[1;33m ... [1;32m"; $dbData = getMasterData($id); echo "Getting Wikipedia data[1;33m ... [1;32m"; $apiData = oldData($id); if (!compareArray($dbData, $apiData)) { echo "Inserting[1;33m ... [1;32m"; insertEdit($id, $isVand, $isActive, $reviewers, $reviewers_agreeing, $source, $apiData); } else { echo "Nothing to do[1;33m ... [1;32m"; } }
$source = $argv[1]; $in = fopen('php://stdin', 'r'); while (!feof($in)) { $line = trim(fgets($in, 512)); list($id, $type) = explode(' ', $line, 2); switch ($type[0]) { case 'V': list($isVand, $isActive) = array(1, 1); break; case 'S': case 'U': list($isVand, $isActive) = array(0, 0); break; case 'C': list($isVand, $isActive) = array(0, 1); break; } $mysql = getMasterMySQL(); $row = mysql_fetch_assoc(mysql_query('SELECT `editid` FROM `editset` WHERE `editid` = \'' . mysql_real_escape_string($id) . '\'')); if ($row) { continue; } echo 'Inserting ' . $id . ' ...'; $ret = insertEdit($id, $isVand, $isActive, 0, 0, $source); if ($ret) { echo ' Done.' . "\n"; } else { echo ' Failed.' . "\n"; } } fclose($in);