|
|
@@ -188,18 +188,18 @@ this.singlefile.lib.util = this.singlefile.lib.util || (() => {
|
|
|
};
|
|
|
|
|
|
async function getContent(resourceURL, options) {
|
|
|
- let resourceContent, startTime;
|
|
|
+ let response, startTime;
|
|
|
if (DEBUG) {
|
|
|
startTime = Date.now();
|
|
|
log(" // STARTED download url =", resourceURL, "asBinary =", options.asBinary);
|
|
|
}
|
|
|
try {
|
|
|
- resourceContent = await getResourceContent(resourceURL, utilOptions.fetch);
|
|
|
+ response = await getResponse(resourceURL, utilOptions.fetch);
|
|
|
} catch (error) {
|
|
|
return { data: options.asBinary ? "data:base64," : "", resourceURL };
|
|
|
}
|
|
|
- resourceURL = resourceContent.getUrl();
|
|
|
- let contentType = resourceContent.getContentType();
|
|
|
+ resourceURL = response.getUrl();
|
|
|
+ let contentType = response.getContentType();
|
|
|
let charset;
|
|
|
if (contentType) {
|
|
|
const matchContentType = contentType.toLowerCase().split(";");
|
|
|
@@ -223,17 +223,17 @@ this.singlefile.lib.util = this.singlefile.lib.util || (() => {
|
|
|
if (DEBUG) {
|
|
|
log(" // ENDED download url =", resourceURL, "delay =", Date.now() - startTime);
|
|
|
}
|
|
|
- if (options.maxResourceSizeEnabled && resourceContent.getSize() > options.maxResourceSize * ONE_MB) {
|
|
|
+ if (options.maxResourceSizeEnabled && response.getSize() > options.maxResourceSize * ONE_MB) {
|
|
|
return { data: "data:base64,", resourceURL };
|
|
|
} else {
|
|
|
- const dataUri = await resourceContent.getDataUri(contentType);
|
|
|
+ const dataUri = await response.getDataUri(contentType);
|
|
|
return { data: dataUri, resourceURL };
|
|
|
}
|
|
|
} catch (error) {
|
|
|
return { data: "data:base64,", resourceURL };
|
|
|
}
|
|
|
} else {
|
|
|
- if (resourceContent.getStatusCode() >= 400 || (options.validateTextContentType && contentType && !contentType.startsWith(PREFIX_CONTENT_TYPE_TEXT))) {
|
|
|
+ if (response.getStatusCode() >= 400 || (options.validateTextContentType && contentType && !contentType.startsWith(PREFIX_CONTENT_TYPE_TEXT))) {
|
|
|
return { data: "", resourceURL };
|
|
|
}
|
|
|
if (!charset) {
|
|
|
@@ -242,15 +242,15 @@ this.singlefile.lib.util = this.singlefile.lib.util || (() => {
|
|
|
if (DEBUG) {
|
|
|
log(" // ENDED download url =", resourceURL, "delay =", Date.now() - startTime);
|
|
|
}
|
|
|
- if (options.maxResourceSizeEnabled && resourceContent.getSize() > options.maxResourceSize * ONE_MB) {
|
|
|
+ if (options.maxResourceSizeEnabled && response.getSize() > options.maxResourceSize * ONE_MB) {
|
|
|
return { data: "", resourceURL, charset };
|
|
|
} else {
|
|
|
try {
|
|
|
- return { data: resourceContent.getText(charset), resourceURL, charset };
|
|
|
+ return { data: response.getText(charset), resourceURL, charset };
|
|
|
} catch (error) {
|
|
|
try {
|
|
|
charset = "utf-8";
|
|
|
- return { data: resourceContent.getText(charset), resourceURL, charset };
|
|
|
+ return { data: response.getText(charset), resourceURL, charset };
|
|
|
} catch (error) {
|
|
|
return { data: "", resourceURL, charset };
|
|
|
}
|
|
|
@@ -261,18 +261,18 @@ this.singlefile.lib.util = this.singlefile.lib.util || (() => {
|
|
|
}
|
|
|
};
|
|
|
|
|
|
- async function getResourceContent(resourceURL, fetchResource) {
|
|
|
- const resourceContent = await fetchResource(resourceURL);
|
|
|
- const buffer = await resourceContent.arrayBuffer();
|
|
|
+ async function getResponse(resourceURL, fetchResource) {
|
|
|
+ const response = await fetchResource(resourceURL);
|
|
|
+ const buffer = await response.arrayBuffer();
|
|
|
return {
|
|
|
getUrl() {
|
|
|
- return resourceContent.url || resourceURL;
|
|
|
+ return response.url || resourceURL;
|
|
|
},
|
|
|
getContentType() {
|
|
|
- return resourceContent.headers && resourceContent.headers.get("content-type");
|
|
|
+ return response.headers && response.headers.get("content-type");
|
|
|
},
|
|
|
getStatusCode() {
|
|
|
- return resourceContent.status;
|
|
|
+ return response.status;
|
|
|
},
|
|
|
getSize() {
|
|
|
return buffer.byteLength;
|