Archive for January, 2009

Импорт ростера с одного контакта на другой

Перевожу старые майл (lizendir@gmail.com) и жабер (lorien@jabber.ru) адреса на единый lorien@pyweb.ru, который работает поверх служб google.

Встал вопрос импорта ростера со старого аккаунта. В начале я решил попробовать готовое решение Однако, на моей системе одна из перловых зависимостей не установилась и я увидел шанс набросать велосипедик, что с радость и сделал ;-) Так родилась утилита xmpp_roster

Использовать так:

lorien@lorien:/web/xmpp-tools$ ./xmpp_roster.py 
Usage:
    For export run: %s dump jid password > dump_file
    For import run: cat dump_file | ./xmpp_roster.py import jid password
    For both run: ./xmpp_roster.py dump jid password | ./xmpp_roster.py import jid password

UPD: Выяснилась интересная особенность сервера jabber.ru, возможно, и других серверов. При превышении некоторого кол-ва запросов авторизации сервер начинает ругаться 500-ой ошибкой: Over maximum subscriptions per day. UPD2: Поправка. Это не бага jabber.ru — это бага гугли. Ниже в комментах подробней чуток написал.

Продолжаю фантанировать шнягами

Ещё две шняги:

  • hg.pydev.ru/feedzilla — агрегатор фидов. Выводит несколько фидов одним потоком. Пример сайта на базе агрегатора можно тут посмотреть http://feedzilla.pydev.ru Оформлено в виде одного приложения. Вернее есть зависимость от приложения common, идущего в поставке. Потом перенесу его внутрь feedzilla приложения. Можно использовать как пример джанго-софта или допилить и встроить в собственный проект. Да, я знаю, что есть feedjack, просто люблю велосипеды :-)
  • hg.pydev.ru/django-spawn — shell скрипт, которым я управляю django-демонами. Достаточно удобная штука. Решил тоже положить в публичную репу, чтобы при случае ссылку давать.

Опенсорсные шняги

Парочка шняг:

  • hg.pydev.ru/dumpz — исходники новой версии сайта dumpz.org Сначала думал не открывать порефакторенный код, а потом решил, что это банальная иррациональная жаба, да и нету там в коде ничего этакого :-)

  • hg.pydev.ru/django-auth-openid — год назад (кажется) я написал велосипедное django-приложение для авторизации по openid. Написал я его потому что мне решительно не понравился код внутри популярного application для openid. Затем год оно лежало полумёртвое, а недавно понадобилось по работе делать openid-авторизацию в одном из проектов, ну, тут то я про старую наработку и вспомнил. Получилось убить двух зайцев: сделать требуемую функциональность и заодно на живом проекте оттестировать библиотеку. Приложение толком не проверено на встраиваемость в другие проекты. Пишу о нём т.к. кому-то может оказаться полезным, в крайнем случае напильником придётся подпилить чуть-чуть.

Особенности приложения:

  • можно задавать свою форму для завершения openid-регистрации
  • поддержка SREG и AX расширений openid
  • возможность задавать через настройки какие поля требуется получить через sreg/ax
  • возможность завать модель создаваемого пользователя (в некоторых проектах используется наследник от стандартного auth.models.User)
  • возможность включать через настройки логирование процесса обмена информацией с openid-сервером
  • ещё вроде как есть вьюшки для добавления, редактирования, удаления openid-акков привязанных к сайт-аккаунту, но это толком не причёсано т.к. в текущем проекте не используется.