zotero/translators/Institute of Physics.js
2011-08-29 21:00:24 +00:00

164 lines
4.8 KiB
JavaScript

{
"translatorID": "9346ddef-126b-47ec-afef-8809ed1972ab",
"label": "Institute of Physics",
"creator": "Michael Berkowitz and Avram Lyon",
"target": "^http://iopscience\\.iop\\.org/[0-9-]+/.+",
"minVersion": "2.1",
"maxVersion": "",
"priority": 99,
"browserSupport": "gcs",
"inRepository": true,
"translatorType": 4,
"lastUpdated": "2011-08-22 22:29:32"
}
function detectWeb(doc, url) {
if (url.indexOf("search") == -1) {
return "journalArticle";
} else {
return "multiple";
}
}
function fetchDOIs(DOIs) {
var DOI = DOIs.shift();
if (!DOI) {
Zotero.done();
return true;
}
var articleID = DOI.slice(DOI.indexOf('/')+1);
var pdfURL = "http://iopscience.iop.org/"+articleID+"/pdf/"+articleID.replace("/","_","g")+".pdf";
var doitranslate = Zotero.loadTranslator("search");
doitranslate.setTranslator("11645bd1-0420-45c1-badb-53fb41eeb753");
var item = {"itemType":"journalArticle", "DOI":DOI};
doitranslate.setSearch(item);
doitranslate.setHandler("itemDone", function(obj, item) {
item.url = "http://iopscience.iop.org/"+articleID;
item.attachments.push({url:pdfURL, title:"IOP Full Text PDF", mimeType:"application/pdf"});
item.libraryCatalog = "Intitute of Physics";
item.complete();
fetchDOIs(DOIs);
});
var fallback = function() {
Zotero.debug("Error saving using DOI and CrossRef; trying RIS");
// If there is something wrong with the item
var postVars = "exportFormat=iopexport_ris&exportType=abs&articleId="+articleID;
Zotero.Utilities.HTTP.doPost("http://iopscience.iop.org/export", postVars, function(text){
// load translator for RIS
var ristranslator = Zotero.loadTranslator ("import");
ristranslator.setTranslator("32d59d2d-b65a-4da4-b0a3-bdd3cfb979e7");
ristranslator.setString(text);
ristranslator.setHandler("itemDone", function(obj, item) {
item.url = "http://iopscience.iop.org/"+articleID;
item.libraryCatalog = "Intitute of Physics";
item.attachments.push({url:pdfURL, title:"IOP Full Text PDF", mimeType:"application/pdf"});
item.complete();
fetchDOIs(DOIs);
});
ristranslator.translate();
}, function() {});
}
doitranslate.setHandler("error", fallback);
try { doitranslate.translate() } catch (e) {
Zotero.debug("Caught exception");
fallback();
};
}
function doWeb(doc, url) {
var namespace = doc.documentElement.namespaceURI;
var nsResolver = namespace ? function(prefix) {
if (prefix == "x") return namespace; else return null;
} : null;
var arts = new Array();
if (detectWeb(doc, url) == "multiple") {
var items = new Object();
var results = doc.evaluate('//div[@class="searchResCol1"]', doc, nsResolver, XPathResult.ANY_TYPE, null);
var result;
while (result = results.iterateNext()) {
var title = doc.evaluate('.//h4/a', result, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().textContent;
var doi = doc.evaluate('.//span[@class="doi"]/strong/a', result, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().textContent;
items[doi] = title.trim();
}
Zotero.selectItems(items, function(items) {
if(!items) return true;
for (var i in items) {
arts.push(i);
}
fetchDOIs(arts);
Zotero.wait();
});
} else {
var doi = doc.evaluate('//meta[@name="citation_doi"]', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().content;
fetchDOIs([doi]);
Zotero.wait();
}
}
/** BEGIN TEST CASES **/
var testCases = [
{
"type": "web",
"url": "http://iopscience.iop.org/0022-3727/34/10/311",
"items": [
{
"itemType": "journalArticle",
"creators": [
{
"creatorType": "author",
"firstName": "J",
"lastName": "Batina"
},
{
"creatorType": "author",
"firstName": "F",
"lastName": "Noël"
},
{
"creatorType": "author",
"firstName": "S",
"lastName": "Lachaud"
},
{
"creatorType": "author",
"firstName": "R",
"lastName": "Peyrous"
},
{
"creatorType": "author",
"firstName": "J F",
"lastName": "Loiseau"
}
],
"notes": [],
"tags": [],
"seeAlso": [],
"attachments": [
{
"url": false,
"title": "IOP Full Text PDF",
"mimeType": "application/pdf"
}
],
"publicationTitle": "Journal of Physics D: Applied Physics",
"volume": "34",
"ISSN": "0022-3727, 1361-6463",
"date": "2001-05-21",
"pages": "1510-1524",
"DOI": "10.1088/0022-3727/34/10/311",
"url": "http://iopscience.iop.org/0022-3727/34/10/311",
"title": "Hydrodynamical simulation of the electric wind in a cylindrical vessel with positive point-to-plane device",
"libraryCatalog": "CrossRef"
}
]
},
{
"type": "web",
"url": "http://iopscience.iop.org/search?searchType=fullText&fieldedquery=fun&f=titleabs&time=all&submit=Search&navsubmit=Search",
"items": "multiple"
}
]
/** END TEST CASES **/