jenkins-bot has submitted this change and it was merged. ( 
https://gerrit.wikimedia.org/r/331879 )

Change subject: Added verification to PMCID and PMID parameters in 
"addPubMedIndentifiers"
......................................................................


Added verification to PMCID and PMID parameters in "addPubMedIndentifiers"

Bug: T149513
Change-Id: I7695e65efb7019ab4f161d258e50c49f9c792bd8
---
M lib/Exporter.js
M test/features/scraping/index.js
2 files changed, 22 insertions(+), 6 deletions(-)

Approvals:
  jenkins-bot: Verified
  Mvolz: Looks good to me, approved



diff --git a/lib/Exporter.js b/lib/Exporter.js
index 895e263..942e60e 100644
--- a/lib/Exporter.js
+++ b/lib/Exporter.js
@@ -276,6 +276,8 @@
     var citation = cr.response.body[0];
     var gotData = false; // Whether or not we retrieved any useful data from 
PubMed
 
+    var rePMCID = new RegExp('\\bPMC\\d{7}\\b');
+    var rePMID = new RegExp('^[1-9]\\d{0,7}\\b');
     // Try to get PMCID or PMID from extra field
     if ((!citation.PMCID || !citation.PMID) && citation.extra) {
         //get pmid from extra fields
@@ -283,8 +285,10 @@
         for (var f in extraFields) {
             //could add them all, but let's not do this in case of conflicting 
fields
             var keyValue = extraFields[f].split(': ');
-            if (keyValue[0] === 'PMID' || keyValue[0] === 'PMCID') {
-                citation[keyValue[0]] = keyValue[1].trim().replace('PMC','');
+            if (keyValue[0] === 'PMID' && keyValue[1].trim().match(rePMID)) {
+              citation['PMID'] = keyValue[1].trim();
+            } else if (keyValue[0] === 'PMCID' && 
keyValue[1].trim().match(rePMCID)) {
+              citation['PMCID'] = keyValue[1].trim();
             }
         }
     }
@@ -295,7 +299,7 @@
     }
 
     // Fill in remaining IDs from pubmed api
-    return pubMedRequest((citation.DOI || (citation.PMCID ? "PMC" + 
citation.PMCID : false) || citation.PMID),
+    return pubMedRequest((citation.DOI || (citation.PMCID ? citation.PMCID : 
false) || citation.PMID),
             userAgent, defaultLogger).then(function(results){
         if (!citation.PMID && results.records[0].pmid){
             gotData = true;
@@ -303,7 +307,7 @@
         }
         if (!citation.PMCID && results.records[0].pmcid) {
             gotData = true;
-            citation.PMCID = results.records[0].pmcid.replace('PMC','');
+            citation.PMCID = results.records[0].pmcid;
         }
         if (!citation.DOI && results.records[0].doi) {
             gotData = true;
@@ -599,4 +603,4 @@
 module.exports.fixURL = fixURL;
 
 module.exports.validateISSN = validateISSN;
-module.exports.validateISBN = validateISBN;
\ No newline at end of file
+module.exports.validateISBN = validateISBN;
diff --git a/test/features/scraping/index.js b/test/features/scraping/index.js
index ddd3ca6..c3b92d7 100644
--- a/test/features/scraping/index.js
+++ b/test/features/scraping/index.js
@@ -97,7 +97,19 @@
             assert.deepEqual(res.body[0].publicationTitle, undefined); //TODO: 
Investigate why this is undefined
         });
     });
+    it('PMCID but no PMID', function() {
+
+        it('webpage', function() {
+            return server.query('PMC2096233',
+                'mediawiki', 'en', 'true').then(function(res) {
+                assert.status(res, 200);
+                console.log(res);
+                assert.deepEqual(!!res.body[0].PMCID, true, 'PMC2096233');
+                assert.deepEqual(res.body[0].PMID, undefined, 'PMID is null');
+            });
+        });
+
+    });
 
 
 });
-

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I7695e65efb7019ab4f161d258e50c49f9c792bd8
Gerrit-PatchSet: 10
Gerrit-Project: mediawiki/services/citoid
Gerrit-Branch: master
Gerrit-Owner: Filip <r...@protonmail.com>
Gerrit-Reviewer: Filip <r...@protonmail.com>
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