/* classify uploaded images using a Huggingface model */ async function classifyImages(acceptedFiles) { let formData = new FormData(); for (const file of acceptedFiles){ formData.append('files', file); } let classifyResponse = await fetch('classify', { method: 'POST', body: formData }); return classifyResponse; } const inputDoc = document.getElementById('doc-input'); const outputDocLink = document.getElementById('doc-output-link'); inputDoc.addEventListener("change", async event =>{ /* hide Download button when in classification process */ // outputDocLink.style.visibility = "hidden"; // dlOutputBtn.disabled = true; outputDocLink.ariaDisabled = "true"; outputDocLink.classList.add("disabled"); const files = event.target.files; /* make Download button's visible, and add the link to download the resulting .csv file */ await classifyImages(files).then(async (result) => { // outputDocLink.style.visibility = "visible"; // dlOutputBtn.disabled = false; outputDocLink.ariaDisabled = "false"; outputDocLink.classList.remove("disabled"); const disposition = result.headers.get('Content-Disposition'); const filenameRegex = /filename[^;=\n]*=((['"]).*?\2|[^;\n]*)/; const matches = filenameRegex.exec(disposition); // const filename = matches != null && matches[1] ? matches[1].replace(/['"]/g, '') : 'data.csv'; const filename = 'data.csv'; const blob = await result.blob(); const url = window.URL.createObjectURL(blob); // set download link to the download button outputDocLink.href = url; }); });