Научная статья на тему 'Телеграм-бот как простой и удобный способ получения информации'

Телеграм-бот как простой и удобный способ получения информации Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
10617
588
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ИНФОРМАЦИЯ / МЕССЕНДЖЕР / ТЕЛЕГРАМ / БОТ / ПРИЛОЖЕНИЕ / ДИАЛОГ / ИНТЕРНЕТ / УЧЕБНЫЕ ЗАНЯТИЯ / INFORMATION / MESSENGER / TELEGRAM / BOT / APP / DIALOGUE / THE INTERNET / STUDY CLASSES

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Козлов А. А., Батищев А. В.

В статье рассматривается один из наиболее удобных способов быстрого и качественного получения необходимой информации посредством диалога пользователя с Телеграм-ботом.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Козлов А. А., Батищев А. В.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

The article considers one of the most convenient method to get information qualitatively and quickly through the user's dialogue with Telegram-bot.

Текст научной работы на тему «Телеграм-бот как простой и удобный способ получения информации»

1. Балабин В.Н. Альтернативные немеханические системы газораспределения для дизелей // Мир транспорта. 2004. Т. 2. № 2 (6). С. 52-57.

2. Галимова Р.К., Якупов З.Я. Исследование решений уравнения Лапласа в технологических процессах с использованием парогазовых разрядов с жидкостными электродами // Журнал Средневолжского математического общества. 2015. Т. 17. № 1. С. 150.

3. Косыгин В.Ю., Исаев В.И. О построении региональных плотностных моделей // Тихоокеанская геология. 1985. № 2. С. 113.

4. Писарев О.А., Кручина-Богданов И.В., Глазова Н.В., Быченкова О.В. Хроматографические разделения БАВ в кинетически селективных режимах динамики сорбции // Журнал физической химии. 1999. Т. 73. № 9. С. 1634.

5. Krishan A.L., Krishan M.A. Strength of axially loaded concrete -filled steel tubular columns with circular cross-section // Advances in Environmental Biology. 2014. Т. 8. № 7. С. 1991-1994.

6. Vlakh E.G., Pisarev O.A., Tennikova T.B., Stepanova M.A. Preparation and characterization of macroporous monoliths imprinted with erythromycin // Journal of Separation Science. 2015. Т. 38. № 16. С. 27632771.

Козлов А.А., Батищев А.В.

ТЕЛЕГРАМ-БОТ КАК ПРОСТОЙ И УДОБНЫЙ СПОСОБ ПОЛУЧЕНИЯ ИНФОРМАЦИИ

Орловский государственный университет им. И. С. Тургенева

Ключевые слова: информация, мессенджер, Телеграм, бот, приложение, диалог, Интернет, учебные занятия.

Аннотация: в статье рассматривается один из наиболее удобных способов быстрого и качественного получения необходимой информации посредством диалога пользователя с Телеграм-ботом.

Keywords: information, messenger, Telegram, bot, app, dialogue, the Internet, study classes.

Abstract: The article considers one of the most convenient method to get information qualitatively and quickly through the user's dialogue with Telegram-bot.

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

гаджеты и приложения нацелены на то, чтобы максимально упростить жизнь обычных пользователей в решении повседневных задач, а также обеспечить достаточно быстрый доступ к любой интересующей его информации.

Согласно статистике, самая многочисленная группа людей, активно пользующихся, как интернетом, так и возможностями электронных устройств и разнообразных приложений, это школьники и студенты. Любое современное учебное заведение стремится к развитию, повышению качества процесса обучения, его доступности и интерактивности. На данный момент большинство ВУЗов и ССУЗов имеют свое интернет-представительство на просторах всемирной сети, где размещена самая актуальная информация об учебном заведении, его истории, сотрудниках и преподавателях, освещается студенческая жизнь и различные мероприятия. Как правило, основная цель таких веб-сервисов привлечь внимание будущих студентов, их родителей, потенциальных работодателей, предоставив, в первую очередь, сведения об актуальных проектах, исследованиях и других научных и внеучебных мероприятиях, проводимых в том или ином образовательном учреждении. Однако сами студенты не всегда могут получать быстрый и удобный доступ к информации, связанной с их учебной деятельностью, например, актуальные изменения в расписании занятий.

Есть несколько вариантов решения такого рода задач, например, создание мобильного приложения, в котором отображается расписание для каждой группы и преподавателей. Второй вариант - создание Telegram-бота, посредством которого осуществляется доступ к информации с сайта. В рамках данной статьи, будем рассматривать именно второй вариант.

Первый клиент Telegram был представлен в 2013 году, и с тех пор мессенджер набирает популярность, как в России, так и по всему миру благодаря удобству использования, безопасности, высокой скорости работы и доступности. Интересная особенность Telegram состоит в том, что любой желающий может воспользоваться всеми возможностями сервиса для создания своих собственных программ -ботов. Такая программа выполняет функции незаменимого помощника, который посредством максимально удобного интерфейса и набора команд позволяет решить элементарную операцию, не прерывая общения. Общение с ботом осуществляется через диалог, так же как с обычным пользователем.

В связи с этим цель работы - создание простого и удобного Telegram-бота, который бы осуществлял быстрый и безопасный доступ

к необходимой информации, имел удобный и максимально простой интерфейс.

Для достижения поставленной цели были решены следующие задачи:

• Исследование способов получения информации о расписании учебных занятий с сайта вуза - ОГУ имени И.С. Тургенева.

• Разработка архитектуры и реализация программного проекта, позволяющего посредством диалога с пользователем узнать конкретные параметры запроса и обеспечить быстрый и надежный способ получения списка учебных занятий группы.

• Тестирование готового приложения.

Простейшим способом получения списка учебных занятий конкретной группы на конкретную неделю был http-get метод по определенному адресу, учитывающему идентификатор группы и timestamp начала интересующей недели. В качестве ответа от сервера представлен json-массив, элементами которого являются учебные занятия группы в пределах недели, содержащие следующую информацию:

• Идентификатор группы.

• Номер подгруппы.

• Название предмета.

• Тип занятия.

• Номер занятия.

• День недели.

• Учебный корпус.

• Номер аудитории.

• Идентификатор группы.

• ФИО преподавателя.

Разработанный проект состоит из пяти взаимосвязанных между собой модулей: главный модуль, модуль взаимодействия с базой данных учебных занятий, модуль вспомогательных инструментов, скрипт для обновления базы данных учебных занятий, модуль с необходимой конфигурацией проекта. Также с приложением связаны: файл SQLite базы данных учебных занятий, файл Vedis хранилища профилей пользователей.

Основой всего проекта является главный модуль. Данный файл можно разделить на четыре логические части:

• Настройка логировщика.

• Описание класса вэб-сервера.

• Различные вспомогательные инструменты.

• Обработчики сообщений пользователя.

Логирование ошибок, сбор уведомлений с разных модулей проекта является неотъемлемой частью любого хорошего приложения, претендующего на надежность в условиях постоянной работы. При правильной организации работы логировщика даже в самых непредвиденных ситуациях разработчик будет видеть проблему и иметь возможность быстро исправить ошибку.

Выбор между Longpolling и установкой Webhook является очевидным.

В первом случае открывается соединение на непродолжительное время и серверы Telegram опрашиваются на предмет изменений. Данный метод не является хорошим выбором по ряду причин. Во-первых, опросы происходят периодически, что приводит к появлению задержек. Во-вторых, при таком способе опроса серверы Telegram периодически начинаю возвращать ошибки, что недопустимо в условиях постоянной работы приложения. В-третьих, создается избыточная нагрузка на системы. Во втором же случае, устанавливая Webhook, мы подписываемся на определенные события, т.е. изменения, появляющиеся на серверах Telegram, которые при появлении автоматически передаются «подписавшейся» системе. Платой за такой способ получения обновлений является необходимость нахождения полноценного веб-сервера на компьютере, предназначенном для запуска приложения.

К вспомогательным инструментам в основном относятся функции построения и пересылки пользователю различных пользовательских клавиатур с различными подсказками и уведомлениями.

В качестве обработчиков сообщений представлены функции, обрамленные в специальные декораторы. Каждый такой «слушатель» принимает сообщения строго определенного формата, что позволяет выстроить надежную логику программы, сделать простым для понимания код проекта.

Говоря о базе данных учебных занятий стоит отметить, что используется всего одна таблица, имеющая следующую структуру:

• Идентификатор группы.

• День недели.

• Номер занятия.

• Номер аудитории.

• Название занятия.

• Номер корпуса.

• Тип занятия.

• ФИО преподавателя.

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

Что касается модуля взаимодействия с базой данных учебных занятий, то он содержит ряд функций, обеспечивающих доступ к занятиям конкретной группы на определенный день недели и позволяющих обновлять список занятий определенной группы.

Отдельное внимание стоит уделить хранилищу профилей пользователей Vedis, имеющему тип key-value. В данном случае по идентификатору чата пользователя мы храним сериализованную json-строку, содержащую следующие данные о пользователе:

• Курс обучения.

• Идентификатор группы.

• Текущее состояние пользователя.

Состояния и переходы между ними пользователя будут рассмотрены позже.

Преимущества использования key-value хранилища выражаются в отсутствии необходимости постоянно производить запросы к базе данных. Вся информация о профилях пользователей сохранится даже при перезапуске приложения. Также обеспечивается достаточно быстрое и надежное соединение с хранилищем для записи и получения данных.

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

Неотъемлемой частью приложения является конфигурационный файл, в котором представлены объекты, использующиеся в коде приложения. Данный модуль предоставляет разработчику возможность менять значения определенных свойств приложения, не изменяя непосредственно программный код.

После краткого экскурса в архитектуру проекта, необходимо:

• Разобраться с тем, как осуществляется диалог между пользователем и разработанным программной системой.

• Провести тестирование всех функций конечного продукта.

Предположим, что пользователь решил использовать данный программный продукт в качестве повседневного помощника. Студент озадачен тем, как же найти и написать аккаунту бота в мессенджере Telegram. Поиск выполняется очень просто. Достаточно перейти в раздел поиска посредством выбора иконки лупы в правом верхнем углу приложения. Следующим шагом ввести в поисковой строке символ «@». Далее начать вводить имя аккаунта бота «printschedule_test_bot» (рис. 1).

