Skype4py скрипт для отправки сообщений в Skype из консоли Linux Ubuntu

Небольшая заметка на тему, как заставить Bash скрипты отправлять сообщения в Skype.

Для начала нужно скачать библиотеку Skype4py.

Распаковываем, заходим в папку и запускаем setup.py:

sudo python setup.py

Дальше нужно создать скрипт которым мы будем отправлять сообщения. Очень хорошо было бы ложить его в папку, которая входит в переменное окружение $PATH - это позволит вызывать скрипт из любого каталога системы без полного пути к нему.
Проверить $PATH можно так:

echo $PATH

Мне выдало вот такое:

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/java/jre1.7.0_15/bin

Желательно делать это с правами пользователя, под которым планируется использование скрипта.

Берем первую, попавшуюся под руки папку (/usr/local/sbin) и создаем в ней файл send_message.py:

#!/usr/bin/python
#
# This script allows to sent messages to skype
# using skype API for python
  import Skype4Py
  import sys
    client = Skype4Py.Skype()
    client.Attach()
    user = sys.argv[1]
    message = sys.argv[2]
    client.SendMessage(user, message)

Проблема этой схемы заключается в том, что Skype4Py работает с инстансом запущенного в системе приложения Skype и берет информацию из него. Подключение осуществляется банальной функцией client.Attach. Если в системе запущено несколько приложений Skype, тогда client.Attach присоединится к тому, которое было запущено последним.

Использование:

./send_message.py contact_user.Handle "message"

Получение имени под которым Вы залогинены в Skype (можно использовать для определение приложения Skype, с которым работает Skype4Py):

python -c 'import Skype4Py; client = Skype4Py.Skype(); client.Attach(); print client.CurrentUser.FullName, "(", client.CurrentUser.Handle, ")"'

Отображение списка контактов:

python -c 'import Skype4Py; client = Skype4Py.Skype(); client.Attach();
for user in client.Friends: print user.Handle, "(", user.FullName, ")";'