Fix hang on 500 from site during Find Available PDF

Find Available PDF has its own domain-based retry logic that predated
automatic 5xx retries in Zotero.HTTP, so disable the latter and fix some
bugs in the former.

Fixes #2700
This commit is contained in:
Dan Stillman 2022-10-29 04:07:19 -04:00
parent d658e05363
commit 06b23cca94

View file

@ -2079,7 +2079,9 @@ Zotero.Attachments = new function(){
nextURL,
{
responseType: 'blob',
followRedirects: false
followRedirects: false,
// Use our own error handling
errorDelayMax: 0
}
);
}
@ -2090,11 +2092,13 @@ Zotero.Attachments = new function(){
noDelay = false;
continue;
}
throw e;
}
break;
}
afterRequest(nextURL);
if (!req) {
break;
}
if ([301, 302, 303, 307].includes(req.status)) {
let location = req.getResponseHeader('Location');
if (!location) {
@ -2152,7 +2156,7 @@ Zotero.Attachments = new function(){
}
// If DOI resolves directly to a PDF, save it to disk
if (contentType.startsWith('application/pdf')) {
if (contentType && contentType.startsWith('application/pdf')) {
Zotero.debug("URL resolves directly to PDF");
await Zotero.File.putContentsAsync(path, blob);
await _enforcePDF(path);
@ -2168,7 +2172,7 @@ Zotero.Attachments = new function(){
continue;
}
if (!url) {
Zotero.debug(`No PDF found on ${responseURL}`);
Zotero.debug(`No PDF found on ${responseURL || pageURL}`);
continue;
}
if (isTriedURL(url)) {