Плагин для отправки фотографий с сайтов. (Google Chrome extension)

20 000 руб. за проект • наличный расчёт, безналичный расчёт, электронные деньги
28 ноября 2016, 15:28 • 4 отклика • 32 просмотра
Плагин Google Chrome (ver. >= 54) для скачивания фотографий с сайтов:
http://www.freepik.com
https://www.shutterstock.com/
http://www.istockphoto.com/

Плагин должен уметь:
- Работать с множеством сайтов
- Скачивать и передавать фото(архив) нам в API
- Определять наличие уже скаченного фото взаимодействуя с API

Обозначения:
ЛК – личный кабинет
СайтX.com – Наш сайт, куда будут отправляться скаченные фото
Источник.com – Сайты источники, откуда будут браться фотографии
API – (application programming interface) Интерфейс для взаимодействия с СайтX.com

Плагин должен иметь удобный интерфейс для расширения, что бы добавление нового сайта-источника сводилось к добавлению одного-нескольких новых файлов в плагин, при этом старые файлы не затрагиваются.
freepik.com
В любой категории в списке фото (Например на: http://www.freepik.com/free-photos-vectors/brochure ) плагин должен помечать заметной иконкой скачивалась ли эта фотография на СайтX.com или нет.
Т.к. многие сервисы имеют ЛК и при загрузке фото проверяют, авторизован ли пользователь, этот ли IP и тд, то при загрузке фотографий, плагин должен сначала скачать фото на локальную машину и только потом отправить его нам на сайт СайтX.com
Взаимодействие с СайтX.com происходит через API по средствам POST, GET запросов. API возвращает данные в формате JSON.

API
Работа с АПИ осуществляется с определенных IP адресов, поэтому писать систему авторизации клиента не нужно.
Если клиент не имеет доступа к API, то при любом запросе IP будет отвечать:
{"status":"bad","code":200,"data":null, "errors":["Ошибка доступа"]}

1. Проверяем наличие фото в БД:
GET: СайтX.com/photo/isset/?host=SOURSE_HOST&id=PHOTO_ID¶ms=SOME_PARAMS
SOURSE_HOST – (string) Домен Источника (например: www.freepik.com )
PHOTO_ID – (string/int) ID фотографии, может быть как текстовым, так и числовым (например, для фото: http://www.freepik.com/free-vector/green-brochure-template-with-circles_788017.htm ID будет: 788017 )
SOME_PARAMS – (string) (не обязательный параметр) Параметры фото: размер, формат и т.д.
Ответ API:
{"status":"ok","code":200,"data":true}
"data":true – Означает, что фото уже есть в БД, (false – если фото нет)

2. Загружаем фото в БД
Это может быть как само изображение, так и архив(zip, rar), в архиве должно быть только один графический файл.
POST: СайтX.com/photo/add/
host=SOURSE_HOST
id=PHOTO_ID
params=SOME_PARAMS
photo=PHOTO_FILE
SOME_PARAMS – (string) (не обязательный параметр) Параметры фото: размер, формат и т.д.
PHOTO_FILE – файл изображения
Ответ API:
{"status":"ok","code":200,"data":true}
"data":true – успешно, (false – нет)
Ответ сайта может быть: {"status":"bad","code":200,"data":false, "errors":["Текст ошибки","Текст еще ошибки"]}
Если в ходе работы с плагином возникает ошибка, то о ней нужно информировать пользователя, достаточно обычного alert(); И дополнительно ошибки сыпать в консоль.
В ходе успешной загрузки фото на СайтX.com так же информировать пользователя через alert();
На сайтах:
https://www.shutterstock.com/
http://www.istockphoto.com/
Скачать фото можно только через оплаченный аккаунт. Его мы выдадим в процессе работы.

Принцип просмотра и скачивания фото аналогичен, как и с freepik.com