DMZ
19:48 17-10-2009 Python и Яндекс.Фотки
Понадобилось мне тут пообщаться с Яндекс.Фотками на программном уровне. API есть, описание есть, но реализаций я как-то не нашел. Даже сам Яндекс, большой любитель Python этого не предоставляет.

Так что за недельку с хвостиком неспешно набросал 90% того, что описано у них в документации.

В итоге решил выложить это чудо, а то вдруг кому-то еще понадобится, а интернет молчит.

Протокол представляет собой REST+Atom, так что ничего глобально сложного нет, кроме одной детальки. А деталька — это авторизация и шифрование паролей RSA ключем. Алгоритм у Яндекса свой, хитрый и написан на C++. Легко компилируется на Windows и Linux и работает с консоли. Но такой способе немного не трушный, так что это дело было быстро и безболезненно переписано в библиотечку на Python. Как оказалось, книжки не врут, и переделать код на C/C++ в бинарный модуль Python намного проще чем сделать это для Perl и PHP.

Так что порядок таков:

  1. Хватаем библиотеку от Яндекса
  2. Кидаем туда же файлы для компилирования модуля для Python
  3. Компилируем (python setup.py build)
  4. Получаем .pyd-файл, которые и есть искомый модуль. На всякий случай, то что получилось у меня: Win32, ActiveState Python 2.5.4; Linux x86_64, Python 2.5.2
  5. Файл размещаем там, где Python его сможет найти (python setup.py install)
А потом уже можно играться с самим модулем для Яндекс.Фоток. Я комментарии кое-как написал, должно быть понятно.