Added logic to check if DOI exists before adding to JSTOR item.
This commit is contained in:
parent
ad14b44335
commit
85876c36a6
|
@ -104,19 +104,44 @@ function doWeb(doc, url) {
|
||||||
if (/stable\/(\d+)/.test(item.url)) {
|
if (/stable\/(\d+)/.test(item.url)) {
|
||||||
var localJid = RegExp.$1;
|
var localJid = RegExp.$1;
|
||||||
|
|
||||||
// Add DOI
|
var doi = "10.2307/"+localJid;
|
||||||
if (! item.DOI) {
|
checkDOI(item, doi);
|
||||||
item.DOI = "10.2307/"+localJid;
|
|
||||||
}
|
|
||||||
var pdfurl = "http://"+ host + "/stable/pdfplus/" + localJid + ".pdf";
|
var pdfurl = "http://"+ host + "/stable/pdfplus/" + localJid + ".pdf";
|
||||||
item.attachments.push({url:pdfurl, title:"JSTOR Full Text PDF", mimeType:"application/pdf"});
|
item.attachments.push({url:pdfurl, title:"JSTOR Full Text PDF", mimeType:"application/pdf"});
|
||||||
}
|
}
|
||||||
item.complete();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
translator.translate();
|
translator.translate();
|
||||||
|
|
||||||
Zotero.done();
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function checkDOI(item, doi) {
|
||||||
|
var crossrefURL = "http://www.crossref.org/openurl/?req_dat=zter:zter321&url_ver=Z39.88-2004&ctx_ver=Z39.88-2004&rft_id=info%3Adoi/"+doi+"&noredirect=true&format=unixref";
|
||||||
|
var doiCheckGenerate = function(item) {
|
||||||
|
var closedItem = item;
|
||||||
|
var checker = function(responseText) {
|
||||||
|
responseText = responseText.replace(/<\?xml[^>]*\?>/, "");
|
||||||
|
// parse XML with E4X
|
||||||
|
try {
|
||||||
|
var xml = new XML(responseText);
|
||||||
|
} catch(e) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
var doi = xml..doi;
|
||||||
|
|
||||||
|
// ensure DOI is valid
|
||||||
|
if(!xml..error.length()) {
|
||||||
|
Zotero.debug("DOI is Valid.");
|
||||||
|
closedItem.DOI = doi;
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
return checker;
|
||||||
|
};
|
||||||
|
|
||||||
|
var checkDOI = doiCheckGenerate(item);
|
||||||
|
Zotero.Utilities.HTTP.doGet(crossrefURL, checkDOI, function() { item.complete(); Zotero.done(); });
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user