/** * @param array $pageInfo * @param array $revisionInfo * @return bool|mixed */ private function processRevision($pageInfo, $revisionInfo) { global $wgMaxArticleSize; // Make sure revisions won't violate $wgMaxArticleSize, which could lead to // database errors and instability. Testing for revisions with only listed // content models, as other content models might use serialization formats // which aren't checked against $wgMaxArticleSize. if ((!isset($revisionInfo['model']) || in_array($revisionInfo['model'], array('wikitext', 'css', 'json', 'javascript', 'text', ''))) && (int) (strlen($revisionInfo['text']) / 1024) > $wgMaxArticleSize) { throw new MWException('The text of ' . (isset($revisionInfo['id']) ? "the revision with ID {$revisionInfo['id']}" : 'a revision') . " exceeds the maximum allowable size ({$wgMaxArticleSize} KB)"); } $revision = new WikiRevision($this->config); if (isset($revisionInfo['id'])) { $revision->setID($revisionInfo['id']); } if (isset($revisionInfo['model'])) { $revision->setModel($revisionInfo['model']); } if (isset($revisionInfo['format'])) { $revision->setFormat($revisionInfo['format']); } $revision->setTitle($pageInfo['_title']); if (isset($revisionInfo['text'])) { $handler = $revision->getContentHandler(); $text = $handler->importTransform($revisionInfo['text'], $revision->getFormat()); $revision->setText($text); } if (isset($revisionInfo['timestamp'])) { $revision->setTimestamp($revisionInfo['timestamp']); } else { $revision->setTimestamp(wfTimestampNow()); } if (isset($revisionInfo['comment'])) { $revision->setComment($revisionInfo['comment']); } if (isset($revisionInfo['minor'])) { $revision->setMinor(true); } if (isset($revisionInfo['contributor']['ip'])) { $revision->setUserIP($revisionInfo['contributor']['ip']); } elseif (isset($revisionInfo['contributor']['username'])) { $revision->setUserName($revisionInfo['contributor']['username']); } else { $revision->setUserName('Unknown user'); } $revision->setNoUpdates($this->mNoUpdates); return $this->revisionCallback($revision); }
/** * @param array $pageInfo * @param array $revisionInfo * @return bool|mixed */ private function processRevision($pageInfo, $revisionInfo) { $revision = new WikiRevision($this->config); if (isset($revisionInfo['id'])) { $revision->setID($revisionInfo['id']); } if (isset($revisionInfo['model'])) { $revision->setModel($revisionInfo['model']); } if (isset($revisionInfo['format'])) { $revision->setFormat($revisionInfo['format']); } $revision->setTitle($pageInfo['_title']); if (isset($revisionInfo['text'])) { $handler = $revision->getContentHandler(); $text = $handler->importTransform($revisionInfo['text'], $revision->getFormat()); $revision->setText($text); } if (isset($revisionInfo['timestamp'])) { $revision->setTimestamp($revisionInfo['timestamp']); } else { $revision->setTimestamp(wfTimestampNow()); } if (isset($revisionInfo['comment'])) { $revision->setComment($revisionInfo['comment']); } if (isset($revisionInfo['minor'])) { $revision->setMinor(true); } if (isset($revisionInfo['contributor']['ip'])) { $revision->setUserIP($revisionInfo['contributor']['ip']); } if (isset($revisionInfo['contributor']['username'])) { $revision->setUserName($revisionInfo['contributor']['username']); } $revision->setNoUpdates($this->mNoUpdates); return $this->revisionCallback($revision); }
/** * @param $pageInfo * @param $revisionInfo * @return bool|mixed */ private function processRevision($pageInfo, $revisionInfo) { $revision = new WikiRevision(); if (isset($revisionInfo['id'])) { $revision->setID($revisionInfo['id']); } if (isset($revisionInfo['text'])) { $revision->setText($revisionInfo['text']); } $revision->setTitle($pageInfo['_title']); if (isset($revisionInfo['timestamp'])) { $revision->setTimestamp($revisionInfo['timestamp']); } else { $revision->setTimestamp(wfTimestampNow()); } if (isset($revisionInfo['comment'])) { $revision->setComment($revisionInfo['comment']); } if (isset($revisionInfo['minor'])) { $revision->setMinor(true); } if (isset($revisionInfo['contributor']['ip'])) { $revision->setUserIP($revisionInfo['contributor']['ip']); } if (isset($revisionInfo['contributor']['username'])) { $revision->setUserName($revisionInfo['contributor']['username']); } $revision->setNoUpdates($this->mNoUpdates); return $this->revisionCallback($revision); }