addEventListener('fetch', event => { event.respondWith(handleRequest(event.request)) }); const start_images = 1; const end_images = 47; const image_folder = 'marley'; const default_image = `https://dustin.wtf/${image_folder}/1.jpg`; async function fetchImage() { const imageUrl = `https://dustin.wtf/${image_folder}/${Math.floor(Math.random() * (end_images - start_images) + start_images)}.jpg`; let imageFile = await fetch(imageUrl); let type = imageFile.headers.get('content-type'); if (type.includes('text/plain')) { imageUrl = default_image; imageFile = await fetch(default_image); type = imageFile.headers.get('content-type'); } let { readable, writable } = new TransformStream(); imageFile.body.pipeTo(writable); return { url: imageUrl, file: readable, type }; } async function handleRequest(request) { const { url, file, type } = await fetchImage(); return new Response(file, { headers: { 'x-original-url': url, 'content-type': type } }); }