@printsche

GLOBAL SEARCH

•Q< printschedule_test

printschedule_test_bot

Рисунок 1 - Поиск аккаунта бота в мессенджере Telegram

Следующим шагом необходимо выбрать представленный аккаунт бота в разделе GlobalSearch. По успешному выполнению данного действия пользователь попадает на стартовую страницу диалога. В нижней части данной страницы находится кнопка «Start» (рис. 2). Для начала диалога с ботом необходимо произвести клик по представленной кнопке.

START

Рисунок 2 - Стартовая страница диалога

Диалог с пользователем организуется при помощи нескольких рабочих областей, представляющих собой специальные клавиатуры, взаимодействие с которыми обеспечивает вывод необходимой информации, а также многочисленных справок и подсказок.

По успешному старту диалога пользователем, бот высылает приветствие с актуальными на данный момент уведомлениями, а

также открывает доступ к первой рабочей области «Ввод номера курса» (рис. 3).

/start иаьл

Привет, Alexander Kozlov В настоящее время бот доступен только для ИПАИТ ! ! !

Расписание можно получить на текущую неделю ЧУ

Для общения пользуйся кнопками ниже О

Выбери курс

@ Message Ш @

12 3 4

Рисунок 3 - Ввод пользователем номера курса

Для продолжения диалога пользователю необходимо выбрать курс обучения и произвести клик по соответствующей кнопке. Данное действие даст право боту открыть для пользователя область «Ввод идентификатора группы» (рис. 4).

Выбери группу

£3? Message 6Э <f,

41-БС 41 -ИК 41 -ИТ 41-КЭ ВТп

41-ПГ 41 -ПИ 41-Рп 41-ЭО ti Назад

Рисунок 4 - Выбор пользователем идентификатора группы

Данная рабочая область состоит из специальных кнопок, каждая из которых озаглавлена уникальным идентификатором группы выбранного курса. Также данная клавиатура включает сервисную кнопку «Назад», при взаимодействии с которой возможен возврат на предыдущую рабочую область. Для перехода на следующий этап

диалога и открытия доступа к рабочей среде «Выбор дня недели» (рис. 5) пользователю необходимо выбрать группу обучения и произвести клик по соответствующей кнопке.

Сегодня среда 22-11-2017 Т*

^^ Message О 0 v|/

Пн Вт Ср Чт Пт Сб В Назад Q Сменить курс

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

Заключительная рабочая область представляет собой клавиатуру с массивом кнопок, позволяющим выбрать день недели и получить список занятий на выбранный промежуток времени. Как и на предыдущем шаге, данная среда содержит сервисную кнопку назад. Также клавиатура содержит уникальную кнопку «Сменить курс», предназначенную для моментального перехода в начальную рабочую среду выбора курса.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

4-Я ПАРА О 13:40 -15:10

Интернет-программирование

Щ12-320

лек

Л. Преснецова В.Ю.

5-Я ПАРА О 15:20 -16:50

Основы инженерного творчества

■ 12-824

\ пр

j Загородних H.A.

1J3? Message Ш @ \

Пн Вт Ср Чт Пт сб Я Назад Ц Сменить курс

Рисунок 6 - Результат диалога пользователя ботом

Результат диалога пользователя с ботом представлен на рисунке (рис. 6). Выходная информация содержит:

• Порядковый номер занятия.

• Время занятия.

• Название занятия.

• Корпус и аудитория.

• Тип занятия.

• ФИО преподавателя.

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

• Стартовое

• Ввод курса обучения

• Ввод группы

• Пользователь зарегистрирован

Другими словами, диалог может быть представлен в виде конечного автомата, имеющего следующий вид (рис. 7).

Рисунок 7 - Общий вид диалога

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

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

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

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

Список литературы

1. Акоева Н.Б. Интерактивные приемы работы на музейной экспозиции // Культурная жизнь Юга России. 2016. № 3 (62). С. 112115.

2. Аникин В.И. Информационное обеспечение систем международной безопасности // В сборнике: Информатизация систем безопасности ИСБ-95 Материалы Четвертой Международной конференции, Международного форума информатизации. 1995. С. 1820.

3. Будаева А.А. Использование метода эталонов для повышения качества группировок в задачах таксономии // В сборнике: It-технологии: развитие и приложения Сборник докладов. СевероКавказский горно-металлургический институт (Государственный технологический университет). 2016. С. 3-9.

4. Осипов Г.С. Одноканальные системы массового обслуживания с неограниченной очередью в anylogic // Бюллетень науки и практики. 2016. № 8 (9). С. 92-95.

5. Печников А.Н., Аванесова Т.П., Шиков А.Н. Электронное обучение. - Санкт-Петербург, 2014. - 73 с.

6. Черникова В.Е. Ценности культуры в современном информационном мире. - Ставрополь, 2017. - 185 с.

i Надоели баннеры? Вы всегда можете отключить рекламу.