Gilles has uploaded a new change for review. (
https://gerrit.wikimedia.org/r/353113 )
Change subject: Store original media dimensions as additional header
......................................................................
Store original media dimensions as additional header
For storage repos that support headers (such as Swift), this will store the
original
media dimensions as an extra custom header, X-Content-Dimensions.
The header is formatted to minimize its length when dealing with multipage
documents, by expressing the information as page ranges keyed by dimensions.
Example for a multipage documents with some pages of different sizes:
X-Content-Dimensions: 1903x899:1-9,11/1903x873:10
Example for a single page document:
X-Content-Dimensions: 800x600:1
Bug: T150741
Change-Id: If4c58ad7048c8233ef2b0f64a252c16f84dcecde
Depends-On: Ic4c6a86557b3705cf75d074753e9ce2ee070a6df
---
M PdfHandler_body.php
1 file changed, 24 insertions(+), 0 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/PdfHandler
refs/changes/13/353113/1
diff --git a/PdfHandler_body.php b/PdfHandler_body.php
index 52d1ad8..77b8666 100644
--- a/PdfHandler_body.php
+++ b/PdfHandler_body.php
@@ -433,4 +433,28 @@
'messages' => array_values( self::$messages ),
) );
}
+
+ /**
+ * Get useful response headers for GET/HEAD requests for a file with the
given metadata
+ * @param $metadata Array Contains this handler's unserialized
getMetadata() for a file
+ * @return array
+ */
+ public function getContentHeaders( $metadata ) {
+ $pagesByDimensions = [];
+ $count = intval( $metadata['Pages'] );
+ for ( $i = 1; $i <= $count; $i++ ) {
+ $dimensions = PdfImage::getPageSize( $metadata, $i );
+ $dimensionString = $dimensions['width'] . 'x' .
$dimensions['height'];
+
+ if ( isset ( $pagesByDimensions[ $dimensionString ] ) )
{
+ $pagesByDimensions[ $dimensionString ][] = $i;
+ } else {
+ $pagesByDimensions[ $dimensionString ] = [ $i ];
+ }
+ }
+
+ $pageRangesByDimensions =
MediaHandler::getPageRangesByDimensions( $pagesByDimensions );
+
+ return [ 'X-Content-Dimensions' => $pageRangesByDimensions ];
+ }
}
--
To view, visit https://gerrit.wikimedia.org/r/353113
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: If4c58ad7048c8233ef2b0f64a252c16f84dcecde
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/PdfHandler
Gerrit-Branch: wmf/1.30.0-wmf.1
Gerrit-Owner: Gilles <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits