X-Git-Url: https://git.heureux-cyclage.org/?p=lhc%2Fweb%2Fwiklou.git;a=blobdiff_plain;f=includes%2Fimport%2FWikiRevision.php;h=edb0c9af1c7523ea112e2f10802d89a0dad3968d;hp=df71524240c6fb1fb1d806c2ecaada22d1c4cabb;hb=2480aae0c97d822e10b50619e7b48b25c45af073;hpb=e121e52fd87d1c949a9cd51fd4c79d0948ed8a84 diff --git a/includes/import/WikiRevision.php b/includes/import/WikiRevision.php index df71524240..edb0c9af1c 100644 --- a/includes/import/WikiRevision.php +++ b/includes/import/WikiRevision.php @@ -28,6 +28,8 @@ * Represents a revision, log entry or upload during the import process. * This class sticks closely to the structure of the XML dump. * + * @since 1.2 + * * @ingroup SpecialPage */ class WikiRevision { @@ -39,79 +41,143 @@ class WikiRevision { */ public $importer = null; - /** @var Title */ + /** + * @since 1.2 + * @var Title + */ public $title = null; - /** @var int */ + /** + * @since 1.6.4 + * @var int + */ public $id = 0; - /** @var string */ + /** + * @since 1.2 + * @var string + */ public $timestamp = "20010115000000"; /** + * @since 1.2 * @var int * @deprecated in 1.29. Unused. * @note Introduced in 436a028086fb3f01c4605c5ad2964d56f9306aca, unused there, unused now. */ public $user = 0; - /** @var string */ + /** + * @since 1.2 + * @var string + */ public $user_text = ""; - /** @var User */ + /** + * @since 1.27 + * @var User + */ public $userObj = null; - /** @var string */ + /** + * @since 1.21 + * @var string + */ public $model = null; - /** @var string */ + /** + * @since 1.21 + * @var string + */ public $format = null; - /** @var string */ + /** + * @since 1.2 + * @var string + */ public $text = ""; - /** @var int */ + /** + * @since 1.12.2 + * @var int + */ protected $size; - /** @var Content */ + /** + * @since 1.21 + * @var Content + */ public $content = null; - /** @var ContentHandler */ + /** + * @since 1.24 + * @var ContentHandler + */ protected $contentHandler = null; - /** @var string */ + /** + * @since 1.2.6 + * @var string + */ public $comment = ""; - /** @var bool */ + /** + * @since 1.5.7 + * @var bool + */ public $minor = false; - /** @var string */ + /** + * @since 1.12.2 + * @var string + */ public $type = ""; - /** @var string */ + /** + * @since 1.12.2 + * @var string + */ public $action = ""; - /** @var string */ + /** + * @since 1.12.2 + * @var string + */ public $params = ""; - /** @var string */ + /** + * @since 1.17 + * @var string + */ public $fileSrc = ''; - /** @var bool|string */ + /** + * @since 1.17 + * @var bool|string + */ public $sha1base36 = false; /** - /** @var string */ + * @since 1.17 + * @var string + */ public $archiveName = ''; + /** + * @since 1.12.2 + */ protected $filename; - /** @var mixed */ + /** + * @since 1.12.2 + * @var mixed + */ protected $src; /** * @since 1.18 * @var bool + * @todo Unused? */ public $isTemp = false; @@ -134,6 +200,7 @@ class WikiRevision { } /** + * @since 1.7 taking a Title object (string before) * @param Title $title * @throws MWException */ @@ -149,6 +216,7 @@ class WikiRevision { } /** + * @since 1.6.4 * @param int $id */ public function setID( $id ) { @@ -156,6 +224,7 @@ class WikiRevision { } /** + * @since 1.2 * @param string $ts */ public function setTimestamp( $ts ) { @@ -164,6 +233,7 @@ class WikiRevision { } /** + * @since 1.2 * @param string $user */ public function setUsername( $user ) { @@ -171,6 +241,7 @@ class WikiRevision { } /** + * @since 1.27 * @param User $user */ public function setUserObj( $user ) { @@ -178,6 +249,7 @@ class WikiRevision { } /** + * @since 1.2 * @param string $ip */ public function setUserIP( $ip ) { @@ -185,6 +257,7 @@ class WikiRevision { } /** + * @since 1.21 * @param string $model */ public function setModel( $model ) { @@ -192,6 +265,7 @@ class WikiRevision { } /** + * @since 1.21 * @param string $format */ public function setFormat( $format ) { @@ -199,6 +273,7 @@ class WikiRevision { } /** + * @since 1.2 * @param string $text */ public function setText( $text ) { @@ -206,6 +281,7 @@ class WikiRevision { } /** + * @since 1.2.6 * @param string $text */ public function setComment( $text ) { @@ -213,6 +289,7 @@ class WikiRevision { } /** + * @since 1.5.7 * @param bool $minor */ public function setMinor( $minor ) { @@ -220,6 +297,7 @@ class WikiRevision { } /** + * @since 1.12.2 * @param mixed $src */ public function setSrc( $src ) { @@ -227,6 +305,7 @@ class WikiRevision { } /** + * @since 1.17 * @param string $src * @param bool $isTemp */ @@ -237,6 +316,7 @@ class WikiRevision { } /** + * @since 1.17 * @param string $sha1base36 */ public function setSha1Base36( $sha1base36 ) { @@ -244,6 +324,7 @@ class WikiRevision { } /** + * @since 1.12.2 * @param string $filename */ public function setFilename( $filename ) { @@ -251,6 +332,7 @@ class WikiRevision { } /** + * @since 1.17 * @param string $archiveName */ public function setArchiveName( $archiveName ) { @@ -258,6 +340,7 @@ class WikiRevision { } /** + * @since 1.12.2 * @param int $size */ public function setSize( $size ) { @@ -265,6 +348,7 @@ class WikiRevision { } /** + * @since 1.12.2 * @param string $type */ public function setType( $type ) { @@ -272,6 +356,7 @@ class WikiRevision { } /** + * @since 1.12.2 * @param string $action */ public function setAction( $action ) { @@ -279,6 +364,7 @@ class WikiRevision { } /** + * @since 1.12.2 * @param array $params */ public function setParams( $params ) { @@ -286,6 +372,7 @@ class WikiRevision { } /** + * @since 1.18 * @param bool $noupdates */ public function setNoUpdates( $noupdates ) { @@ -293,6 +380,7 @@ class WikiRevision { } /** + * @since 1.2 * @return Title */ public function getTitle() { @@ -300,6 +388,7 @@ class WikiRevision { } /** + * @since 1.6.4 * @return int */ public function getID() { @@ -307,6 +396,7 @@ class WikiRevision { } /** + * @since 1.2 * @return string */ public function getTimestamp() { @@ -314,6 +404,7 @@ class WikiRevision { } /** + * @since 1.2 * @return string */ public function getUser() { @@ -321,6 +412,7 @@ class WikiRevision { } /** + * @since 1.27 * @return User */ public function getUserObj() { @@ -328,6 +420,7 @@ class WikiRevision { } /** + * @since 1.2 * @return string */ public function getText() { @@ -335,6 +428,7 @@ class WikiRevision { } /** + * @since 1.24 * @return ContentHandler */ public function getContentHandler() { @@ -346,6 +440,7 @@ class WikiRevision { } /** + * @since 1.21 * @return Content */ public function getContent() { @@ -358,6 +453,7 @@ class WikiRevision { } /** + * @since 1.21 * @return string */ public function getModel() { @@ -369,6 +465,7 @@ class WikiRevision { } /** + * @since 1.21 * @return string */ public function getFormat() { @@ -380,6 +477,7 @@ class WikiRevision { } /** + * @since 1.2.6 * @return string */ public function getComment() { @@ -387,6 +485,7 @@ class WikiRevision { } /** + * @since 1.5.7 * @return bool */ public function getMinor() { @@ -394,6 +493,7 @@ class WikiRevision { } /** + * @since 1.12.2 * @return mixed */ public function getSrc() { @@ -401,6 +501,7 @@ class WikiRevision { } /** + * @since 1.17 * @return bool|string */ public function getSha1() { @@ -411,6 +512,7 @@ class WikiRevision { } /** + * @since 1.17 * @return string */ public function getFileSrc() { @@ -418,6 +520,7 @@ class WikiRevision { } /** + * @since 1.17 * @return bool */ public function isTempSrc() { @@ -425,6 +528,7 @@ class WikiRevision { } /** + * @since 1.12.2 * @return mixed */ public function getFilename() { @@ -432,6 +536,7 @@ class WikiRevision { } /** + * @since 1.17 * @return string */ public function getArchiveName() { @@ -439,6 +544,7 @@ class WikiRevision { } /** + * @since 1.12.2 * @return mixed */ public function getSize() { @@ -446,6 +552,7 @@ class WikiRevision { } /** + * @since 1.12.2 * @return string */ public function getType() { @@ -453,6 +560,7 @@ class WikiRevision { } /** + * @since 1.12.2 * @return string */ public function getAction() { @@ -460,6 +568,7 @@ class WikiRevision { } /** + * @since 1.12.2 * @return string */ public function getParams() { @@ -467,6 +576,7 @@ class WikiRevision { } /** + * @since 1.4.1 * @return bool */ public function importOldRevision() { @@ -497,11 +607,12 @@ class WikiRevision { $pageId = $page->getId(); $created = false; + // Note: sha1 has been in XML dumps since 2012. If you have an + // older dump, the duplicate detection here won't work. $prior = $dbw->selectField( 'revision', '1', [ 'rev_page' => $pageId, 'rev_timestamp' => $dbw->timestamp( $this->timestamp ), - 'rev_user_text' => $userText, - 'rev_comment' => $this->getComment() ], + 'rev_sha1' => $this->sha1base36 ], __METHOD__ ); if ( $prior ) { @@ -568,6 +679,10 @@ class WikiRevision { return true; } + /** + * @since 1.12.2 + * @return bool + */ public function importLogItem() { $dbw = wfGetDB( DB_MASTER ); @@ -594,7 +709,6 @@ class WikiRevision { 'log_timestamp' => $dbw->timestamp( $this->timestamp ), 'log_namespace' => $this->getTitle()->getNamespace(), 'log_title' => $this->getTitle()->getDBkey(), - 'log_comment' => $this->getComment(), # 'log_user_text' => $this->user_text, 'log_params' => $this->params ], __METHOD__ @@ -606,9 +720,7 @@ class WikiRevision { . $this->timestamp . "\n" ); return false; } - $log_id = $dbw->nextSequenceValue( 'logging_log_id_seq' ); $data = [ - 'log_id' => $log_id, 'log_type' => $this->type, 'log_action' => $this->action, 'log_timestamp' => $dbw->timestamp( $this->timestamp ), @@ -616,15 +728,15 @@ class WikiRevision { 'log_user_text' => $userText, 'log_namespace' => $this->getTitle()->getNamespace(), 'log_title' => $this->getTitle()->getDBkey(), - 'log_comment' => $this->getComment(), 'log_params' => $this->params - ]; + ] + CommentStore::newKey( 'log_comment' )->insert( $dbw, $this->getComment() ); $dbw->insert( 'logging', $data, __METHOD__ ); return true; } /** + * @since 1.12.2 * @return bool */ public function importUpload() { @@ -696,6 +808,7 @@ class WikiRevision { } /** + * @since 1.12.2 * @return bool|string */ public function downloadSource() {