+ /**
+ * Gets image info about the file just uploaded.
+ *
+ * Also has the effect of setting metadata to be an 'indexed tag name' in returned API result if
+ * 'metadata' was requested. Oddly, we have to pass the "result" object down just so it can do that
+ * with the appropriate format, presumably.
+ *
+ * @param $result ApiResult:
+ * @return Array: image info
+ */
+ public function getImageInfo( $result ) {
+ $file = $this->getLocalFile();
+ // TODO This cries out for refactoring. We really want to say $file->getAllInfo(); here.
+ // Perhaps "info" methods should be moved into files, and the API should just wrap them in queries.
+ if ( $file instanceof UploadStashFile ) {
+ $imParam = ApiQueryStashImageInfo::getPropertyNames();
+ $info = ApiQueryStashImageInfo::getInfo( $file, array_flip( $imParam ), $result );
+ } else {
+ $imParam = ApiQueryImageInfo::getPropertyNames();
+ $info = ApiQueryImageInfo::getInfo( $file, array_flip( $imParam ), $result );
+ }
+ return $info;
+ }
+
+
+ public function convertVerifyErrorToStatus( $error ) {
+ $code = $error['status'];
+ unset( $code['status'] );
+ return Status::newFatal( $this->getVerificationErrorCode( $code ), $error );
+ }
+
+ public static function getMaxUploadSize( $forType = null ) {
+ global $wgMaxUploadSize;
+
+ if ( is_array( $wgMaxUploadSize ) ) {
+ if ( !is_null( $forType) && isset( $wgMaxUploadSize[$forType] ) ) {
+ return $wgMaxUploadSize[$forType];
+ } else {
+ return $wgMaxUploadSize['*'];
+ }
+ } else {
+ return intval( $wgMaxUploadSize );
+ }
+
+ }