50 $username = $this->getOption(
'username',
false );
51 if ( $username ===
false ) {
52 $user = User::newSystemUser(
'ScriptImporter', [
'steal' =>
true ] );
54 $user = User::newFromName( $username );
56 '@phan-var User $user';
57 StubGlobalUser::setUser( $user );
59 $baseUrl = $this->getArg( 1 );
61 $this->output(
'Importing ' . count( $pageList ) .
" pages\n" );
62 $services = $this->getServiceContainer();
63 $wikiPageFactory = $services->getWikiPageFactory();
64 $httpRequestFactory = $services->getHttpRequestFactory();
66 foreach ( $pageList as $page ) {
69 $this->error(
"$page is an invalid title; it will not be imported\n" );
73 $this->output(
"Importing $page\n" );
76 'title' =>
"MediaWiki:{$page}" ] );
77 $text = $httpRequestFactory->get(
$url, [], __METHOD__ );
79 $wikiPage = $wikiPageFactory->newFromTitle( $title );
80 $content = ContentHandler::makeContent( $text, $wikiPage->getTitle() );
81 $wikiPage->doUserEditContent( $content, $user,
"Importing from $url" );
94 $baseUrl = $this->getArg( 0 );
99 $strResult = $this->getServiceContainer()->getHttpRequestFactory()->
100 get(
$url, [], __METHOD__ );
101 $result = FormatJson::decode( $strResult,
true );
104 foreach ( $result[
'query'][
'allpages'] as $page ) {
105 if ( str_ends_with( $page[
'title'],
'.js' ) ) {
106 strtok( $page[
'title'],
':' );
107 $pages[] = strtok(
'' );
111 if ( $page !==
null ) {
112 $this->output(
"Fetched list up to {$page['title']}\n" );
115 if ( isset( $result[
'continue'] ) ) {
116 $data = array_replace( $data, $result[
'continue'] );
117 } elseif ( isset( $result[
'query-continue'][
'allpages'] ) ) {
118 $data = array_replace( $data, $result[
'query-continue'][
'allpages'] );