Add additional information to FileRepo::getInfo
authorBrad Jorsch <bjorsch@wikimedia.org>
Wed, 20 Nov 2013 19:38:49 +0000 (14:38 -0500)
committerBrad Jorsch <bjorsch@wikimedia.org>
Wed, 20 Nov 2013 19:38:49 +0000 (14:38 -0500)
The API's meta=filerepoinfo could use some additional information, most
pressingly a way to determine the MW API endpoint of the associated
repo. Since FileRepo already has scriptDirUrl (to which "/api.php" could
be appended), let's just add that.

And for good measure, we may as well include various other bits of
information that people might find useful.

Change-Id: I6d5aa6cf44ef1d9bdfd9b2f36f184e5fdc0900dd

RELEASE-NOTES-1.23
includes/filerepo/FileRepo.php

index e2c0670..88da8c2 100644 (file)
@@ -61,6 +61,8 @@ production.
 === API changes in 1.23 ===
 * (bug 54884) action=parse&prop=categories now indicates hidden and missing
   categories.
+* action=query&meta=filerepoinfo now returns additional information for each
+  repo.
 
 === Languages updated in 1.23===
 
index 1195d5f..62e6388 100644 (file)
@@ -1725,12 +1725,24 @@ class FileRepo {
         * @since 1.22
         */
        public function getInfo() {
-               return array(
+               $ret = array(
                        'name' => $this->getName(),
                        'displayname' => $this->getDisplayName(),
                        'rootUrl' => $this->getRootUrl(),
                        'local' => $this->isLocal(),
                );
+
+               $optionalSettings = array(
+                       'url', 'thumbUrl', 'initialCapital', 'descBaseUrl', 'scriptDirUrl', 'articleUrl',
+                       'fetchDescription', 'descriptionCacheExpiry', 'scriptExtension'
+               );
+               foreach ( $optionalSettings as $k ) {
+                       if ( isset( $this->$k ) ) {
+                               $ret[$k] = $this->$k;
+                       }
+               }
+
+               return $ret;
        }
 }