На основе готового скрипта github.com/Havenstd06/Lim... нужно добавить парсеры изображений из API, предоставленных сайтами: pixabay.com unsplash.com pexels.com
В базу данных добавляем таблицу `models` здесь будут храниться все модели камер. Модели камер будут извлечены из exif изображений.
Парсинг будет двух видов: ручной и автоматический:
ручной парсер:
в админке отдельная страница с формой из нескольких полей: - возможность выбрать провайдер (all/pexels/unsplash/pixabay), - popular/recent, - limit (возможность парсить более 1000 изображений за один клик, чтобы сервер не упал), - приветствовалась бы возможность парсинга по модели (если это возможно). После каждого парсинга должна отображаться сводка о парсинге (из логов). автоматический парсер (CRON) в админке отдельная страница с настройками: - вкл/выкл - возможность выбрать частота (1 раз в день, раз в 2 дня, раз в неделю) - limit (количество изображений) - провайдер (all/pexels/unsplash/pixabay) - popular/recent, результат записывается в logs
Условия парсинга изображения: изображение будет сохранено, только если изображение уникальная и не было уже сохранено; изображение будет сохранено, только если изображение содержит данные exif; изображение будет сохранено, только если в модель камеры меньше 100 изображений; для каждого спарсенного изображения: - изображение будет скопировано на сайт - модель камеры, с которой была сделана эта фотография, полученная из exif, сохраняется в model_id (если модель не существует в БД эта модель создается) - сохранить exif (json со всеми данными) - сохранить автор (json с именем и ссылкой на его профиль)
Подайте заявку, только если вы работали с другими API и знаете, как спроектировать парсер в соответствии с канонами Laravel (абстрактные классы/интерфейсы/контракты ...),но не по 100500 if-else в контроллере. Пример: github.com/koel/koel/tree...