Unicodesnowman has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/182061

Change subject: Parse standard date formats with wfTimestamp()
......................................................................

Parse standard date formats with wfTimestamp()

Attempt to use wfTimestamp() to parse the datetime attribute.

Also update a test that was slightly out of date.

Bug: T66014
Change-Id: I1bf9581a527c6033213c095a667e92d13c673c6e
---
M TemplateParser.php
M tests/data/File_Dala_Kyrka.JPG.php
M tests/html/File_Dala_Kyrka.JPG.html
3 files changed, 11 insertions(+), 4 deletions(-)


  git pull 
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/CommonsMetadata 
refs/changes/61/182061/1

diff --git a/TemplateParser.php b/TemplateParser.php
index 82cee16..de1f1a1 100644
--- a/TemplateParser.php
+++ b/TemplateParser.php
@@ -272,7 +272,8 @@
        }
 
        /**
-        * Parses the DateTimeOriginal - finds <time> tag and returns the value 
of datetime attribute
+        * Parses the DateTimeOriginal - finds <time> tag and returns the 
parsed value of the
+        * datetime attribute, or the raw value if parsing failed.
         * @param DomNavigator $domNavigator
         * @param DOMNode $node
         * @return string
@@ -280,7 +281,13 @@
        protected function parseFieldDateTimeOriginal( DomNavigator 
$domNavigator, DOMNode $node ) {
                $nodes = $domNavigator->findElementsWithAttribute( 'time', 
'datetime', $node );
                foreach ( $nodes as $time ) {
-                       return $time->getAttribute( 'datetime' );
+                       $rawTs = $time->getAttribute( 'datetime' );
+                       $parsedTs = wfTimestamp( TS_DB, $rawTs );
+                       if ( $parsedTs ) {
+                               return $parsedTs;
+                       } else {
+                               return $rawTs;
+                       }
                }
 
                return $this->parseContents( $domNavigator, $node );
diff --git a/tests/data/File_Dala_Kyrka.JPG.php 
b/tests/data/File_Dala_Kyrka.JPG.php
index a69dac2..5dcd704 100644
--- a/tests/data/File_Dala_Kyrka.JPG.php
+++ b/tests/data/File_Dala_Kyrka.JPG.php
@@ -7,7 +7,7 @@
 return array (
        'DateTimeOriginal' =>
                array (
-                       'value' => '2013-10-27',
+                       'value' => '2013-10-27 10:27:44',
                        'source' => 'commons-desc-page',
                ),
        'License' =>
diff --git a/tests/html/File_Dala_Kyrka.JPG.html 
b/tests/html/File_Dala_Kyrka.JPG.html
index 706476d..db3bb8d 100644
--- a/tests/html/File_Dala_Kyrka.JPG.html
+++ b/tests/html/File_Dala_Kyrka.JPG.html
@@ -9,7 +9,7 @@
 </tr>
 <tr style="vertical-align: top">
 <td id="fileinfotpl_date" class="fileinfo-paramfield">Date</td>
-<td><time class="dtstart" datetime="2013-10-27">27 October 2013</time>, 
10:27:44</td>
+<td><time class="dtstart" datetime="2013-10-27 10:27:44">27 October 2013, 
10:27:44</time></td>
 </tr>
 <tr style="vertical-align: top">
 <td id="fileinfotpl_src" class="fileinfo-paramfield">Source</td>

-- 
To view, visit https://gerrit.wikimedia.org/r/182061
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I1bf9581a527c6033213c095a667e92d13c673c6e
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/CommonsMetadata
Gerrit-Branch: master
Gerrit-Owner: Unicodesnowman <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to