Mobrovac has submitted this change and it was merged.

Change subject: Convert all Zotero date fields to ISO
......................................................................


Convert all Zotero date fields to ISO

Bug: T95016
Bug: T101878
Change-Id: I63a5d2a0e6c2f70bce59b1ca03702954b42cb340
---
M lib/Exporter.js
M lib/Scraper.js
M test/features/scraping/index.js
3 files changed, 30 insertions(+), 2 deletions(-)

Approvals:
  Mobrovac: Checked; Looks good to me, approved



diff --git a/lib/Exporter.js b/lib/Exporter.js
index cc41f2b..845db53 100644
--- a/lib/Exporter.js
+++ b/lib/Exporter.js
@@ -351,8 +351,8 @@
        fixURL(url, citation);
        fixAccessDate(citation);
        fixLang(citation);
+       fixDate(citation);
 
-       //TODO: Validate date field
        //TODO: Possibly validate ISSN & ISBN / throw out duplicates
 
        return addIDSToCitation(cr);
@@ -408,6 +408,23 @@
        return citation;
 }
 
+/**
+ * If date cannot be converted to ISO, delete
+ * @param  {Object} citation Zotero citation
+ * @return {Object}          Zotero citation
+ */
+function fixDate(citation){
+       if (citation.date){
+               var d = new Date(citation.date + ' GMT+00'); // Explicitly set 
TZ to GMT for servers not running in GMT
+               if (isFinite(d)) {
+                       citation.date = d.toISOString().split('T').shift();
+               } else {
+                       delete citation.date;
+               }
+       }
+       return citation;
+}
+
 /* Exports */
 module.exports = Exporter;
 module.exports.validateZotero = validateZotero;
diff --git a/lib/Scraper.js b/lib/Scraper.js
index 5a0e1a8..403da95 100644
--- a/lib/Scraper.js
+++ b/lib/Scraper.js
@@ -324,7 +324,7 @@
        }
 
        // Access date - universal - format YYYY-MM-DD
-       citation.accessDate = (new Date()).toISOString().substring(0, 10);
+       citation.accessDate = (new Date()).toISOString().split('T').shift();
 
        // Fall back websiteTitle - webpage only
        if (citation.itemType === 'webpage' && !citation.websiteTitle){
diff --git a/test/features/scraping/index.js b/test/features/scraping/index.js
index 1e7bc35..79a273e 100644
--- a/test/features/scraping/index.js
+++ b/test/features/scraping/index.js
@@ -142,6 +142,17 @@
                        });
                });
 
+               it('doi with US style date', function() {
+                       return 
server.query('10.1542/peds.2007-2362').then(function(res) {
+                               assert.status(res, 200);
+                               assert.checkZotCitation(res, 'Management of 
Children With Autism Spectrum Disorders');
+                               assert.deepEqual(!!res.body[0].DOI, true, 
'Missing DOI');
+                               assert.deepEqual(res.body[0].date, 
'2007-11-01', 'Incorrect date; expected 2007-11-01, got ' + res.body[0].date);
+                               assert.deepEqual(res.body[0].itemType, 
'journalArticle', 'Wrong itemType; expected journalArticle, got' + 
res.body[0].itemType);
+
+                       });
+               });
+
                // The following tests require the WMF fork of the zotero 
translators, as found
                // here: 
https://gerrit.wikimedia.org/r/mediawiki/services/zotero/translators
                describe(' uses WMF translator fork', function() {

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I63a5d2a0e6c2f70bce59b1ca03702954b42cb340
Gerrit-PatchSet: 7
Gerrit-Project: mediawiki/services/citoid
Gerrit-Branch: master
Gerrit-Owner: Mvolz <mv...@wikimedia.org>
Gerrit-Reviewer: Jforrester <jforres...@wikimedia.org>
Gerrit-Reviewer: Mobrovac <mobro...@wikimedia.org>
Gerrit-Reviewer: Mvolz <mv...@wikimedia.org>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to