- PVSM.RU - https://www.pvsm.ru -
Основное средство общения в нашей компании — это шашлыки чат Skype. Статус «в сети» означает присутствие на рабочем месте. Иногда ждёшь кого-то, начальству не напишешь «зайди плиз срочно» — в общем, уведомление о появлении в сети определённого человека было бы полезно.
В Skype для Linux [1] нет такой «галочки» для отдельных контактов (думаю, что и пользователи других ОС с этим знакомы). Зато есть неоспоримое преимущество — почти безграничные возможности командной строки:
Один из примеров замены стандартных уведомлений от компании Microsoft на что-то более гномовское (при помощи библиотеки libnotify) есть [2] на хабре.
Наша задача — усовершенствовать эти уведомления. Мы хотим фильтровать контакты до обращения к libnotify. Настройки должны быть достаточно удобными, чтобы не запоминать глупые skype-идентификаторы и не беспокоиться о потере настроек при переименовании контакта в клиенте.
Чтобы получить те имена, которые мы видим в Skype-клиенте, на помощь приходит [3] Valery Yundin (Vayun [4]) и его скрипт [5], который достаёт всё необходимое из нескольких файлов, расположенных, скорее всего, по адресу: ~/.Skype/ваш-skype-id/user*.dbb
Данные о контактах, полученные из этого скрипта, отсортируем по имени и сохраним в файл filter_notify.conf
. Пусть по умолчанию все контакты будут закомментированы символом решётки. Тогда для добавления контакта в «избранное» достаточно будет его раскомментировать.
Кстати, наш скрипт должен обновлять контакт-лист, но сохранять имеющиеся настройки контактов: какие из контактов были закомментированы на момент запуска скрипта. Поэтому сначала прочитаем файл filter_notify.conf
, если он уже есть, и сохраним настройки.
Всё абсолютно тривиально, поэтому вот ссылка на готовый код reload_contacts.py [6] и файл конфигурации settings.py [7].
А этот скрипт мы будем вызывать из скайпа (см. скриншот выше), передавая Skype-идентификатор контакта (%sskype) и имя, отображаемое в клиенте (%sname). Скрипт проверяет, нужно ли уведомлять об этом человеке. Если да, то выполняет notify-send
.
Если контакт не найден в нашем списке, то имеет смысл обновить контакт-лист, запустив вышеупомянутый reload_contacts.py
.
В итоге, тоже ничего сложного: filter_notify.py [8].
chmod +x reload_contacts.py filter_notify.py
.Skype
— скрытая папка). Внутри папки .Skype
будет папка с профилем. Прописать путь к этой папке в settings.py [7], параметр SKYPE_FOLDER
.filter_notify.conf
(по умолчанию я его положил в папку ~) — параметр CONTACTS_NOTIFY_LIST
.filter_notify.conf
создан (по адресу, указанном в CONTACTS_NOTIFY_LIST
) и содержит список Ваших контактов."%sskype" "%sname"
;
Готово! Теперь можно раскомментировать нужные контакты, чтобы уведомления о них (и только о них) отправлялись в notify-send
.
Благодаря «продвинутой» системе оповещений, Skype открыт для многочисленных улучшений: от ещё одного апгрейда [10] notify-send — до озвучки [11] входящих сообщений чата. Если у Вас есть другие интересные рецепты, предлагаю поделиться.
P.S. Спасибо НЛО за инвайт.
Автор: x256
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/linux/10489
Ссылки в тексте:
[1] Skype для Linux: http://www.skype.com/intl/ru/get-skype/on-your-computer/linux/
[2] есть: http://habrahabr.ru/post/78501/
[3] приходит: http://habrahabr.ru/post/129044/
[4] Vayun: http://habrahabr.ru/users/vayun/
[5] скрипт: https://github.com/Vayu/skypelog/blob/master/skypelog.py
[6] reload_contacts.py: http://pastebin.com/ecVspBMH
[7] settings.py: http://pastebin.com/BAZmh6Yn
[8] filter_notify.py: http://pastebin.com/nuuZw2Dg
[9] одним архивом: https://dl.dropbox.com/u/88329267/skypebox.tar.gz
[10] ещё одного апгрейда: http://habrahabr.ru/post/87471/
[11] озвучки: http://forum.ubuntu.ru/index.php?topic=157339.0
Нажмите здесь для печати.