Понадобилось мне тут пообщаться с Яндекс.Фотками на программном уровне. API есть, описание есть, но реализаций я как-то не нашел. Даже сам Яндекс, большой любитель Python этого не предоставляет.
Так что за недельку с хвостиком неспешно набросал 90% того, что описано у них в
документации.
В итоге решил выложить это чудо, а то вдруг кому-то еще понадобится, а интернет молчит.
Протокол представляет собой REST+Atom, так что ничего глобально сложного нет, кроме одной детальки. А деталька — это авторизация и шифрование паролей RSA ключем. Алгоритм у Яндекса свой, хитрый и написан на C++. Легко компилируется на Windows и Linux и работает с консоли. Но такой способе немного не трушный, так что это дело было быстро и безболезненно переписано в библиотечку на Python. Как оказалось, книжки не врут, и переделать код на C/C++ в бинарный модуль Python намного проще чем сделать это для Perl и PHP.
Так что порядок таков:
- Хватаем библиотеку от Яндекса
- Кидаем туда же файлы для компилирования модуля для Python
- Компилируем (python setup.py build)
- Получаем .pyd-файл, которые и есть искомый модуль. На всякий случай, то что получилось у меня: Win32, ActiveState Python 2.5.4; Linux x86_64, Python 2.5.2
- Файл размещаем там, где Python его сможет найти (python setup.py install)