Anomie has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/183600

Change subject: Update ApiResult handling for mediawiki/core change I7b37295e
......................................................................

Update ApiResult handling for mediawiki/core change I7b37295e

Change I7b37295e for mediawiki/core deprecates several methods, and more
importantly changes the format of the data returned from
ApiResult::getData(). This change should handle these differences in a
backwards-compatible manner.

Change-Id: I7b37295e8862b188d1f3b0cd07f66ac34629678e
---
M api/ApiQueryMessageCollection.php
M api/ApiQueryMessageGroups.php
M api/ApiQueryMessageTranslations.php
M api/ApiStatsQuery.php
M api/ApiTTMServer.php
M scripts/create-language-models.php
M tests/phpunit/api/ApiTokensTest.php
M utils/TranslationEditPage.php
8 files changed, 66 insertions(+), 14 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Translate 
refs/changes/00/183600/1

diff --git a/api/ApiQueryMessageCollection.php 
b/api/ApiQueryMessageCollection.php
index d8c2315..9165cb9 100644
--- a/api/ApiQueryMessageCollection.php
+++ b/api/ApiQueryMessageCollection.php
@@ -122,10 +122,17 @@
                }
 
                if ( is_null( $resultPageSet ) ) {
-                       $result->setIndexedTagName_internal(
-                               array( 'query', $this->getModuleName() ),
-                               'message'
-                       );
+                       if ( defined( 'ApiResult::META_CONTENT' ) ) {
+                               $result->defineIndexedTagName(
+                                       array( 'query', $this->getModuleName() 
),
+                                       'message'
+                               );
+                       } else {
+                               $result->setIndexedTagName_internal(
+                                       array( 'query', $this->getModuleName() 
),
+                                       'message'
+                               );
+                       }
                } else {
                        $resultPageSet->populateFromTitles( $pages );
                }
@@ -162,7 +169,11 @@
                if ( isset( $props['properties'] ) ) {
                        foreach ( $message->getPropertyNames() as $prop ) {
                                $data['properties'][$prop] = 
$message->getProperty( $prop );
-                               $result->setIndexedTagName_recursive( 
$data['properties'], 'val' );
+                               if ( defined( 'ApiResult::META_CONTENT' ) ) {
+                                       
ApiResult::setIndexedTagNameOnSubarrays( $data['properties'], 'val' );
+                               } else {
+                                       $result->setIndexedTagName_recursive( 
$data['properties'], 'val' );
+                               }
                        }
                }
 
diff --git a/api/ApiQueryMessageGroups.php b/api/ApiQueryMessageGroups.php
index 09fd611..4706397 100644
--- a/api/ApiQueryMessageGroups.php
+++ b/api/ApiQueryMessageGroups.php
@@ -100,7 +100,11 @@
                        }
                }
 
