function insertEdit($id, $isVand, $isActive, $reviewers, $reviewers_agreeing, $source, $data = null) { $mysql = getMasterMySQL(); if ($data === null) { $data = oldData($id); } if ($data === false) { echo 'Bad revid. Not inserted.'; return false; } $query = 'REPLACE INTO `editset` ( `edittype`, `editid`, `comment`, `user`, `user_edit_count`, `user_distinct_pages`, `user_warns`, `prev_user`, `user_reg_time`, `common_page_made_time`, `common_title`, `common_namespace`, `common_creator`, `common_num_recent_edits`, `common_num_recent_reversions`, `current_minor`, `current_timestamp`, `current_text`, `previous_timestamp`, `previous_text`, `isvandalism`, `isactive`, `source`, `reviewers`, `reviewers_agreeing` ) VALUES ('; $escaped = array($data['EditType'], $data['EditID'], $data['comment'], $data['user'], $data['user_edit_count'], $data['user_distinct_pages'], $data['user_warns'], $data['prev_user'], $data['user_reg_time'], $data['common']['page_made_time'], $data['common']['title'], $data['common']['namespace'], $data['common']['creator'], $data['common']['num_recent_edits'], $data['common']['num_recent_reversions'], $data['current']['minor'] == 'true' ? 1 : 0, $data['current']['timestamp'], $data['current']['text'], $data['previous']['timestamp'], $data['previous']['text'], $isVand ? 1 : 0, $isActive ? 1 : 0, $source, $reviewers, $reviewers_agreeing); foreach ($escaped as $key => &$value) { if ($key == 8 or $key == 9 or $key == 16 or $key == 18) { $value = 'FROM_UNIXTIME( \'' . mysql_real_escape_string($value) . '\' )'; } else { $value = '\'' . mysql_real_escape_string($value) . '\''; } } $query .= implode(',', $escaped); $query .= ' )'; $ret = mysql_query($query); if (!$ret) { echo 'Error inserting ' . $id . ': ' . mysql_error(); return false; } return true; }
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"; } }
function oldXML($ids) { if (!is_array($ids)) { $ids = array($ids); } $feedData = array(); foreach ($ids as $id) { $feedData[] = oldData($id); } return toXML($feedData); }
$xml->startDocument('1.0', 'UTF-8'); $xml->startElement('WPEditSet'); $in = fopen('php://stdin', 'r'); while (!feof($in)) { $line = trim(fgets($in, 512)); if (!$line) { continue; } 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; } if (!$isActive) { continue; } $data = oldData($id); xmlPart($xml, 'WPEdit', $data); } fclose($in); $xml->endElement(); $xml->endDocument(); $xml->flush();