commit 3b4c502ca9ba30cff5a45b1b58110eb2514decfc
parent 15722e5022b8aa2e9aebc174e0e98a2de4c49f15
Author: Aurimas Vinckevicius <aurimas.dev@gmail.com>
Date: Sat, 30 Aug 2014 01:25:42 -0500
[RecognizePDF] Attempt to search by ISBN even if we found a DOI
(but only if DOI search failed)
Diffstat:
1 file changed, 29 insertions(+), 22 deletions(-)
diff --git a/chrome/content/zotero/recognizePDF.js b/chrome/content/zotero/recognizePDF.js
@@ -95,30 +95,34 @@ var Zotero_RecognizePDF = new function() {
// Look up DOI
Zotero.debug("RecognizePDF: Found DOI: "+doi);
- var translate = new Zotero.Translate.Search();
- translate.setTranslator("11645bd1-0420-45c1-badb-53fb41eeb753");
- translate.setSearch({"itemType":"journalArticle", "DOI":doi});
- promise = _promiseTranslate(translate, libraryID);
+ var translateDOI = new Zotero.Translate.Search();
+ translateDOI.setTranslator("11645bd1-0420-45c1-badb-53fb41eeb753");
+ translateDOI.setSearch({"itemType":"journalArticle", "DOI":doi});
+ promise = _promiseTranslate(translateDOI, libraryID);
} else {
- // Look for ISBNs if no DOI
- var isbns = _findISBNs(allText);
- if(isbns.length) {
- Zotero.debug("RecognizePDF: Found ISBNs: " + isbns);
-
- var translate = new Zotero.Translate.Search();
- translate.setTranslator("c73a4a8c-3ef1-4ec8-8229-7531ee384cc4");
- translate.setSearch({"itemType":"book", "ISBN":isbns[0]});
- promise = _promiseTranslate(translate, libraryID);
- } else {
- promise = Q.reject("No ISBN or DOI found");
- }
+ promise = Q.reject("No DOI found in text");
}
- // If no DOI or ISBN, query Google Scholar
- return promise.fail(function(error) {
- Zotero.debug("RecognizePDF: "+error);
- return me.GSFullTextSearch.findItem(lines, libraryID, stopCheckCallback);
- });
+ return promise
+ // Look for ISBNs if no DOI
+ .fail(function(error) {
+ Zotero.debug("RecognizePDF: " + error);
+ var isbns = _findISBNs(allText);
+ if (isbns.length) {
+ Zotero.debug("RecognizePDF: Found ISBNs: " + isbns);
+
+ var translate = new Zotero.Translate.Search();
+ translate.setSearch({"itemType":"book", "ISBN":isbns[0]});
+ return _promiseTranslate(translate, libraryID);
+ } else {
+ return Q.reject("No ISBN found in text.");
+ }
+ })
+ // If no DOI or ISBN, query Google Scholar
+ .fail(function(error) {
+ Zotero.debug("RecognizePDF: " + error);
+ return me.GSFullTextSearch.findItem(lines, libraryID, stopCheckCallback);
+ });
});
}
@@ -196,7 +200,10 @@ var Zotero_RecognizePDF = new function() {
if(success && translate.newItems.length) {
deferred.resolve(translate.newItems[0]);
} else {
- deferred.reject("Translation with Google Scholar failed");
+ deferred.reject(translate.translator && translate.translator.length
+ ? "Translation with " + translate.translator.map(t => t.label) + " failed"
+ : "Could not find a translator for given search item"
+ );
}
});
translate.translate(libraryID, false);