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, ")";'