понедельник, 10 апреля 2006 г.

Перенос ICQ контактов из Miranda в Google mail (google talk).

Перенос контактов осуществляется в три этапа.
Первый этап: контакты экспортируются из Miranda с использованием плагина Database Editor++
Второй этап: контакты конфертируются в формат google mail
Третий этап: контакты импортируются в google mail

Скачиваем плагина Database Editor++. Распаковываем архив и копируем файл "dbeditorpp.dll" в директорию Plugins миранды (по умолчанию "C:\Program Files\Miranda IM\Plugins"). Перезапускаем миранду.

В главном меню миранды появляется пункт "Database Editor++"



Запускаем "Database Editor++".



Выбираем в меню Export -> All Contacts. Сохраняем контакты в файл.


Для конвертации контактов в формат gmail я написал простенький скрипт на bash. Можно написать на чем-нибудь еще, но больше под рукой у меня ничего нет :). Для использования bash под Windows я использую cygwin. Инсталлятор для cygwin (файл setup.exe) можно скачать тут. Примечание: инсталлятор скачивает необходимые пакеты с интернета.

---------------------------------------------------------------- скрипт
#!/bin/bash

JABBER_GATEWAY="jit-icq.jabber.anywise.com"

IN_FILE=mir4.ini
TMP_FILE=mir4.contacts
OUT_FILE=mir4.gmail.csv

# tr is used to convert group name separator \ to / because of some problems with \ during reading
grep -E "(CONTACT\:)|(UIN=d)|(Nick=s)|(FirstName=s)|(LastName=s)|(Group=s)|(About=s)" ${IN_FILE} | tr "\\" "/" >${TMP_FILE}

echo "CONTACT\:" >> ${TMP_FILE}

echo "Name,E-mail,Notes,Section 1 - Description,Section 1 - Email,Section 1 - IM" > ${OUT_FILE}

while read line
do

# echo -e ">>$line"
if ( echo -e $line | grep --quiet "CONTACT\:" )
then
if [[ -n $UIN ]]
then
FULL_CONTACT=$CONTACT

if ( echo -e $FULL_CONTACT | grep -i -v --quiet "$Nick" )
then
FULL_CONTACT="$FULL_CONTACT $Nick"
fi

if ( echo -e $FULL_CONTACT | grep -i -v --quiet "$FirstName" )
then
FULL_CONTACT="$FULL_CONTACT $FirstName"
fi

if ( echo -e $FULL_CONTACT | grep -i -v --quiet "$LastName" )
then
FULL_CONTACT="$FULL_CONTACT $LastName"
fi

echo "\"$Group - $FULL_CONTACT - ICQ# $UIN\",,\"$About\",ICQ,${UIN}@${JABBER_GATEWAY},ICQ# $UIN"
fi

CONTACT=`echo -e $line | sed "s/CONTACT\: //" | sed "s/\*.*//"`
UIN=""
Nick=""
FirstName=""
LastName=""
Group=""
About=""
elif ( echo -e $line | grep --quiet "UIN=d" )
then
UIN=`echo -e $line | sed "s/UIN=d//"`
elif ( echo -e $line | grep --quiet "Nick=s" )
then
Nick=`echo -e $line | sed "s/Nick=s//"`
elif ( echo -e $line | grep --quiet "FirstName=s" )
then
FirstName=`echo -e $line | sed "s/FirstName=s//"`
elif ( echo -e $line | grep --quiet "LastName=s" )
then
LastName=`echo -e $line | sed "s/LastName=s//"`
elif ( echo -e $line | grep --quiet "Group=s" )
then
Group=`echo -e $line | sed "s/Group=s//"`
elif ( echo -e $line | grep --quiet "About=s" )
then
About=`echo -e $line | sed "s/About=s//"`
fi


done <${TMP_FILE} >>${OUT_FILE}

---------------------------------------------------------------- конец скрипта


После этого получившийся на выходе файл
(в нашем случае это "mir4.gmail.csv") необходимо экспортировать в gmail.


Доступ к ICQ, AOL, MSN, Yahoo из google talk

Недавно компания google открыла доступ к открытым jabber серверам для своего клиента google talk. Что это значит? Это значит, что появилась возможность использовать ICQ, MSN и другие протоколы через клиента google talk или любого другого jabber клиента.


Как это возможно? Jabber протокол поддерживает т.н. серверные агенты. Существуют агенты для использования других протоколов - MSN, ICQ, Yahoo. Для использования ICQ в google talk вам надо просто зарегистрироваться в агенте ICQ на каком-нибудь jabber сервере, где он установлен и указать свой номер ICQ и пароль.


