Don't hang on invalid DOI returned from recognizer-server

THis shouldn't happen anymore, but might as well be safe.
This commit is contained in:
Dan Stillman 2019-04-23 19:07:41 -04:00
parent e2163a88c3
commit bd7cdbdc81

View file

@ -438,7 +438,7 @@ Zotero.RecognizePDF = new function () {
if (!res) return null; if (!res) return null;
if (res.arxiv) { if (res.arxiv) {
Zotero.debug('RecognizePDF: Getting metadata by arXiv'); Zotero.debug(`RecognizePDF: Getting metadata for arXiv ID ${res.arxiv}`);
let translate = new Zotero.Translate.Search(); let translate = new Zotero.Translate.Search();
translate.setIdentifier({arXiv: res.arxiv}); translate.setIdentifier({arXiv: res.arxiv});
let translators = await translate.getTranslators(); let translators = await translate.getTranslators();
@ -461,14 +461,14 @@ Zotero.RecognizePDF = new function () {
} }
if (res.doi) { if (res.doi) {
Zotero.debug('RecognizePDF: Getting metadata by DOI'); Zotero.debug(`RecognizePDF: Getting metadata for DOI (${res.doi})`);
let translate = new Zotero.Translate.Search(); let translate = new Zotero.Translate.Search();
translate.setIdentifier({ translate.setIdentifier({
DOI: res.doi DOI: res.doi
}); });
let translators = await translate.getTranslators(); let translators = await translate.getTranslators();
if (translators.length) {
translate.setTranslator(translators); translate.setTranslator(translators);
try { try {
let newItem = await _promiseTranslate(translate, libraryID); let newItem = await _promiseTranslate(translate, libraryID);
if (!newItem.abstractNote && res.abstract) { if (!newItem.abstractNote && res.abstract) {
@ -484,9 +484,13 @@ Zotero.RecognizePDF = new function () {
Zotero.debug('RecognizePDF: ' + e); Zotero.debug('RecognizePDF: ' + e);
} }
} }
else {
Zotero.debug("RecognizePDF: No translators found");
}
}
if (res.isbn) { if (res.isbn) {
Zotero.debug('RecognizePDF: Getting metadata by ISBN'); Zotero.debug(`RecognizePDF: Getting metadata by ISBN ${res.isbn}`);
let translate = new Zotero.Translate.Search(); let translate = new Zotero.Translate.Search();
translate.setSearch({'itemType': 'book', 'ISBN': res.isbn}); translate.setSearch({'itemType': 'book', 'ISBN': res.isbn});
try { try {