|
@@ -9,7 +9,7 @@ |
|
|
|
"inRepository": true, |
|
|
|
"translatorType": 4, |
|
|
|
"browserSupport": "gcsibv", |
|
|
|
"lastUpdated": "2018-01-22 21:59:40" |
|
|
|
"lastUpdated": "2018-03-08 08:11:55" |
|
|
|
} |
|
|
|
|
|
|
|
/* |
|
@@ -130,7 +130,6 @@ function scrape(doc, url) { |
|
|
|
ZU.processDocuments(cslURL, function(newDoc){ |
|
|
|
var text = ZU.xpathText(newDoc, '//h3/following-sibling::pre'); |
|
|
|
//Z.debug(text) |
|
|
|
var type = text.match(/"type": "(.+?)"/)[1]; |
|
|
|
text = text.replace(/publisher_place/, "publisher-place"); |
|
|
|
text = text.replace(/container_title/, "container-title"); |
|
|
|
|
|
@@ -172,9 +171,13 @@ function scrape(doc, url) { |
|
|
|
//something is odd with zenodo's author parsing to CSL on some pages; fix it |
|
|
|
//e.g. https://zenodo.org/record/569323 |
|
|
|
for (var i = 0; i< item.creators.length; i++) { |
|
|
|
if (!item.creators[i].firstName && item.creators[i].lastName.indexOf(",")!=-1) { |
|
|
|
item.creators[i].firstName = item.creators[i].lastName.replace(/.+?,\s*/, ""); |
|
|
|
item.creators[i].lastName = item.creators[i].lastName.replace(/,.+/, ""); |
|
|
|
if (!item.creators[i].firstName) { |
|
|
|
if (item.creators[i].lastName.indexOf(",")!=-1) { |
|
|
|
item.creators[i].firstName = item.creators[i].lastName.replace(/.+?,\s*/, ""); |
|
|
|
item.creators[i].lastName = item.creators[i].lastName.replace(/,.+/, ""); |
|
|
|
} else { |
|
|
|
item.creators[i].fieldMode = true; |
|
|
|
} |
|
|
|
} |
|
|
|
delete item.creators[i].creatorTypeID; |
|
|
|
} |
|
@@ -187,21 +190,14 @@ function scrape(doc, url) { |
|
|
|
item.url = url; |
|
|
|
if (abstract) item.abstractNote = abstract; |
|
|
|
|
|
|
|
//Zenodo uses some non-existent CSL types we're fixing. |
|
|
|
var zoteroType = { |
|
|
|
"figure": "artwork", |
|
|
|
"article": "report" |
|
|
|
}; |
|
|
|
|
|
|
|
if (item.itemType == "document" && zoteroType[type]) { |
|
|
|
item.itemType = zoteroType[type]; |
|
|
|
} |
|
|
|
item.itemType = detectWeb(doc, url); |
|
|
|
item.itemID = ""; |
|
|
|
item.complete(); |
|
|
|
}); |
|
|
|
trans.translate(); |
|
|
|
}); |
|
|
|
}/** BEGIN TEST CASES **/ |
|
|
|
} |
|
|
|
/** BEGIN TEST CASES **/ |
|
|
|
var testCases = [ |
|
|
|
{ |
|
|
|
"type": "web", |
|
@@ -469,6 +465,66 @@ var testCases = [ |
|
|
|
"seeAlso": [] |
|
|
|
} |
|
|
|
] |
|
|
|
}, |
|
|
|
{ |
|
|
|
"type": "web", |
|
|
|
"url": "https://zenodo.org/record/1048320", |
|
|
|
"items": [ |
|
|
|
{ |
|
|
|
"itemType": "computerProgram", |
|
|
|
"creators": [ |
|
|
|
{ |
|
|
|
"lastName": "Carl Boettiger", |
|
|
|
"firstName": "", |
|
|
|
"creatorType": "author", |
|
|
|
"fieldMode": true |
|
|
|
}, |
|
|
|
{ |
|
|
|
"lastName": "Maëlle Salmon", |
|
|
|
"firstName": "", |
|
|
|
"creatorType": "author", |
|
|
|
"fieldMode": true |
|
|
|
}, |
|
|
|
{ |
|
|
|
"lastName": "Noam Ross", |
|
|
|
"firstName": "", |
|
|
|
"creatorType": "author", |
|
|
|
"fieldMode": true |
|
|
|
}, |
|
|
|
{ |
|
|
|
"lastName": "Arfon Smith", |
|
|
|
"firstName": "", |
|
|
|
"creatorType": "author", |
|
|
|
"fieldMode": true |
|
|
|
}, |
|
|
|
{ |
|
|
|
"lastName": "Anna Krystalli", |
|
|
|
"firstName": "", |
|
|
|
"creatorType": "author", |
|
|
|
"fieldMode": true |
|
|
|
} |
|
|
|
], |
|
|
|
"notes": [], |
|
|
|
"tags": [], |
|
|
|
"seeAlso": [], |
|
|
|
"attachments": [ |
|
|
|
{ |
|
|
|
"title": "Zenodo Snapshot", |
|
|
|
"mimeType": "text/html" |
|
|
|
} |
|
|
|
], |
|
|
|
"title": "ropensci/codemetar: codemetar: Generate CodeMeta Metadata for R Packages", |
|
|
|
"publisher": "Zenodo", |
|
|
|
"abstractNote": "an R package for generating and working with codemeta", |
|
|
|
"date": "2017-11-13", |
|
|
|
"extra": "DOI: 10.5281/zenodo.1048320", |
|
|
|
"url": "https://zenodo.org/record/1048320", |
|
|
|
"libraryCatalog": "Zenodo", |
|
|
|
"accessDate": "2018-03-07T13:45:35Z", |
|
|
|
"shortTitle": "ropensci/codemetar", |
|
|
|
"company": "Zenodo" |
|
|
|
} |
|
|
|
] |
|
|
|
} |
|
|
|
] |
|
|
|
/** END TEST CASES **/ |
0 comments on commit
5fa9a68