Программа загрузки картинок на сайт под аккаунтом
Нужно разработать программу или библиотеку под Windows, которая бы по переданным параметрам подключения: адрес, логин, пароль; и по предоставленным данным (далее - ПД): наименование альбома или картинка + описание подключилась бы к сайту, загрузила бы туда эти данные и вернула идентификатор загрузки (далее - ID) альбома или картинки.
Детали
- Создавать альбомы и загружать картинки с описанием нужно под заданным пользователем в социальных сетях "Одноклассники.ру" и "Вконтакте.ру".
- С программой пользователь непосредственно не работает, то есть она, по сути, служебная. В программу данные передает другая программа через технологию COM или HTTP-запросом (обсуждаемо с разработчиком). Программа по ПД возвращает или ID загруженных данных (альбома или картинки), или ошибку загрузки с описанием.
- Непосредственно само изображение картинки (*.jpg-файл например) может быть передано в виде двоичных данных или через буферный файл (обсуждаемо с разработчиком).
- Каждое обращение к программе - это запрос на создание альбома или картинки, это указывается в ПД (поле "Тип" в примерах);
- Нужна как первичная загрузка данных, так и возможность обновления загруженных данных (поиск по ID).
- При обновлении картинок должны, разумеется, сохраняться комментарии пользователей, которые были оставлены по картинке ранее.
- В ПД отдельным признаком передается параметр - нужно, если картинка найдена, перезагружать заново её изображение (или просто обновляем описание картинки).
- Загружаться будут не менее нескольких тысяч записей. Загрузка будет проходить последовательно.
Алгоритм работы
Загрузка альбомов:
1. Если альбом уже должен существовать, то дополнительно в ПД программе будет передан его ID;
2. Перед созданием нового альбома, если ID в ПД есть, проверяется существует ли альбом с таким ID на самом деле: если он есть, то создавать его не нужно, только обновить наименование альбома; если нет, то создаем новый альбом с наименованием альбома из ПД.
3. Программа возвращает существующий (или созданный) ID альбома, а также ссылку на альбом или ошибку с её причиной, в случае неудачи.
Загрузка картинок:
1. При передаче информации о картинке в программу в ПД обязательно указывается ID альбома, в который загружена (или загружается) картинка. В одной "транзакции" с обработкой картинки должна быть и проверка альбома на его наличие, если альбома нет - прекращение загрузки и вывод ошибки.
2. Если картинка уже должна существовать, то дополнительно в ПД программе будет передан её ID;
3. Перед созданием новой картинки, если ID-картинки в ПД есть, проверяется существует ли картинка с таким ID на самом деле в этом альбома (по ID-альбома): если она есть, то создавать её не нужно, только обновить описание картинки (если стоит соответствующая опция в ПД); если нет, то создаем новую картинку в этом альбоме (по ID-альбома) с описанием картинки из ПД.
4. Программа возвращает существующий (или созданный) ID картинки, а также ссылку на картинку или ошибку с её причиной, в случае неудачи.
Пример "запросов" данных, которые могут быть переданы программе (одна строка - один запрос):
Тип="Альбом";ID-альбома=;Наименование="Телефоны"; // ID-альбома нет, т.к. ранее не загружался
Тип="Альбом";ID-альбома=102328;Наименование="Часы";
Тип="Альбом";ID-альбома=102333;Наименование="Ноутбуки";
Тип="Альбом";ID-альбома=;Наименование="Камеры"; // тоже ранее не загружался
Тип="Картинка";ID-альбома=102328;ID-картинки=202623;ПерегружатьКартинку=Ложь;Описание="Артикул: 2444|Наименование: "Casio E-200"|Цена: 1028.22 руб.|Дополнительные характеристики:|Цвет: Синий|Тип ремешка: Кожанный";Картинка="23482349827348923984...";
Тип="Картинка";ID-альбома=102355;ID-картинки=;ПерегружатьКартинку=Истина;Описание="Артикул: 4556|Наименование: "Nokia 1100"|Цена: 208.00 руб.|Дополнительные характеристики:|Цвет: Черный|Память: 128 мб|Экран: Цветной|Тип связи: GSM";Картинка="93694232442323423426..."; // картинки в альбоме еще нет
Тип="Картинка";ID-альбома=102333;ID-картинки=358612;ПерегружатьКартинку=Ложь;Описание="Артикул: Т2331|Наименование: "Asus N50"|Цена: 10220.00 руб.|Дополнительные характеристики:|Цвет: Черный|Жесткий диск: 120 Гб";Картинка="99876221666799875244...";
Пример ответов:
ID-альбома=102355
ID-картинки=358612
ID-картинки=861423
Ошибка="04. Отсутствует альбом для загрузки картинки!"
Ошибка="05. Сервер не создает картинку!"