Skype-Бот Для Развертывания Без Skype Api

Вы, вероятно, знакомы с использованием чат-ботов для управления делами.

Например, очень удобно начать сборку или верстку, просто написав сообщение одному из ваших чат-контактов.

Есть разные готовые боты для Скайпа, один из представителей Севабот .

Все они используют Skype API, который Microsoft собирается убить, поэтому все эти боты вскоре могут стать неработоспособными.

Но мне бы этого не хотелось — я их кое-где использую для запуска развертываний.



Как быть?

Все живые сегодня боты работают на стороне настольной версии Skype. Я организую все так же, но доступ к Скайпу через API у меня не будет. Чтобы дать односторонний сигнал к запуску чего-либо, можно обойтись только извлечением сообщений из Скайпа.

Skype хранит свои сообщения в базе данных sqlite3 в своем каталоге данных.

Я просто посижу в засаде.

   

import sys import signal from time import sleep import sqlite3 if len(sys.argv) != 3: sys.stderr.write("Usage: %s <path to skype `main.db` file> <watch interval in seconds>\n" % sys.argv[0]) sys.exit(1) def int_handler(signum, frame): sys.exit(0) signal.signal(signal.SIGINT, int_handler) dbfilename = sys.argv[1] interval = float(sys.argv[2]) conn = sqlite3.connect(dbfilename) c = conn.cursor() c.execute("select id from Messages where id = (select max(id) from Messages);") (last_msg_id,) = c.fetchone() while True: sleep(interval) for id, body in c.execute("select id, body_xml from Messages where id > ?;", (last_msg_id,)): last_msg_id = max(id, last_msg_id) print body

Запустим:

.

/skype-watch.py ~/.

Skype/skype_login/main.db 1

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

Изменив запрос, можно добавить фильтрацию по отправителю, изменив код обработки — реакцию.

Идея, я думаю, ясна.



Ну и что?

Хотелось бы услышать идеи, как сделать его двухсторонним.

Пока единственное, что приходит на ум, — это добавление в базу «неотправленных» сообщений, которые Скайп сам бы отправлял — ведь если отправка не удалась и клиент отключился, Скайп запоминает, что нужно переслать.

Плюсы:

  • API не требуется.

  • Простой как топор, мало зависимостей.

Минусы:
  • Открыт только для приема.

  • Не использует хуки sqlite3.
Представитель на GitHub Теги: #skype #skype api #skype4py #Skype4com #мессенджеры
Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.