Загрузка данных


import fetch from 'node-fetch';

export default async function handler(req, res) {
  try {
    // 1. Генерируем случайную страницу от 1 до 30
    const randomPage = Math.floor(Math.random() * 30) + 1;
    
    // 2. Делаем запрос к официальной базе картинок Picsum (Знак $ теперь на месте)
    const listResponse = await fetch(`https://picsum.photos{randomPage}&limit=30`);
    if (!listResponse.ok) throw new Error('Failed to fetch image list');
    
    const imagesList = await listResponse.json();
    
    // 3. Выбираем абсолютно случайную картинку из полученного списка
    const randomImage = imagesList[Math.floor(Math.random() * imagesList.length)];
    
    // 4. Формируем прямую ссылку под разрешение твоего экрана
    const finalImageUrl = `https://picsum.photos{randomImage.id}/1080/2400`;

    // 5. Скачиваем картинку на стороне сервера Vercel
    const imageResponse = await fetch(finalImageUrl);
    if (!imageResponse.ok) throw new Error('Failed to fetch raw image bytes');

    const arrayBuffer = await imageResponse.arrayBuffer();
    const buffer = Buffer.from(arrayBuffer);

    // 6. Отдаем чистый JPEG файл прямо в MacroDroid
    res.setHeader('Content-Type', 'image/jpeg');
    res.setHeader('Cache-Control', 'no-store, max-age=0, must-revalidate');
    
    return res.status(200).send(buffer);

  } catch (error) {
    // Если произошел глобальный сбой, возвращаем JSON с ошибкой
    return res.status(500).json({ 
      error: 'Server crashed', 
      message: error.message 
    });
  }
}