like-all 21.02.2013 10:06

Tips & tricksНекоторые полезности для mcabber.

Добрый день, господа и дамы.

Сегодня я хочу поговорить о некоторых полезных вещах для моего любимого мессенджера.



Итак, первое:
Поскольку я работаю в довольно крупной компании, имеется необходимость связываться с множеством сотрудников посредством jabber. До сего момента я просто добавлял их в ростер, но по группам не растаскивал и не переименовывал, ибо лень. Настал день, когда на это безобразие смотреть стало невозможно, и я решил с этим покончить раз и навсегда. Поскольку компания крупная, в ней есть не только обширный штат сотрудников, но и некие удобства для взаимодействия с этим штатом, в частности генератор vcard для департаментов. Вспомнив про отличную "скриптуемость" mcabber, я, недолго думая, решил написать парсер vcf и путём нехитрых действий через fifo выполнить импорт всего департамента в ростер:

 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#/usr/bin/env bash

vcard=$1
fifofile=$2

sed ':a;N;$!ba;s/\n=//g' $vcard | grep "FN;" | cut -f 2 -d ':' | qprint -d > /tmp/vcard.names
grep "JABBER;TYPE=WORK" $vcard | cut -f 2 -d ':' > /tmp/vcard.jids
sed ':a;N;$!ba;s/\n=//g' $vcard | grep "ORG;" | cut -f 2 -d ":" | qprint -d > /tmp/vcard.groups

count=`cat /tmp/vcard.jids | wc -l`

for i in `seq 1 $count`; do
echo "/add "`sed -n $i'p' /tmp/vcard.jids` > $fifofile
sleep 0.5
echo "/roster search "`sed -n $i'p' /tmp/vcard.jids` > $fifofile
sleep 0.5
echo "/rename "`sed -n $i'p' /tmp/vcard.names` > $fifofile
sleep 0.5
echo "/move "`sed -n $i'p' /tmp/vcard.groups` > $fifofile
sleep 0.5
done



Первый аргумент - vcf-файл, второй - fifo mcabber'a. Как мы видим, всё просто, а результатом стали чистота и порядок в ростере: каждый контакт был назван своим именем и находился в группе своего отдела. Отсюда вывод: mcabber - наилучший корпоративный jabber-клиент. Благодарю aesdana за помощь в реализации.

На второе сегодня набор субконфигов. После того, как я открыл для себя команду source в mcabber, у меня буквально открылось второе дыхание. Я осознал, что аккаунтонезависимые настройки можно вынести в совершенно различные файлы и использовать их совместно в разных конфигах. Сейчас в моём репозитории есть субконфиги горячих клавиш, алиасов, цветов и общих настроек, позже добавлю ещё что-нибудь аккаунтонезависимое.

Ссылка на репозиторий: https://github.com/Like-all/mcabber-common-configs

Надеюсь, изложенные материалы были вам полезны. Спасибо за внимание.


Тэги: config mcabber vcard костыль
+ 3 -
Похожие Поделиться

hidden 21.02.2013 11:18 #
А из LDAP имена-фамилии повыдергать можно?
Или расскажите подробнее, что за генерилка .vcf
like-all 21.02.2013 18:28 #
В phpldapadmin вроде есть возможность экспортировать vcard. Что у нас в компании применяется - сказать не могу, ибо NDA.
like-all 21.02.2013 18:29 #
Но вопрос однозначно хороший. Повод поставить slapd и поиграться с импортом-экспортом.