Зачем это нужно? Есть несколько преимуществ данного подхода:
  1. Всю контактную информацию можно хранить в одном месте. (e-mail, ICQ#, MSN# теперь привязаны к одному контакту). Поскольку контакты хранятся на сервере, то при любом переезде или в путешествии они всегода будут под рукой.
  2. google talk умеет сохраняет чаты на сервере. теперь быстрый поиск по чатам также будет под рукой
  3. у google talk есть html версия IM клиента. Надо просто зайти на сервер gmail.com под соим аккаунтом. В настоящее время IM клиент реализован только для английской версии интерфейса, поэтому в настройках надо выбрать язык "English (US)"
  4. Поскольку протокол jabber поддерживает несколько одновременных клиентов, то появляется возможность использовать один номер ICQ несколькими клиентами одновременно - например дома и на работе.
  5. jabber - открытый протокол. Поэтому для него существует гораздо бОльшее число клиентов, чем для проприетарных ICQ, MSN. Например java jabber клиента, можно использовать на любом устройстве, с JVM - например на сотовом телефоне или PDA. Полный список jabber клиентов смотри на сервере jabber.org.

Естественно есть и недостатки. Собственно достоинства являются одновременно и недостатками - некоторые люди не доверяют публичным серверам и не хотят хранить на них какую-либо персональную информацию. История, которая хранится на сервере, будет недоступна если недоступен сервер.


Теперь как это настроить.

Для настройки доступа к ICQ, MSN и Yahoo вам нужен jabber-клиент, который поддерживает регистрацию агентов (например Miranda - www.miranda-im.org или Psi - www.psi-im.org).


Расскажу как настроить поддержку ICQ для миранды.
1) Cкачтваем миранду. Кроме главного сайта (www.miranda-im.org) миранду можно скачать на сайте sourceforge.net - хостере многих открытых проектов - по адресу http://sourceforge.net/project/showfiles.php?group_id=94142)

2) Скачиваем OpenSSL. Дистрибутив OpenSSL для Windows можно скачать тут

3) Ставим миранду и OpenSSL

4) Настраиваем миранду для доступа к серверу google talk. Подробно это описано на сайте google talk

Заходим в опции, выбираем параметры jabber
























Далее в параметрах протокола jabber указываем следующее:





























Username: в данном поле необходимо указать ваше имя gmail (без @gmail.com)
Resource: идентификатор вашего IM клиента. Нужен когда подключено несколько клиентов одновременно
Login server: gmail.com
Use SSL - включить
Manually specify connection host - включить
  • Host: talk.google.com
  • Port: 5223

Теперь надо нажать Ok и выйти в онлайн:





После этого заходим в меню -> Jabber -> Agents





В появившемся окне



необходимо в поле "Jabber server" ввести адрес какого-либо jabber сервера, у которого есть соответствующие агенты и нажать кнопку browse.

Я использую сервер jabber.anywise.com и агента jit-icq.jabber.anywise.com. Полный список открытых jabber серверов можно найти на сервере jabber.org. Смотри линку Resources - Public Servers. PS: Раньше на сервере jabber.org отображался список серверов со списком поддерживаемых агентов. Если у кого этот список сохранился, пришлите пожалуйста для информации.

Вводим имя jabber сервера, жмем кнопку "Browse", выбираем агента, жмем кнопку "Register...".

После этого вводим свой ICQ номер и пароль в появившееся окно ввода:



Жмем кнопку "Register". Зарегистрированный агент должен появиться в списке "Registered jabber transports".

Закрываем окно агентов. Теперь можно использовать ICQ через google talk.


Но есть два маленьких нюанса.
1) Пользователи ICQ не появляются автоматом в списке контактов. Как перенести пользователей ICQ из миранды в список контактов google talk написано тут.
2) Я использую сервер jabber.anywise.com для доступа в ICQ сеть через google talk. Но есть некоторые ICQ клиенты, связь с которыми невозможна через этот сервер по причине неправильного перекодирования. Для того, чтобы решить эту проблему я завел еще один номер ICQ и использую его через сервер jabber.snc.ru. jit плагин этого сервера поддерживает правильную перекодировку русских символов для не unicode ICQ клиентов.


На сервере jabber.ru есть очень интересный агент mrim.jabber.ru. Он оповещает о приходе новой почты на сервер mail.ru на ваш аккаунт и показывает письмо. Долго я им не пользовался из-за того, что мне на mail.ru шлют очень много спама, поэтому не могу сказать умеет ли он отсылать почту.