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

Reply via email to