| 16182 | ); |
| 16183 | if (files.length) { |
| 16184 | async function handle(items, dir = "") { |
| 16185 | for await (let item of items) { |
| 16186 | let name = item.name; |
| 16187 | let path = dir + "/" + name; |
| 16188 | if (allData.has(path)) continue; |
| 16189 | if (item.kind === "directory") { |
| 16190 | allData.set(path, true); |
| 16191 | await handle(item.values(), path); |
| 16192 | } else if (item.kind === "file") { |
| 16193 | let file = await item.getFile(); |
| 16194 | allData.set(path, true); |
| 16195 | let src = URL.createObjectURL(file); |
| 16196 | let media; |
| 16197 | if (file.type.indexOf("image") === 0) { |
| 16198 | media = document.createElement('img'); |
| 16199 | } else if (file.type.indexOf("audio") === 0) { |
| 16200 | media = document.createElement('audio'); |
| 16201 | src = "audio:" + src; |
| 16202 | } else if (file.type.indexOf("video") === 0) { |
| 16203 | media = createVideo(); |
| 16204 | src = "video:" + src; |
| 16205 | } else continue; |
| 16206 | media.src = src; |
| 16207 | media.title = path; |
| 16208 | var result = { |
| 16209 | src: src, |
| 16210 | type: 'force', |
| 16211 | imgSrc: src, |
| 16212 | noActual:true, |
| 16213 | description: path, |
| 16214 | img: media |
| 16215 | }; |
| 16216 | self.data.push(result); |
| 16217 | self._appendThumbSpans([result]); |
| 16218 | } |
| 16219 | } |
| 16220 | } |
| 16221 | await handle(files); |
| 16222 | self.loadThumb(); |
| 16223 | } |