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:
parent
e2163a88c3
commit
bd7cdbdc81
1 changed files with 19 additions and 15 deletions
|
@ -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 {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue