20070629

Как перенести адресную книгу GMail (Outlook CSV) в Claws Mail (Sylpheed)

Разбирать, читать и хранить почту мне нравится в почтовой прораммке Claws Mail («Челюсти», ранее известной как Sylpheed Claws). Там у меня собирается почта и с личных ящиков, и с рабочих, и nntp-конференции на GMANE... Всё удобно, архив почты всегда под рукой, даже в оффлайн... Однако личную почту иногда я читаю и через веб-интерфейс GMail.

Недавно же заметил, что часть адресов, которые имеются у меня в адресной книге GMail, отсутствуют в адресной книге почтового клиента, и иногда это бывает неудобно. Вот я и задумал, адресную книгу GMail перенести себе в Claws Mail. Далее я опишу, как это сделал.

Итак, GMail может экспортировать адресную книгу в двух вариантах:
  • CSV для переноса в другую учётную запись GMail
  • и CSV формата Microsoft Outlook


Я выбрал последний. Получил файл, в котором адреса хранятся примерно так:
Имя Фамилия,email@address,,,,,,
по одному на строчку, в кодировке CP1251.

При этом Claws может импортировать адресные книги в следующих форматах:
  • LDIF
  • Адресная книга mutt
  • Адресная книга pine


Всё. Писать конвертер CSV2LDIF мне было лень. Методом тыка установил, что под адресной книгой mutt подразумевается файл .muttrc, в котором есть записи вида:
alias shortname email@address (Имя Фамилия)

Ну вот, собственно, и всё, сохранённый gmail.csv переводится в такой формат следующей командой:
$ cat gmail.csv | konwert cp1251-utf8 | sed '1d' | awk 'FS="," { print "alias",$2,$2,"("$1")" ; }' | sed 's/@[^ @]//' > gmail.mutt

Здесь я конвертировал (konwert cp1251-utf8) файл из кодировки CP1251 в UTF8, поскольку пользуюсь везде ru_RU.UTF-8. Это можно было сделать также с помощью iconv -f CP1251 -t UTF8. команда sed '1d' отрезала первую строчку с названиями полей, awk обработал разделённые запятыми поля и напечатал их в нужном порядке, e-mail дважды, а последний вызов sed сделал муттовские псевдонимы вида userxxx из e-mail аресов вида userxxx@server.

Всё, полученный файл gmail.mutt нормально импортируется в Claws Mail.

Единственное замечание: были повреждены все акценты над латинскими буквами, поскольку в однобайтной кодировке CP1251 они не представимы... На моё счастье, таких имён в моей адресной книге оказалось немного. Ну и разные комментарии к адресам я тоже проигнорировал ;)

Дополнение: нашёл набор скриптов для конвертации почтовых архивов и адресных книг в формат Claws, claws mail tools, который также доступен в виде отдельного пакета claws-mail-tools в Debian.

20070626

Загрузка фотографий на Picasaweb

Есть у гугла такой сервис для выкладывания фотографий: PicasaWeb. Довольно удобный. Бесплатно предоставляется 1 гигабайт места. Можно докупить и больше. Красивый и удобный веб-интерфейс. Есть возможность иметь скрытые альбомы.

Пользователям Windows загружать туда фотографии просто: для загрузки можно использовать программку Picasa. Однако версия Picasa для Linux, во-первых, не работает с русскими буквами, а во-вторых, не умеет загружать фотографии на Picasaweb.

Что же делать пользователям Linux? Добавлять фотографии по одной через веб-интерфейс? Медленно и неудобно. Есть альтернативный каталогизатор фотографий F-Spot, который умеет также и экспортировать выбранные фотографии на Picasaweb.

Однако мне F-Spot не нравится. Помимо того, что он тянет за собой кучу зависимостей (mono), он ещё и медленно работает. Функции редактирования его недостаточны и неудобны (в отличие от функций редактирования в Picasa). Система меток тоже не очень удобна. Самое главное, текущая версия f-spot 0.3.0 из Debian testing загрузить фотографии на Picasaweb не смогла. Да, уже есть f-spot 0.3.5, но он пока в unstable и тащить все его зависимости только ради загрузки фотографий на picasaweb не хочется.

На этих выходных решил я погуглить, что же можно сделать, и нашёл: как использовать маленький скрипт для загрузки фото на picasaweb.

Для работы скрипта потребуется:
  • библиотека python-elementtree, есть в репозитории Debian, у меня всё работает с версией python-elementtree 1.2.6-10.
  • библиотека gdata-python-client для доступа к службам Google. В Debian есть пакет python-gdata, но на данный момент его версия в testing и unstable 1.0, и с ней скрипт не работает. С версией 1.0.4 скрипт работает нормально. Для установки библиотеки необходимо распаковать архив с исходным кодом библиотеки и выполнить примерно такую комманду:
    ./setup.py install --prefix=/usr/local
  • сам скрипт upload2picasa.py.


При первом запуске скрипта он спросит имя пользователя и пароль, и сохранит их в файле ~/.google_auth. Поскольку пароль в файле хранится открытым текстом, поправьте права доступа к файлу таким образом:
$ chmod go-rwx ~/.google_auth

Теперь, чтобы загрузить фотографии на picasaweb и создать новый альбом достаточно выполнить такую команду:
$ upload2picasa.py -n НазваниеНовогоАльбома *.jpg
или, чтобы загрузить в уже существующий альбом:
$ upload2picasa.py НазваниеАльбома *.jpg

Созданный альбом будет закрытый. Изменить настройки альбома и ввести его описание можно через веб-интерфейс. Чтобы сразу создать открытый альбом (доступный всем), можно использовать ключ -p в командной строке.

Посмотреть список альбомов можно с помощью ключика -l
$ upload2picasa.py -l

Альтернативные способы:

  • скрипт picasa_upload.py, предшественник и «предок» upload2picasa.py, очень простой; в последний раз, когда я его попробовал (25 июня 2007), он создавал исключительно открытые альбомы и названия с русскими буквами переводил в кракозябы;
  • расширение IceWeasel/Firefox fireuploader, которое, вроде бы умеет корректно работать с прокси-серверами, я его не пробовал;
  • F-Spot (видимо, версии 0.3.5 и старше)


См. также: