Яндекс.Фотки возвращаются

Чуть меньше года назад я уже писал про самопальные скрипты на Питоне для работы с фотохостингом Яндекс.Фотки. Пишу вновь, на этот раз о второй их версии. Если вы не знаете, где и как хранить свои фоточки в Интернете, да при этом пользуете Линукс, прошу под кат.

Разрешите представить плод семи недель очень неспешной разработки: yandex.fotki.2. Как водится, весь код был выброшен и написан заново. В старой версии встречались весьма замечательные и одновременно пугающие вещи: свой велосипед использовался для логирования вместо logging.getLogger, коллекции наследовались от отдельных элементов, XML собирался в магическом XmlTool.

С тех времен мой навык слегка подрос, и вот свет увидела библиотека второй версии. Абстракции стали логичнее, транспортный уровень теперь не переплетается с предметным, ну и логирование выглядит человечнее. В новой версии есть чуть-чуть поддержки FUSE. Кроме того, Фотки с недавнего времени умеют OAuth вместо старого проприетарного алгоритма аутентификации, поэтому пришлось соорудить еще один небольшой велосипед.

FUSE — это помощник для создания виртуальных файловых систем. Его силами можно представить практически что угодно в виде директорий и файлов, вот такой он супермен. Да можно хоть в ящике с носками навигацию сделать (в сочетании с правильным аппаратным решением, разумеется). Так, например, разные умельцы наделали более четырех десятков файловых систем.

Чтобы опробовать новую версию, выполните несколько простых шагов:

  1. Установите Linux.
  2. Заведите аккаунт на Яндекс.Фотках.
  3. Установите биндинг FUSE для Питона: aptitude install python-fuse (способ зависит от вашего дистрибутива).
  4. Запустите скрипт src/run_first.py. Он предложит вам перейти по ссылке, где вам нужно будет разрешить программе доступ к вашему аккаунту. Разрешите доступ и запомните токен, который вам там дадут.
  5. Создайте файл src/settings_local.py и поместите в него полученный на предыдущем шаге токен: TOKEN = ‘ваш токен’.
  6. Еще раз запустите src/run_first.py. Если все получилось, вы увидите короткую информацию о вашем аккаунте.

Готово, теперь можно примонтировать аккаунт в директорию. Запустите src/mount путь_к_директории. Внутри директории альбомы будут представлены поддиректориями, а фотографии — файлами.

По умолчанию для пущей безопасности удаление альбомов и фотографий запрещено, однако его можно разрешить с помощью соответствующей опции монтирования. Смотрите src/mount —help для подробной информации.

Где-то рядом с местом, откуда монтировали, вы увидите лог-файл filesystem.log. Если посыпятся ошибки I/O, можно заглянуть в лог и попытаться понять, что произошло.

В итоге должно получиться примерно такое:

Список альбомов в локальной директории.
Список фотографий в альбоме.
Просмотр фотографии, фактически отсутствующей на локальном диске.

Традиционно буду рад любым отзывам и пожеланиям.

Яндекс.Фотки возвращаются: 1 комментарий

Добавить комментарий

Ваш e-mail не будет опубликован.

Поставьте галочки правильно (как бы защита от спама):

Я бот

Я не бот