Видео смотреть бесплатно

Смотреть 365 видео

Официальный сайт panajotov 24/7/365

Смотреть видео бесплатно

23.09.09 14:50 muhas

Жизнь в консолиПервое знакомство с mcabber

Ребята, надо уже как-то начинать неделю консольных программ, посему первый пост как и обещал о mcabber

MCabber - это текстовый Jabber-клиент поддерживающий SSL, PGP, историю, конференции и кучу XEP, но не поддерживающий регистрацию на сервере.
Для первого запуска mcabber нам понадобится создать файл конфигурации, а лучше скопировать файл примера (из исходников или из пакета)
1
2
3
4
5
mkdir ~/.mcabber
# обязательно меняем права на папку
сhmod 700 ~/.mcabber
# пример для archlinux
cp /usr/share/mcabber/example/mcabberrc ~/.mcabber/mcabberrc

Его можно не создавать, тогда придется вводить информацию о логине вручную, к тому же с помощью конфигурационного файла можно настроить mcabber на свой вкус (на то он и конфигурационный)

Первое что нам понадобится это прописать в конфигурационном файле ваш сервер, имя и пароль(можно не вводить), а так же по необходимости порт
1
2
3
4
5
set username = логин
set password = пароль
set server = сервер
set port = 5222
set nickname = ник_в_конференциях_по_уомлчанию

Для gtalk, к примеру, необходимо использовать опции ssl, а так же логин и сервер указывать вручную
1
2
3
4
5
set username = [email protected]
set server = talk.google.com

set ssl = 1
set ssl_verify=0


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

Всё рабочее пространство mcabber поделено на 4 области: слева ростер, с права окно сообщений, с самого низа строка ввода команд и несколько строк журнала событий прямо над ней. Некоторые из этих областей можно менять местами (опции set log_win_on_top и set roster_win_on_right)


Собственно всё управление сводится к набиванию команд в строку ввода, все команды начинаются со слеша (/[Tab] позволит вам с ними ознакомится). Но на многие команды уже назначены клавиши. Так как самое главное для jabber-клиента это писать и принимать сообщений, то с этого и начнём. PageUp/PageDown передвигают курсор по ростеру, а клавиша Enter закрывает/скрывает группу контактов либо когда курсор установлен на ней. Ну а если курсор установлен на контакте, то можно приступать к написанию ему сообщения или прочитать присланное.
Перемещение по самому окну сообщения сделано с помощью ^p (Ctrl-p) и ^n (Ctrl-n)

Команда /roster unread_next перемещает вас к следующему непрочитанному сообщению/событию, и по умолчанию этой команде назначена клавиша ^Q (Ctrl-Q)
А команда /room join адрес_конференции ник пароль соединит вас с конфернцией (ник c паролем к комнате указывать необязательно) и конференция появится в ростере как обычный контакт (с русскими адресами конференций как-то неудачно получилось)

Так же mcabber поддеживает хуки после некоторых действий. К примеру строки в конфиге
1
2
set hook-post-connect   = source ~/.mcabber/post-connect.rc
set hook-pre-disconnect = status message Сломал свой мозг!
показывает что после коннекта к серверу считывать команды mcabber (в конфиге все команды без слеша) из файла ~/.mcabber/post-connect.rc а перед отсоединением сменить статусное сообщение на Сломал свой мозг!

А теперь посмотрим как задовать хоткеи на команды и заодно научимся писать многострочные сообщения
Нажимаем нужный нам хоткей и в журнале событий (если такое сочетание не использовано) видем что-то вроде [13:53:28] Unknown key=MU1090 - MU1090 это Alt-n. Таким образом выбираем понравившиеся клавиши и записываем их в конфиг в виде
1
2
3
4
5
6
# Alt-m начать многострочное сообщение
bind M109 = msay toggle
# что бы и в русской раскладки работало, т.е. Alt-ь
bind MU1100 = msay toggle
# ну и по Alt-Enter отправляем сообщение (По-умолчанию работает Ctrl-d)
bind M13 = msay send
После знака равенства пишем команду (без слеша)

Дальнейшая работа с mcabber зависит только от наших желаний. Можно разукрасить mcabber под те цвета что радуют глаз (смотри set color_*), можно прикрутить любые уведомления (смотри set events*), выполнять можно создать свои команды и хоткеи, да много чего можно (даже бота сделать из mcabber можно).
К примеру что бы mcabber выглядел как на скриншоте
у меня в конфиге прописано
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

