Всем привет! Недавно от скуки написал Skype бота. Решил поделится, может быть кому нибудь пригодятся исходники, да и сам бот.

image

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

В программе реализованы некоторые возможности:
  • Соединение с COM сервером скайпа
  • Отсоединение от COM сервера скайпа
  • Запуск скайпа
  • Закрытия скайпа
  • Обновления словаря не пере запуская программу «Словарь->Перечитать»
  • Выбор чатов в которых будет идти диалог «Чаты->Список чатов»
  • Сворачивается в system tray



Для работы программы нужен файл config.xml который должен находится в одном каталоге с exe программой.

Настройка Skype Бота


Для сохранения настроек необходим файл config.xml, который должен находится в одном каталоге с SkypeBot.exe. В этом файле хранится как словарь для бота, так и его настройки:

Структура config.xml такова:

<?xml version="1.0" encoding="UTF-8"?>
<main>
     <t reg="(привет|здраствуй)">
           <reply>Привет</reply>
           <reply>Здорова</reply>
           <reply>Хай</reply>
     </t>
     <t reg="(Как дела|Как ты)">
           <reply>Нормально, у тебя как?</reply>
           <reply>Хорошо</reply>
     </t>
     <namechat>#cj1900/$e9e3e97f93c86546</namechat>
</main>


Тег t содержит ключ, на который будет выдавать ответ бот и сами ответы.
Ключ хранится в атрибуте тега t и называется reg. Внутри тега reg хранятся слова, заключенные в скобках и пишущиеся через символ |. Когда кто-то в чате пишет сообщения, бот находит одно из слов в ключе и если есть совпадения, отвечает на него случайной фразой заключенных тегом reply.

Ключей как и ответов может быть сколько угодно.

Далее идет тег namechat. Там хранится имя чата, его редактирует сама программа, в нем находится название чатов, в которых вы хотите вести диалог с ботом.

Вот окно выбора чатов:

image

К сожалению, по какой то причине Skype не всегда показывает все чаты через ActiveX, я так и не смог решить эту проблему.

Ссылки на файлы


Ссылка на исходники на disk.yandex.ru
Ссылка на исходники на github.com
Ссылка на программу SkypeBot
Единственная подробная документация для SkypeApi, написанная для visual basic