http://www.mediawiki.org/wiki/Special:Code/MediaWiki/76231
Revision: 76231
Author: bawolff
Date: 2010-11-07 05:08:48 +0000 (Sun, 07 Nov 2010)
Log Message:
-----------
Misc. things (fix some messages, add hooks, fix extraction for certain weird
images):
*Some images (especially those from fickr) have weird application identifier
for XMP APP1 segment
*Fix display of multiple emails from CiEmailWork (iptc4xmp) field.
*Add a hook to allow extensions to extract additional xmp fields
*Add a hook to allow extensions to post-process the result of extracting the XMP
*Rename the message exif-colorspace-ffff.h to exif-colorspace-65535 for any
language that had a correct translation.
Modified Paths:
--------------
branches/img_metadata/phase3/docs/hooks.txt
branches/img_metadata/phase3/includes/media/FormatMetadata.php
branches/img_metadata/phase3/includes/media/JpegMetadataExtractor.php
branches/img_metadata/phase3/includes/media/XMP.php
branches/img_metadata/phase3/includes/media/XMPInfo.php
branches/img_metadata/phase3/languages/messages/MessagesFr.php
branches/img_metadata/phase3/languages/messages/MessagesFrp.php
branches/img_metadata/phase3/languages/messages/MessagesIt.php
branches/img_metadata/phase3/languages/messages/MessagesJa.php
branches/img_metadata/phase3/languages/messages/MessagesNl.php
branches/img_metadata/phase3/languages/messages/MessagesOc.php
branches/img_metadata/phase3/languages/messages/MessagesPms.php
branches/img_metadata/phase3/languages/messages/MessagesScn.php
Modified: branches/img_metadata/phase3/docs/hooks.txt
===================================================================
--- branches/img_metadata/phase3/docs/hooks.txt 2010-11-07 03:30:48 UTC (rev
76230)
+++ branches/img_metadata/phase3/docs/hooks.txt 2010-11-07 05:08:48 UTC (rev
76231)
@@ -1897,5 +1897,14 @@
$row: The database row for the revision.
$text: The revision text.
+'XMPGetInfo': Called when obtaining the list of XMP tags to extract. Can be
used to add
+ additional tags to extract.
+$items: Array containing information on which items to extract. See XMPInfo
for details on the format.
+
+'XMPGetResults': Called just before returning the results array of parsing xmp
data. Can be
+ used to post-process the results.
+$data: Array of metadata sections (such as $data['xmp-general']) each section
is an array of
+ metadata tags returned (each tag is either a value, or an array of
values).
+
More hooks might be available but undocumented, you can execute
./maintenance/findhooks.php to find hidden one.
Modified: branches/img_metadata/phase3/includes/media/FormatMetadata.php
===================================================================
--- branches/img_metadata/phase3/includes/media/FormatMetadata.php
2010-11-07 03:30:48 UTC (rev 76230)
+++ branches/img_metadata/phase3/includes/media/FormatMetadata.php
2010-11-07 05:08:48 UTC (rev 76231)
@@ -1243,12 +1243,30 @@
. '</span>';
}
if ( isset( $vals['CiEmailWork'] ) ) {
- $email = '[mailto:'
- . rawurlencode(
- $vals['CiEmailWork'] )
- . ' <span class="email">'
- . $vals['CiEmailWork']
- . '</span>]';
+ $emails = array();
+ // Have to split multiple emails at commas/new
lines.
+ $splitEmails = explode( "\n",
$vals['CiEmailWork'] );
+ foreach ( $splitEmails as $e1 ) {
+ // Also split on comma
+ foreach ( explode( ',', $e1 ) as $e2 ) {
+ $finalEmail = trim( $e2 );
+ if ( $finalEmail == ',' ||
$finalEmail == '' ) {
+ continue;
+ }
+ if ( strpos( $finalEmail, '<' )
!== false ) {
+ // Don't do fancy
formatting to
+ // "My name"
<[email protected]> style stuff
+ $emails[] = $finalEmail;
+ } else {
+ $emails[] = '[mailto:'
+ . $finalEmail
+ . ' <span
class="email">'
+ . $finalEmail
+ . '</span>]';
+ }
+ }
+ }
+ $email = implode( ', ', $emails );
}
if ( isset( $vals['CiTelWork'] ) ) {
$tel = '<span class="tel">'
Modified: branches/img_metadata/phase3/includes/media/JpegMetadataExtractor.php
===================================================================
--- branches/img_metadata/phase3/includes/media/JpegMetadataExtractor.php
2010-11-07 03:30:48 UTC (rev 76230)
+++ branches/img_metadata/phase3/includes/media/JpegMetadataExtractor.php
2010-11-07 05:08:48 UTC (rev 76231)
@@ -75,6 +75,13 @@
$segments["XMP"] = substr( $temp, 29 );
} elseif ( substr( $temp, 0, 35 ) ===
"http://ns.adobe.com/xmp/extension/\x00" ) {
$segments["XMP_ext"][] = substr( $temp,
35 );
+ } elseif ( substr( $temp, 0, 29 ) ===
"XMP\x00://ns.adobe.com/xap/1.0/\x00" ) {
+ // Some images (especially flickr
images) seem to have this.
+ // I really have no idea what the deal
is with them, but
+ // whatever...
+ $segments["XMP"] = substr( $temp, 29 );
+ wfDebug( __METHOD__ . ' Found XMP
section with wrong app identifier '
+ . "Using anyways.\n" );
}
} elseif ( $buffer === "\xED" ) {
// APP13 - PSIR. IPTC and some photoshop stuff
@@ -169,7 +176,7 @@
// this should not happen, but check.
if ( $lenData['len'] + $offset > $appLen ) {
- wfDebug( __METHOD__ . ' PSIR data too long.' );
+ wfDebug( __METHOD__ . " PSIR data too long.\n"
);
return 'iptc-no-hash';
}
Modified: branches/img_metadata/phase3/includes/media/XMP.php
===================================================================
--- branches/img_metadata/phase3/includes/media/XMP.php 2010-11-07 03:30:48 UTC
(rev 76230)
+++ branches/img_metadata/phase3/includes/media/XMP.php 2010-11-07 05:08:48 UTC
(rev 76231)
@@ -132,6 +132,8 @@
$data = $this->results;
+ wfRunHooks('XMPGetResults', Array(&$data));
+
if ( isset( $data['xmp-special']['AuthorsPosition'] )
&& is_string( $data['xmp-special']['AuthorsPosition'] )
&& isset( $data['xmp-general']['Artist'][0] )
Modified: branches/img_metadata/phase3/includes/media/XMPInfo.php
===================================================================
--- branches/img_metadata/phase3/includes/media/XMPInfo.php 2010-11-07
03:30:48 UTC (rev 76230)
+++ branches/img_metadata/phase3/includes/media/XMPInfo.php 2010-11-07
05:08:48 UTC (rev 76231)
@@ -10,9 +10,17 @@
* @return Array XMP item configuration array.
*/
public static function getItems ( ) {
+ if( !self::ranHooks ) {
+ // This is for if someone makes a custom metadata
extension.
+ // For example, a medical wiki might want to decode
DICOM xmp properties.
+ wfRunHooks('XMPGetInfo', Array(&self::$items));
+ self::ranHooks = true; // Only want to do this once.
+ }
return self::$items;
}
+ static private ranHooks = false;
+
/**
* XMPInfo::$items keeps a list of all the items
* we are interested to extract, as well as
Modified: branches/img_metadata/phase3/languages/messages/MessagesFr.php
===================================================================
--- branches/img_metadata/phase3/languages/messages/MessagesFr.php
2010-11-07 03:30:48 UTC (rev 76230)
+++ branches/img_metadata/phase3/languages/messages/MessagesFr.php
2010-11-07 05:08:48 UTC (rev 76231)
@@ -3159,7 +3159,7 @@
'exif-planarconfiguration-1' => 'Données contiguës',
'exif-planarconfiguration-2' => 'Données séparées',
-'exif-colorspace-ffff.h' => 'Non calibré',
+'exif-colorspace-65535' => 'Non calibré',
'exif-componentsconfiguration-0' => 'N’existe pas',
'exif-componentsconfiguration-5' => 'V',
Modified: branches/img_metadata/phase3/languages/messages/MessagesFrp.php
===================================================================
--- branches/img_metadata/phase3/languages/messages/MessagesFrp.php
2010-11-07 03:30:48 UTC (rev 76230)
+++ branches/img_metadata/phase3/languages/messages/MessagesFrp.php
2010-11-07 05:08:48 UTC (rev 76231)
@@ -3214,7 +3214,7 @@
'exif-planarconfiguration-1' => 'Balyês ategnentes',
'exif-planarconfiguration-2' => 'Balyês sèparâs',
-'exif-colorspace-ffff.h' => 'Pas calibrâ',
+'exif-colorspace-65535' => 'Pas calibrâ',
'exif-componentsconfiguration-0' => 'Ègziste pas',
'exif-componentsconfiguration-5' => 'V',
Modified: branches/img_metadata/phase3/languages/messages/MessagesIt.php
===================================================================
--- branches/img_metadata/phase3/languages/messages/MessagesIt.php
2010-11-07 03:30:48 UTC (rev 76230)
+++ branches/img_metadata/phase3/languages/messages/MessagesIt.php
2010-11-07 05:08:48 UTC (rev 76231)
@@ -2974,7 +2974,7 @@
'exif-xyresolution-i' => '$1 punti per pollice (dpi)',
'exif-xyresolution-c' => '$1 punti per centimetro (dpc)',
-'exif-colorspace-ffff.h' => 'Non calibrato',
+'exif-colorspace-65535' => 'Non calibrato',
'exif-componentsconfiguration-0' => 'assente',
Modified: branches/img_metadata/phase3/languages/messages/MessagesJa.php
===================================================================
--- branches/img_metadata/phase3/languages/messages/MessagesJa.php
2010-11-07 03:30:48 UTC (rev 76230)
+++ branches/img_metadata/phase3/languages/messages/MessagesJa.php
2010-11-07 05:08:48 UTC (rev 76231)
@@ -2981,7 +2981,7 @@
'exif-planarconfiguration-1' => '点順次フォーマット',
'exif-planarconfiguration-2' => '面順次フォーマット',
-'exif-colorspace-ffff.h' => 'その他',
+'exif-colorspace-65535' => 'その他',
'exif-componentsconfiguration-0' => 'なし',
Modified: branches/img_metadata/phase3/languages/messages/MessagesNl.php
===================================================================
--- branches/img_metadata/phase3/languages/messages/MessagesNl.php
2010-11-07 03:30:48 UTC (rev 76230)
+++ branches/img_metadata/phase3/languages/messages/MessagesNl.php
2010-11-07 05:08:48 UTC (rev 76231)
@@ -3242,7 +3242,7 @@
'exif-planarconfiguration-1' => 'chunky gegevensformaat',
'exif-planarconfiguration-2' => 'planar gegevensformaat',
-'exif-colorspace-ffff.h' => 'Ongekalibreerd',
+'exif-colorspace-65535' => 'Ongekalibreerd',
'exif-componentsconfiguration-0' => 'bestaat niet',
Modified: branches/img_metadata/phase3/languages/messages/MessagesOc.php
===================================================================
--- branches/img_metadata/phase3/languages/messages/MessagesOc.php
2010-11-07 03:30:48 UTC (rev 76230)
+++ branches/img_metadata/phase3/languages/messages/MessagesOc.php
2010-11-07 05:08:48 UTC (rev 76231)
@@ -3059,7 +3059,7 @@
'exif-planarconfiguration-1' => 'Donadas atenentas',
'exif-planarconfiguration-2' => 'Donadas separadas',
-'exif-colorspace-ffff.h' => 'Pas calibrat',
+'exif-colorspace-65535' => 'Pas calibrat',
'exif-componentsconfiguration-0' => 'existís pas',
'exif-componentsconfiguration-5' => 'V',
Modified: branches/img_metadata/phase3/languages/messages/MessagesPms.php
===================================================================
--- branches/img_metadata/phase3/languages/messages/MessagesPms.php
2010-11-07 03:30:48 UTC (rev 76230)
+++ branches/img_metadata/phase3/languages/messages/MessagesPms.php
2010-11-07 05:08:48 UTC (rev 76231)
@@ -2853,7 +2853,7 @@
'exif-xyresolution-i' => '$1 pont për pòles (dpi)',
'exif-xyresolution-c' => '$1 pont për centim (dpc)',
-'exif-colorspace-ffff.h' => 'Nen calibrà',
+'exif-colorspace-65535' => 'Nen calibrà',
'exif-componentsconfiguration-0' => 'a esist pa',
Modified: branches/img_metadata/phase3/languages/messages/MessagesScn.php
===================================================================
--- branches/img_metadata/phase3/languages/messages/MessagesScn.php
2010-11-07 03:30:48 UTC (rev 76230)
+++ branches/img_metadata/phase3/languages/messages/MessagesScn.php
2010-11-07 05:08:48 UTC (rev 76231)
@@ -2674,7 +2674,7 @@
'exif-xyresolution-i' => '$1 punti pi puseri (dpi)',
'exif-xyresolution-c' => '$1 punti pi cintìmitru (dpc)',
-'exif-colorspace-ffff.h' => 'Nun calibbratu',
+'exif-colorspace-65535' => 'Nun calibbratu',
'exif-componentsconfiguration-0' => 'assenti',
_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs