Skip to content

Commit 4cd8b5b

Browse files
committed
add support for dropping/pasting
.zip's and files are supported
1 parent 4cea353 commit 4cd8b5b

File tree

3 files changed

+38
-17
lines changed

3 files changed

+38
-17
lines changed

analyzer.js

+16-13
Original file line numberDiff line numberDiff line change
@@ -192,23 +192,26 @@ async function selectFolder() {
192192

193193
async function selectZip() {
194194
if (interval) clearInterval(interval)
195-
selected = []
196195

197196
const input = document.createElement("input")
198197
input.type = "file"
199198
input.accept = ".zip"
200-
input.onchange = e => {
201-
new JSZip().loadAsync(e.target.files[0]).then(async zip => {
202-
console.log(zip.files)
203-
for await (const file of Object.values(zip.files)) {
204-
selected.push({
205-
name: file.name,
206-
content: await file.async("text")
207-
})
208-
}
209-
mainScan()
210-
})
211-
}
199+
input.onchange = e => handleZip(e.target.files[0])
200+
212201
if ("showPicker" in HTMLInputElement.prototype) input.showPicker()
213202
else input.click()
214203
}
204+
205+
function handleZip(file) {
206+
selected = []
207+
208+
new JSZip().loadAsync(file).then(async zip => {
209+
for await (const file of Object.values(zip.files)) {
210+
selected.push({
211+
name: file.name,
212+
content: await file.async("text")
213+
})
214+
}
215+
mainScan()
216+
})
217+
}

robots.txt

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
User-agent: *
2+
Allow: /

script.js

+20-4
Original file line numberDiff line numberDiff line change
@@ -44,18 +44,34 @@ window.addEventListener("dragover", event => {
4444
event.preventDefault()
4545
event.dataTransfer.dropEffect = "copy"
4646
})
47-
48-
window.addEventListener("drop", event => {
47+
window.addEventListener("drop", async event => {
4948
event.stopPropagation()
5049
event.preventDefault()
5150
const fileList = event.dataTransfer.files
52-
console.log(fileList)
51+
if (fileList[0].name.endsWith(".zip")) handleZip(fileList[0])
52+
else {
53+
selected = []
54+
for await (const file of Object.values(fileList)) {
55+
selected.push({
56+
name: file.name,
57+
content: await file.text()
58+
})
59+
}
60+
mainScan()
61+
}
5362
})
5463
window.addEventListener("paste", async e => {
5564
e.preventDefault()
5665
if (!e.clipboardData.files.length) return
5766
const file = e.clipboardData.files[0]
58-
console.log(await file.text())
67+
if (file.name.endsWith(".zip")) handleZip(file)
68+
else {
69+
selected = [{
70+
name: file.name,
71+
content: await file.text()
72+
}]
73+
mainScan()
74+
}
5975
})
6076

6177
const localize = string => string.toLocaleString(getCookie("lang") || "en-US")

0 commit comments

Comments
 (0)