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,32 +461,36 @@ 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();
translate.setTranslator(translators); if (translators.length) {
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) {
newItem.setField('abstractNote', res.abstract); newItem.setField('abstractNote', res.abstract);
}
if (!newItem.language && res.language) {
newItem.setField('language', res.language);
}
newItem.saveTx();
return newItem;
} }
if (!newItem.language && res.language) { catch (e) {
newItem.setField('language', res.language); Zotero.debug('RecognizePDF: ' + e);
} }
newItem.saveTx();
return newItem;
} }
catch (e) { else {
Zotero.debug('RecognizePDF: ' + e); 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 {