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


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 listUrl = 'https://picsum.photos' + randomPage + '&limit=30';
    const listResponse = await fetch(listUrl);
    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) {
    return res.status(500).json({ 
      error: 'Server crashed', 
      message: error.message 
    });
  }
}