Аннотация
Представлен процесс разработки программы-бота, оптимизирующей взаимодействие с ин- формацией в учебном процессе, а также приведено описание алгоритма её функционирования. Описаны выявленные проблемы.

Авторы:А. С. Калашников, А. Д. Кучеренко, В. К. Щеглов
Представлен процесс разработки программы-бота, оптимизирующей взаимодействие с ин- формацией в учебном процессе, а также приведено описание алгоритма её функционирования. Описаны выявленные проблемы.
Для повышения удобства работы с информацией с сайта СибГУ им. М. Ф. Решетнева было решено разработать бота – специальную программу, взаимодействующую с социальной сетью с целью автоматического ответа пользователю. Данное решение обусловлено тем, что большин- ство людей сегодня проводят большое количество времени в разных социальных сетях и мес- сенджерах. На начальном этапе была реализована функция отправки расписания учебы в ответ на запрос пользователя в социальной сети «ВКонтакте». Работа бота осуществляется через ин- терфейс API сайта vk.com [1] на языке программирования Python.
API ВКонтакте позволяет получать информацию из базы данных vk.com с помощью http- запросов к специальному серверу. Синтаксис запросов и тип возвращаемых ими данных строго определены на стороне самого сервиса. Бот отслеживает активность через Callback API, находясь на стороннем сервере.
Когда пользователь пишет боту какое-либо сообщение, на сервер приходит входящий запрос, оповещающий об этом. Структура запроса:
{"type":"message_new","object":{"id":43, "date":1492522323, "out":0, "user_id":xxxxxxxx, "read_state":0, "title":" ... ", "body":"помощь"}, "group_id":xxxxxxxxxxx} Из данного словаря бот получает сообщение из элемента "body" и id пользователя из элемента "user_id".
ID пользователя позволяет создать базу данных, где каждому студенту будет принадлежать его группа и ему не придется указывать эту информацию при каждом обращении. На данный момент база данных организована в текстовом документе в словаре Python. Получение сообщения от поль- зователя отслеживается ботом, и при обнаружении активности вызывается алгоритм, позволяю- щий осуществить вывод расписания. Основные этапы алгоритма представлены на рис. 1.
Рис. 1 - Блок-схема алгоритма работы бота
Вывод расписания происходит в режиме реального времени: бот считывает информацию с сайта расписания СибГУ [2] на основе номера группы, находящейся в базе данных. Для реализа- ции задачи парсинга была использована библиотека BeautifulSoup [3], которая поддерживает простые и естественные способы навигации, поиска и модификации дерева синтаксического раз- бора файлов HTML/XML. Из нее были использованы функция BeautifulSoup и методы: .find,.find_all, .decompose.
Пример работы бота приведен на рис. 2, 3.
Рис. 2 - Интерфейс общения с ботом (вывод сообщения о расписании)
Рис. 3 - Интерфейс общения с ботом (ответы бота на сообщения пользователя)
В процессе выполнения проекта авторами был выявлено ряд проблем. Сложности при выборе языка программирования, так как возникает необходимость осваивать большое количество биб- лиотек. Скорость взаимодействия с базой данных низкая, так как она реализована в текстовом файле. Проблемы с парсингом – создание бота совпало с периодом обновления сайта расписания, поэтому было проделано много лишней работы. Однако это позволило ознакомиться со всеми аспектами данного способа выбора информации. Как видно из блок-схемы перед нахождением расписания на требуемый день приходится удалять блок расписания сегодняшнего дня. Данное решение обусловлено особенностями работы библиотеки BeautifulSoup и структурой сайта рас- писания – каждый день, кроме сегодняшнего не имеет идентификатора, поэтому нахождение тре- буемого дня организуется перебором этих дней с удалением ненужных. При встрече с сегодняш- ним днем перебор останавливался с появлением ошибки, что искомый блок не найден
Таким образом, на данном этапе проекта были обнаружены проблемы, мешающие функцио- нированию программы, отработаны алгоритмы решения прикладных задач. Дальнейшая работа над проектом будет состоять из двух этапов: устранение текущих недостатков и оптимизация алгоритма, дальнейшее продвижение в работе в соответствии с целями проекта.
Разработанная система позволяет повысить удобство получения информации о расписании занятий для студентов, а также открывает новые возможности синхронизации официальной группы СибГУ в социальной сети «ВКонтакте» с сайтом университета.