Пример #1
0
 /**
  * @covers WikiImporter::handlePage
  * @dataProvider getRedirectXML
  * @param string $xml
  * @param string|null $redirectTitle
  */
 public function testHandlePageContainsRedirect($xml, $redirectTitle)
 {
     $source = $this->getInputStreamSource($xml);
     $redirect = null;
     $callback = function (Title $title, ForeignTitle $foreignTitle, $revCount, $sRevCount, $pageInfo) use(&$redirect) {
         if (array_key_exists('redirect', $pageInfo)) {
             $redirect = $pageInfo['redirect'];
         }
     };
     $importer = new WikiImporter($source, ConfigFactory::getDefaultInstance()->makeConfig('main'));
     $importer->setPageOutCallback($callback);
     $importer->doImport();
     $this->assertEquals($redirectTitle, $redirect);
 }
 /**
  * @covers WikiImporter::handlePage
  * @dataProvider getRedirectXML
  * @param string $xml
  * @param string|null $redirectTitle
  */
 public function testHandlePageContainsRedirect($xml, $redirectTitle)
 {
     $source = $this->getInputStreamSource($xml);
     $redirect = null;
     $callback = function ($title, $origTitle, $revCount, $sRevCount, $pageInfo) use(&$redirect) {
         if (array_key_exists('redirect', $pageInfo)) {
             $redirect = $pageInfo['redirect'];
         }
     };
     $importer = new WikiImporter($source);
     $importer->setPageOutCallback($callback);
     $importer->doImport();
     $this->assertEquals($redirectTitle, $redirect);
 }
Пример #3
0
 function importFromHandle($handle)
 {
     $this->startTime = microtime(true);
     $source = new ImportStreamSource($handle);
     $importer = new WikiImporter($source, $this->getConfig());
     if ($this->hasOption('debug')) {
         $importer->setDebug(true);
     }
     if ($this->hasOption('no-updates')) {
         $importer->setNoUpdates(true);
     }
     $importer->setPageCallback(array(&$this, 'reportPage'));
     $this->importCallback = $importer->setRevisionCallback(array(&$this, 'handleRevision'));
     $this->uploadCallback = $importer->setUploadCallback(array(&$this, 'handleUpload'));
     $this->logItemCallback = $importer->setLogItemCallback(array(&$this, 'handleLogItem'));
     if ($this->uploads) {
         $importer->setImportUploads(true);
     }
     if ($this->imageBasePath) {
         $importer->setImageBasePath($this->imageBasePath);
     }
     if ($this->dryRun) {
         $importer->setPageOutCallback(null);
     }
     return $importer->doImport();
 }
Пример #4
0
	/**
	 * @param WikiImporter $importer
	 * @param $upload
	 * @param $interwiki
	 * @param string|bool $reason
	 */
	function __construct( $importer, $upload, $interwiki, $reason = false ) {
		$this->mOriginalPageOutCallback =
			$importer->setPageOutCallback( array( $this, 'reportPage' ) );
		$this->mOriginalLogCallback =
			$importer->setLogItemCallback( array( $this, 'reportLogItem' ) );
		$importer->setNoticeCallback( array( $this, 'reportNotice' ) );
		$this->mPageCount = 0;
		$this->mIsUpload = $upload;
		$this->mInterwiki = $interwiki;
		$this->reason = $reason;
	}
Пример #5
0
 function importFromHandle($handle)
 {
     $this->startTime = microtime(true);
     $source = new ImportStreamSource($handle);
     $importer = new WikiImporter($source, $this->getConfig());
     if ($this->hasOption('debug')) {
         $importer->setDebug(true);
     }
     if ($this->hasOption('no-updates')) {
         $importer->setNoUpdates(true);
     }
     if ($this->hasOption('rootpage')) {
         $statusRootPage = $importer->setTargetRootPage($this->getOption('rootpage'));
         if (!$statusRootPage->isGood()) {
             // Die here so that it doesn't print "Done!"
             $this->error($statusRootPage->getMessage()->text(), 1);
             return false;
         }
     }
     $importer->setPageCallback([$this, 'reportPage']);
     $this->importCallback = $importer->setRevisionCallback([$this, 'handleRevision']);
     $this->uploadCallback = $importer->setUploadCallback([$this, 'handleUpload']);
     $this->logItemCallback = $importer->setLogItemCallback([$this, 'handleLogItem']);
     if ($this->uploads) {
         $importer->setImportUploads(true);
     }
     if ($this->imageBasePath) {
         $importer->setImageBasePath($this->imageBasePath);
     }
     if ($this->dryRun) {
         $importer->setPageOutCallback(null);
     }
     return $importer->doImport();
 }
Пример #6
0
 function importFromHandle($handle)
 {
     $this->startTime = wfTime();
     $source = new ImportStreamSource($handle);
     $importer = new WikiImporter($source);
     $importer->setDebug($this->debug);
     $importer->setPageCallback(array(&$this, 'reportPage'));
     $this->importCallback = $importer->setRevisionCallback(array(&$this, 'handleRevision'));
     $this->uploadCallback = $importer->setUploadCallback(array(&$this, 'handleUpload'));
     $this->logItemCallback = $importer->setLogItemCallback(array(&$this, 'handleLogItem'));
     if ($this->dryRun) {
         $importer->setPageOutCallback(null);
     }
     return $importer->doImport();
 }