-               $result->setIndexedTagName_internal( array( 'query', 
$this->getModuleName() ), 'group' );
+               if ( defined( 'ApiResult::META_CONTENT' ) ) {
+                       $result->defineIndexedTagName( array( 'query', 
$this->getModuleName() ), 'group' );
+               } else {
+                       $result->setIndexedTagName_internal( array( 'query', 
$this->getModuleName() ), 'group' );
+               }
        }
 
        /**
diff --git a/api/ApiQueryMessageTranslations.php 
b/api/ApiQueryMessageTranslations.php
index 48f4e4d..564d041 100644
--- a/api/ApiQueryMessageTranslations.php
+++ b/api/ApiQueryMessageTranslations.php
@@ -105,7 +105,11 @@
                        }
 
                        $translation = str_replace( TRANSLATE_FUZZY, '', 
$info[0] );
-                       $result->setContent( $data, $translation );
+                       if ( defined( 'ApiResult::META_CONTENT' ) ) {
+                               ApiResult::setContentValue( $data, 
'translation', $translation );
+                       } else {
+                               ApiResult::setContent( $data, $translation );
+                       }
 
                        $fit = $result->addValue( array( 'query', 
$this->getModuleName() ), null, $data );
                        if ( !$fit ) {
@@ -114,7 +118,11 @@
                        }
                }
 
-               $result->setIndexedTagName_internal( array( 'query', 
$this->getModuleName() ), 'message' );
+               if ( defined( 'ApiResult::META_CONTENT' ) ) {
+                       $result->defineIndexedTagName( array( 'query', 
$this->getModuleName() ), 'message' );
+               } else {
+                       $result->setIndexedTagName_internal( array( 'query', 
$this->getModuleName() ), 'message' );
+               }
        }
 
        public function getAllowedParams() {
diff --git a/api/ApiStatsQuery.php b/api/ApiStatsQuery.php
index 63712d8..eeb58c8 100644
--- a/api/ApiStatsQuery.php
+++ b/api/ApiStatsQuery.php
@@ -39,7 +39,11 @@
                        $result->addValue( array( 'query', 
$this->getModuleName() ), null, $data );
                }
 
-               $result->setIndexedTagName_internal( array( 'query', 
$this->getModuleName() ), 'stats' );
+               if ( defined( 'ApiResult::META_CONTENT' ) ) {
+                       $result->defineIndexedTagName( array( 'query', 
$this->getModuleName() ), 'stats' );
+               } else {
+                       $result->setIndexedTagName_internal( array( 'query', 
$this->getModuleName() ), 'stats' );
+               }
        }
 
        protected function makeItem( $item, $stats ) {
diff --git a/api/ApiTTMServer.php b/api/ApiTTMServer.php
index 1889f74..29837ff 100644
--- a/api/ApiTTMServer.php
+++ b/api/ApiTTMServer.php
@@ -36,7 +36,11 @@
                        $result->addValue( $this->getModuleName(), null, $sug );
                }
 
-               $result->setIndexedTagName_internal( $this->getModuleName(), 
'suggestion' );
+               if ( defined( 'ApiResult::META_CONTENT' ) ) {
+                       $result->defineIndexedTagName( $this->getModuleName(), 
'suggestion' );
+               } else {
+                       $result->setIndexedTagName_internal( 
$this->getModuleName(), 'suggestion' );
+               }
        }
 
        protected function getAvailableTranslationServices() {
diff --git a/scripts/create-language-models.php 
b/scripts/create-language-models.php
index 91b8808..f7c5f9e 100644
--- a/scripts/create-language-models.php
+++ b/scripts/create-language-models.php
@@ -204,8 +204,16 @@
                                $api = new ApiMain( $params );
                                $api->execute();
 
-                               $result = $api->getResultData();
-                               $text = $result['parse']['text']['*'];
+                               if ( defined( 'ApiResult::META_CONTENT' ) ) {
+                                       $result = 
$api->getResult()->getResultData();
+                                       $contentKey = isset( 
$result['parse']['text'][ApiResult::META_CONTENT] )
+                                               ? 
$result['parse']['text'][ApiResult::META_CONTENT]
+                                               : '*';
+                               } else {
+                                       $result = $api->getResultData();
+                                       $contentKey = '*';
+                               }
+                               $text = $result['parse']['text'][$contentKey];
                                $text = strip_tags( $text );
                                $text = str_replace( '!!FUZZY!!', '', $text );
                                $text = preg_replace( '/\$[0-9]/', '', $text );
diff --git a/tests/phpunit/api/ApiTokensTest.php 
b/tests/phpunit/api/ApiTokensTest.php
index 0e2bba5..0f689c2 100644
--- a/tests/phpunit/api/ApiTokensTest.php
+++ b/tests/phpunit/api/ApiTokensTest.php
@@ -30,7 +30,13 @@
                $api = new ApiMain( $req );
                $api->execute();
 
-               $data = $api->getResultData();
+               if ( defined( 'ApiResult::META_CONTENT' ) ) {
+                       $data = ApiResult::removeMetadata(
+                               $api->getResult()->getResultData()
+                       );
+               } else {
+                       $data = $api->getResultData();
+               }
                if ( isset( $data['query'] ) ) {
                        foreach ( $data['query']['pages'] as $page ) {
                                $this->assertSame( $expected, $page[$id . 
'token'] );
diff --git a/utils/TranslationEditPage.php b/utils/TranslationEditPage.php
index ffcbd8c..2ed9474 100644
--- a/utils/TranslationEditPage.php
+++ b/utils/TranslationEditPage.php
@@ -211,12 +211,19 @@
 
                $api = new ApiMain( $params );
                $api->execute();
-               $data = $api->getResultData();
+               if ( defined( 'ApiResult::META_CONTENT' ) ) {
+                       $data = $api->getResult()->getResultData();
+               } else {
+                       $data = $api->getResultData();
+               }
 
                if ( !isset( $data['query']['pages'] ) ) {
                        throw new MWException( 'Api query failed' );
                }
                $data = $data['query']['pages'];
+               if ( defined( 'ApiResult::META_CONTENT' ) ) {
+                       $data = ApiResult::removeMetadataNonRecursive( $data );
+               }
                $data = array_shift( $data );
 
                return $data;

-- 
To view, visit https://gerrit.wikimedia.org/r/183600
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I7b37295e8862b188d1f3b0cd07f66ac34629678e
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Translate
Gerrit-Branch: master
Gerrit-Owner: Anomie <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to