set log_win_height = 1
set roster_width=30
set log_win_on_top = 0
set roster_win_on_right = 1
set color_background   = default
set color_general      = default
set color_info         = default
set color_msgin        = 240
set color_msgout       = white
set color_msghl        = 237
set color_bgstatus     = 240
set color_status       = white
set color_roster       = default
set color_bgrostersel  = white
set color_rostersel    = brightdefault
set color_rosterselmsg = default
set color_rosternewmsg = brightdefault
(цвета указаны с учетом что терминал поддерживает их 256штук)

Из уведомлений у меня прикручен звук, панель dzen2 при новом посте(можно и osd и вообще что угодго - а управление им через именованный канал и возможность отправлять rawxml серверу позволяют превратить mcabber в бота) и сообщение о количестве написавших в screen, пример получения от mcabber количества сообщений здесь.

Так же mcabber снабжен неплохой системой помощи (переведенной на русский) - всего лишь вводим /help и нам расскажут как ей пользоваться.
Думаю для начала ознакомления этого хватит, так же настоятельно рекомендую посмотреть дефолтный конфиг и примеры дабы узнать побольше о возможностях mcabber (ну и man, естественно). Если что ещё об mcabber интересно, то спрашивайте - помогу чем смогу.

По материалам muhas.ru/?t=mcabber, т.е собственных же заметок =)

PS. в git проекта жизнь кипит, и часто вижу как жуйковцы пишут патчи


Теги:

Filgor 23.09.09 14:55 # +0
Хороший обзор :)
lwilis 23.09.09 16:17 # +0
muhas, а ты, случаем, не пробовал настроить event на конкретный контакт?
Мне это нужно, чтоб отличать сообщения из конференции от сообщений других контактов.
muhas 23.09.09 18:07 # +1
нет не пробывал, но судя по всему надо грипать по необходимому в файле комманд
Всё-таки я не зря советывал ознакомится с примером конфига
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# External command for events
# You can specify a script or process to be launched when an event occurs.
# Set 'events_ignore_active_window' to 1 if you don't want the script to
# be run for a message to the current active window (default: 0).
#
# If 'event_log_files' is set, a file is created and contains the body of
# the message (incoming messages only); the file name is the last parameter.
# If you enable this, you can specify the directory mcabber will use to
# create these messages with the 'event_log_dir' variable (default is the
# system temp dir, or MCABBERTMPDIR environment variable).  Please note
# that mcabber won't delete these files, it's your script's job.
#
# The command is called the following way:
#   $events_command MSG IN jabber@id [file] (when receiving a message)
#   $events_command MSG OUT jabber@id       (when sending a message)
#   $events_command MSG MUC room_id [file]  (when receiving a MUC message)
#   $events_command STATUS X jabber@id      (new buddy status is X)
#   $events_command UNREAD N                (number of unread buddy buffers)
# See sample script in contrib/ directory.
Denis 24.09.09 14:07 # +0
event'ы там устроены довольно противно. Например, вот такой скриптик работает:
1
2
3
4
5
6
7
8
#!/bin/sh

if [[ $2 == 'IN' ]] ; then
        SUCCESS_SOUND=/usr/share/sounds/wrap_success.wav
        zenity --notification --text='New Message' &
        aplay -q $SUCCESS_SOUND
fi
 


А если заменить zenity на notify-send — нет. Причем, если выполнять вручную, т.е. ~/.mcabber/eventcmd, то работает и notify-send, а в связке с mcabber — ни в какую.

В mcabberrc только раскомментировал строчку:

set events_command = ~/.mcabber/eventcmd


P.S. Скриптик находится в файле ~/.mcabber/eventcmd.
muhas 24.09.09 17:49 # +0
в контриб mnotify.py прекрасно работает
h0rr0rr_drag0n 23.09.09 21:42 # +1
Интересно, у вас получилось использовать statefile для получения количества непрочитанных сообщений?.
Я установил переменную statefile в ~/.mcabber/mcabber.state , создал соответствующий файл, но после перезапуска mcabber'a он удаляется О_О. Logging естественно включен.
muhas 24.09.09 09:21 # +1
получилось (тут как-раз описано как я вывел это в screen) - этого файла просто напросто не существует пока нету непрочитанных, посему в /dev/null хлам перенаправлять при проверке
cat ~/.mcabber/mcabber.state &>/dev/null

Лучшие блоги (все 54)
Топ пользователей Топ блогов
Топ пользователей Топ блогов
Элита (все 1149 из 85 городов)
Топ пользователей Топ блогов
В сети: Aesdana, fun, exelens, shidoh, Skylot

Новенькие: krayushka, krayushkin, khekkly, maestro, z0000
welinux.ru

Смотреть видео онлайн

Онлайн видео бесплатно


Смотреть русское с разговорами видео

Online video HD

Видео скачать на телефон

Русские фильмы бесплатно

Full HD video online

Смотреть видео онлайн

Смотреть HD видео бесплатно

School смотреть онлайн