|
|
|
|
@ -55,15 +55,15 @@ const downloadNodes = function(nodes: Node[]) { |
|
|
|
|
url.searchParams.append('accept', 'zip') |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
url = new URL(nodes[0].source) |
|
|
|
|
url = new URL(nodes[0].encodedSource) |
|
|
|
|
let base = url.pathname |
|
|
|
|
for (const node of nodes.slice(1)) { |
|
|
|
|
base = longestCommonPath(base, (new URL(node.source).pathname)) |
|
|
|
|
base = longestCommonPath(base, (new URL(node.encodedSource).pathname)) |
|
|
|
|
} |
|
|
|
|
url.pathname = base |
|
|
|
|
|
|
|
|
|
// The URL contains the path encoded so we need to decode as the query.append will re-encode it
|
|
|
|
|
const filenames = nodes.map((node) => decodeURI(node.encodedSource.slice(url.href.length + 1))) |
|
|
|
|
const filenames = nodes.map((node) => decodeURIComponent(node.encodedSource.slice(url.href.length + 1))) |
|
|
|
|
url.searchParams.append('accept', 'zip') |
|
|
|
|
url.searchParams.append('files', JSON.stringify(filenames)) |
|
|
|
|
} |
|
|
|
|
|