A shelter from pigs on the wing
DMZ
дневник заведен 09-08-2004
постоянные читатели [32]
3 CaHuTaPa, 517design, Arde, Art`Is, aviabaza, BlackDrago, CyberJoe, DeadMorozz, Depeche Mode, DMZ, d_r, Ewige, glv12 Marla Zinger, goldenandy, Grimble, Hydralisk, Jude, Katrine Himitsu, Leave-me-alone, MISTIK, My3a, Nash, Nicholas Hawkwood, Pingvin, Riskoff, VorteX DrAgON, Wolfram, Букля_, достало, Муть, Рика, Эль
закладки:
цитатник:
дневник:
местожительство:
Красноярск, Россия, Сибирь
интересы [24]
программирование, C++, Depeche Mode, Star Wars, perl, DVD, JavaScript, FAR, lost, 80е, Half Life 2, долго спать, Miami Vice, веб-роботы, кентаврицы
антиресы [9]
грибы, грейпфрутовый сок, мёртвые люди, табличка обед, долго спать
Суббота, 17 Октября 2009 г.
19:48 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)
А потом уже можно играться с самим модулем для Яндекс.Фоток. Я комментарии кое-как написал, должно быть понятно.

Закрыть