in src/github/junie/attachment-downloader.ts [18:48]
async function downloadFile(url: string): Promise<string> {
const response = await fetch(url);
if (!response.ok) {
throw new Error(`Failed to download ${url}: ${response.status} ${response.statusText}`);
}
const arrayBuffer = await response.arrayBuffer();
const buffer = Buffer.from(arrayBuffer);
await mkdir(DOWNLOAD_DIR, {recursive: true});
let filename = url.split('/').pop() || `attachment-${Date.now()}`;
// If filename doesn't have extension, try to get it from Content-Type
if (!filename.includes('.')) {
const contentType = response.headers.get('content-type');
if (contentType) {
const ext = mime.extension(contentType);
if (ext) {
filename = `${filename}.${ext}`;
}
}
}
const localPath = join(DOWNLOAD_DIR, filename);
await writeFile(localPath, buffer);
console.log(`✓ Downloaded: ${url} -> ${localPath}`);
return localPath;
}