Просмотр исходного кода

add support of compressed files

Gildas 1 год назад
Родитель
Сommit
e681bfa724
2 измененных файлов с 14 добавлено и 5 удалено
  1. 11 1
      src/core/bg/downloads.js
  2. 3 4
      src/lib/rest-form-api/index.js

+ 11 - 1
src/core/bg/downloads.js

@@ -37,7 +37,7 @@ import { WebDAV } from "./../../lib/webdav/webdav.js";
 import { GitHub } from "./../../lib/github/github.js";
 import { download } from "./download-util.js";
 import * as yabson from "./../../lib/yabson/yabson.js";
-import {RestFormApi} from "../../lib/../lib/rest-form-api/index";
+import { RestFormApi } from "../../lib/../lib/rest-form-api/index.js";
 
 const partialContents = new Map();
 const tabData = new Map();
@@ -330,6 +330,16 @@ async function downloadCompressedContent(message, tab) {
 					prompt
 				});
 				await response.pushPromise;
+			} else if (message.saveToRestFormApi) {
+				response = await saveToRestFormApi(
+					message.taskId,
+					blob,
+					tab.url,
+					message.saveToRestFormApiToken,
+					message.saveToRestFormApiUrl,
+					message.saveToRestFormApiFileFieldName,
+					message.saveToRestFormApiUrlFieldName
+				);
 			} else {
 				message.url = URL.createObjectURL(blob);
 				response = await downloadPage(message, {

+ 3 - 4
src/lib/rest-form-api/index.js

@@ -23,7 +23,7 @@
  *   Source.
  */
 
-/* global fetch, Blob, AbortController, File, FormData */
+/* global fetch, Blob, AbortController, FormData */
 
 const AUTHORIZATION_HEADER = "Authorization";
 const BEARER_PREFIX_AUTHORIZATION = "Bearer ";
@@ -45,11 +45,10 @@ class RestFormApi {
 
 	async upload(content, url) {
 		this.controller = new AbortController();
-		const blob = new Blob([content], { type: "text/html" });
-		const file = new File([blob], "SingleFile.html", { type: "text/html" });
+		const blob = content instanceof Blob ? content : new Blob([content], { type: "text/html" });
 		let formData = new FormData();
 		if (this.fileFieldName) {
-			formData.append(this.fileFieldName, file);
+			formData.append(this.fileFieldName, blob);
 		}
 		if (this.urlFieldName) {
 			formData.append(this.urlFieldName, url);