Тёрка в тагах


Друзья

Его(6) Общие(0) Хотят дружить(0)


  • Bordja

  • steinburzum

  • SugarFree

  • true

  • Vatya

  • XYPMA

Большая Тёрка / Мысли / Личная лента 13407 /


13407

Ход конём или Победа будет за нами!

jabber, Linux, icq 

Т.к. демарши со стороны AOL и ICQ продолжаются, и нормально пользоваться аськой становится невозможно, я уже обосновался в jabber. Однако, достаточно много контактов по прежнему пользуются ICQ и с ними нужно как-то поддерживать связь. На идею меня натолкнула информация о том, что все неприятности с ICQ имеют выраженный географический характер, попросту говоря, отключения происходят только для адресов на территории бывшего СССР, в то время, как например, в Германии люди спокойно пользуются теми же неофициальными клиентами без каких-либо проблем.

И так, я действовал следующим образом: Выбрал из списка сервер с ICQ-транспортом и находящийся на достаточном удалении от подверженной ударам территории.Подключил этот транспорт к своему jabber-аккаунту (на российском сервере), тут можно поступить по-разному: можно регистрировать аккаунт на сервере, где находится транспорт, а можно этого не делать и подключить транспорт к существующему jabber-аккаунту.

Дальше в случае с транспортом PyICQt (как было у меня) в ростер (контакт-лист) jabber'а "прилетают" ICQ-контакты с сервера, но не сортированные по группам и иногда без указания ников. В случае с транспортом JIT все контакты придётся добавлять самостоятельно. Так или иначе, но с контактами надо что-то делать, а при достаточном их количестве делать это что-то руками совсем не хочется. Решение принято: нужно искать способы автоматизации этой процедуры!

Первым делом я скачал Менеджер контактов QIP, эта программа позволяет редактировать контакт-лист ICQ на сервере и сохранять его в файл, у меня в linux-системе она прекрасно работала под эмулятором Wine. Для тех, кто паталогически не переваривает QIP и всё что с ним связано, есть ещё вариант, но этой программой я не пользовался, потому ничего про неё не скажу.

Первым делом я удалил контакты из игнор-списка (они ведь тоже в серверном листе, а значит окажутся у меня в контак-листе) и удалил контакты из списка "не в списке".

После чего сохранил контакт-лист в виде файла .clb, вообще-то сохранить копию листа перед началом всех изменений тоже будет не лишним, а редактирование серверного контакт-листа теперь я бы поставил на первое место (т.е., до подключения транспорта). Что такое clb формат можно прочитать здесь. Далее, я перекодировал сохранённый лист из кодировки windows-1251 в utf-8 (она у меня системная):

$  cat ICQ-list.clb | iconv -f cp1251 -t utf8 > ICQ-list-utf8.clb

Я все операции произвожу в linux, в windows перекодировку можно выполнить текстовым редактором с функцией перекодировки, если конечно перекодировка вообще нужна (загляните в .clb файл, читаются ли там русские имена и названия групп?) Далее я воспользовался самописным скриптом для преобразования clb-файла в список для внесения контактов в jabber-ростер:

$  ./list.sh > jabber-list.txt

вот сам скрипт:

list.sh
---8<---------------
#!/bin/bash

# clb-файл с ICQ контактами
file="ICQ-list-utf8.clb"

# адрес ICQ-транспорта
# обычно: icq.<адрес_сервера>
transport="icq.jabber-server.net"

# подписка для контакта в Jabber-ростере
# возможные значения: none, from, to, both
subscibe="both"

################

while read line
do

icq_group=`echo $line | cut -d";" -f1`
icq_uin=`echo $line | cut -d";" -f2`
icq_nickname=`echo $line | cut -d";" -f3`

echo "+,$icq_uin@$transport,$icq_nickname,$subscibe,$icq_group"

done < $file
---8<---------------

Эту же операцию можно сделать через веб-форму на сайте jabber.ru, там же есть и обратный конвертор формата. Теперь копируем то, что у нас получилось и вставляем в веб-форму здесь или здесь (сайт разработчиков этой полезной штуковины), указываем свой jid (Jabber-id) и пароль, и контакты отсортированные по группам добавляются в ростер!

Ну вот и всё, можно подключаться к jabber и включать ICQ-транспорт! Что самое замечательное, сервер ICQ теперь считает, что я нахожусь в Европе :)

PS: На работу ICQ с обычным ICQ-клиентом всё проделанное никак не влияет.