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