$mediawiki = new MediaWiki();
$mediawiki->doPostOutputShutdown( 'fast' );
-//--------------------------------------------------------------------------
+// --------------------------------------------------------------------------
/**
* Handle a thumbnail request via thumbnail file URL
wfThumbErrorText( 404, "The source file '$fileName' does not exist." );
return;
} elseif ( $img->getPath() === false ) {
- wfThumbErrorText( 500, "The source file '$fileName' is not locally accessible." );
+ wfThumbErrorText( 400, "The source file '$fileName' is not locally accessible." );
return;
}
try {
$thumbName = $img->thumbName( $params );
if ( !strlen( $thumbName ) ) { // invalid params?
- throw new MediaTransformInvalidParametersException( 'Empty return from File::thumbName' );
+ throw new MediaTransformInvalidParametersException(
+ 'Empty return from File::thumbName'
+ );
}
$thumbName2 = $img->thumbName( $params, File::THUMB_FULL_NAME ); // b/c; "long" style
} catch ( MediaTransformInvalidParametersException $e ) {
- wfThumbError( 400, 'The specified thumbnail parameters are not valid: ' . $e->getMessage() );
+ wfThumbError(
+ 400,
+ 'The specified thumbnail parameters are not valid: ' . $e->getMessage()
+ );
return;
} catch ( MWException $e ) {
wfThumbError( 500, $e->getHTML() );
$dispositionType = isset( $params['download'] ) ? 'attachment' : 'inline';
// Suggest a good name for users downloading this thumbnail
- $headers[] = "Content-Disposition: {$img->getThumbDisposition( $thumbName, $dispositionType )}";
+ $headers[] =
+ "Content-Disposition: {$img->getThumbDisposition( $thumbName, $dispositionType )}";
if ( count( $varyHeader ) ) {
$headers[] = 'Vary: ' . implode( ', ', $varyHeader );
$user = RequestContext::getMain()->getUser();
if ( !wfThumbIsStandard( $img, $params ) && $user->pingLimiter( 'renderfile-nonstandard' ) ) {
- wfThumbError( 500, wfMessage( 'actionthrottledtext' )->parse() );
+ wfThumbError( 429, wfMessage( 'actionthrottledtext' )->parse() );
return;
} elseif ( $user->pingLimiter( 'renderfile' ) ) {
- wfThumbError( 500, wfMessage( 'actionthrottledtext' )->parse() );
+ wfThumbError( 429, wfMessage( 'actionthrottledtext' )->parse() );
return;
}
$errorCode = 500;
if ( !$thumb ) {
$errorMsg = $errorMsg ?: $msg->rawParams( 'File::transform() returned false' )->escaped();
+ if ( $errorMsg instanceof MessageSpecifier &&
+ $errorMsg->getKey() === 'thumbnail_image-failure-limit'
+ ) {
+ $errorCode = 429;
+ }
} elseif ( $thumb->isError() ) {
$errorMsg = $thumb->getHtmlMsg();
} elseif ( !$thumb->hasFile() ) {
$errorMsg = $msg->rawParams( 'No path supplied in thumbnail object' )->escaped();
} elseif ( $thumb->fileIsSource() ) {
- $errorMsg = $msg->
- rawParams( 'Image was not scaled, is the requested width bigger than the source?' )->escaped();
+ $errorMsg = $msg
+ ->rawParams( 'Image was not scaled, is the requested width bigger than the source?' )
+ ->escaped();
$errorCode = 400;
}
* @return void
*/
function wfThumbErrorText( $status, $msgText ) {
- return wfThumbError( $status, htmlspecialchars( $msgText ) );
+ wfThumbError( $status, htmlspecialchars( $msgText ) );
}
/**
header( 'Cache-Control: no-cache' );
header( 'Content-Type: text/html; charset=utf-8' );
- if ( $status == 400 ) {
- HttpStatus::header( 400 );
- } elseif ( $status == 404 ) {
- HttpStatus::header( 404 );
+ if ( $status == 400 || $status == 404 || $status == 429 ) {
+ HttpStatus::header( $status );
} elseif ( $status == 403 ) {
HttpStatus::header( 403 );
header( 'Vary: Cookie' );
}
if ( $wgShowHostnames ) {
header( 'X-MW-Thumbnail-Renderer: ' . wfHostname() );
- $url = htmlspecialchars( isset( $_SERVER['REQUEST_URI'] ) ? $_SERVER['REQUEST_URI'] : '' );
+ $url = htmlspecialchars(
+ isset( $_SERVER['REQUEST_URI'] ) ? $_SERVER['REQUEST_URI'] : ''
+ );
$hostname = htmlspecialchars( wfHostname() );
$debug = "<!-- $url -->\n<!-- $hostname -->\n";
} else {