SlideShare a Scribd company logo
1 of 13
Download to read offline
Telegram Remote Control Bot
Цель
Основная цель – разработка ПО для управления ЭВМ по средствам мессенджера
Telegram.
ПО должно отвечать следующим свойствам:
• Надежность и стабильность
• Модульность
• Переносимость
• Функциональность
Почему Telegram?
Telegram был выбран сразу по нескольким причинам:
• Надежность и конфиденциальность
• Наличие клиентов почти под все мобильные платформы
• Open source
• Удобный API для создания ботов
• У ботов есть особые «перки», e.g. кастомные клавиатуры:
Для чего это все?
Для чего угодно. С помощью этого бота можно будет:
• сделать «умный дом»,
• создать систему мониторинга за местностью
• удаленно управлять своим компьютером.
Благодаря особенностям бота и Telegram, я хочу добиться
максимально возможного охвата направлений его применения.
Пример использования
Что сделано на данный момент?
TRC Bot разрабатывается на C++14 с использованием сторонних
Библиотек tgbot-cpp и nlohmann json.
На сегодняшний день бот поддерживает:
• Отправку текстовых сообщений
• Отправку фотографий
За счет чего это работает?
Действия достигаются за счет запуска указанных исполняемых файлов
(например Bash-скриптов).
RMC Bot Чтение JSON конфига
Token
Tasks
Task 1
Task 2
Task N
Пример: config.json
{
"token":"224432852:AAG_Zz2qVsGgsEIG4W30GkP-7cIrVgC16sc",
"tasks":
[
{
"taskName":"photo", //название команды
"taskCmd":"/home/user/photo.sh", //путь до исполняемого файла
"taskArgs":"/dev/video0", //аргумент, который принимает исполняемый файл
"reactFrame":"!picture", //тип ответа пользователю
"reactDataSrc":"!output„ //откуда берется ответ
}
]
}
Пример: photo.sh
#!/bin/bash
FILE="/tmp/telegram/photo.jpg"
ffmpeg -y -loglevel quiet -f video4linux2 -i $1 -vframes 1 $FILE
echo $FILE
Тестирование
При тестировании с разными модулями (функционал которых
поддерживается) ошибок и проблем замечено не было.
Бот проработал без остановки два дня, при этом в любой момент
времени корректно обрабатывал приходящие на него запросы.
Что будет дальше?
• Поддержка передачи видео, аудио, etc.
• Более гибкие возможности для подключения модулей
• Обновление конфига в реальном времени
• Использование «перков» ботов Telegram
• Портирование на BeagleBone и Raspberry Pi
• Работа над повышением стабильности и надежности
• Покрытие проекта модульными тестами
Недостатки на данный момент
• Слишком «сырой», нет поддержки важного функционала
• В tgbot-cpp не реализован метод, который позволит загрузить файл на
хост
• Реализовано только на x86
• При портировании на BeagleBone/Raspberry Pi могут возникнуть
сложности
The End
• Бот: https://github.com/whiteforest440/rms_bot
• Telegram bot C++ API: https://github.com/reo7sp/tgbot-cpp
• JSON C++: https://github.com/nlohmann/json

More Related Content

What's hot

Что такое Robot Framework?
Что такое Robot Framework?Что такое Robot Framework?
Что такое Robot Framework?Mykhailo Poliarush
 
Вадим Козлов, Илья Казначеев - Selenium через SAP
Вадим Козлов, Илья Казначеев - Selenium через SAPВадим Козлов, Илья Казначеев - Selenium через SAP
Вадим Козлов, Илья Казначеев - Selenium через SAPIlya Kaznacheev
 
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов
Непрерывная интеграция и автотесты. Сравнительный анализ инструментовНепрерывная интеграция и автотесты. Сравнительный анализ инструментов
Непрерывная интеграция и автотесты. Сравнительный анализ инструментовSQALab
 
Попасть в мишень
Попасть в мишеньПопасть в мишень
Попасть в мишеньAnton Ignatov
 
Дополнительные материалы от Егора Васильва
Дополнительные материалы от Егора ВасильваДополнительные материалы от Егора Васильва
Дополнительные материалы от Егора ВасильваSQALab
 
Подводная часть айсберга: что делать, чтобы автотесты не превратились в Титаник
Подводная часть айсберга: что делать, чтобы автотесты не превратились в ТитаникПодводная часть айсберга: что делать, чтобы автотесты не превратились в Титаник
Подводная часть айсберга: что делать, чтобы автотесты не превратились в ТитаникSQALab
 
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNGДмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNGDataArt
 
Построение процесса тестирования производительности игрового клиента
Построение процесса тестирования производительности игрового клиентаПостроение процесса тестирования производительности игрового клиента
Построение процесса тестирования производительности игрового клиентаSQALab
 
Winium — это как Selenium, только под Windows
Winium — это как Selenium, только под WindowsWinium — это как Selenium, только под Windows
Winium — это как Selenium, только под WindowsSQALab
 
Илья Аблеев – Zabbix в Badoo: реагируем быстро и качественно
Илья Аблеев – Zabbix в Badoo: реагируем быстро и качественноИлья Аблеев – Zabbix в Badoo: реагируем быстро и качественно
Илья Аблеев – Zabbix в Badoo: реагируем быстро и качественноBadoo Development
 
Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...
Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...
Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...Ontico
 
Николай Сивко "Хорошо поддерживаемое в продакшне приложение"
Николай Сивко "Хорошо поддерживаемое в продакшне приложение"Николай Сивко "Хорошо поддерживаемое в продакшне приложение"
Николай Сивко "Хорошо поддерживаемое в продакшне приложение"Tanya Denisyuk
 
Инструментация среды исполнения в арсенале тестировщика
Инструментация среды исполнения в арсенале тестировщикаИнструментация среды исполнения в арсенале тестировщика
Инструментация среды исполнения в арсенале тестировщикаSQALab
 
Robot Framework: универсальный инструмент автоматизатора
Robot Framework: универсальный инструмент автоматизатораRobot Framework: универсальный инструмент автоматизатора
Robot Framework: универсальный инструмент автоматизатораSQALab
 
Автоматизация тестирования многопоточности
Автоматизация тестирования многопоточностиАвтоматизация тестирования многопоточности
Автоматизация тестирования многопоточностиSQALab
 
2014-02-01 02 Дмитрий Малиновский. Почему нужно читать исходный код инстру...
2014-02-01 02 Дмитрий Малиновский. Почему нужно читать исходный код инстру...2014-02-01 02 Дмитрий Малиновский. Почему нужно читать исходный код инстру...
2014-02-01 02 Дмитрий Малиновский. Почему нужно читать исходный код инстру...Омские ИТ-субботники
 
Быстрое расширение Robot Framework под свои нужды с использованием Python
Быстрое расширение Robot Framework под свои нужды с использованием PythonБыстрое расширение Robot Framework под свои нужды с использованием Python
Быстрое расширение Robot Framework под свои нужды с использованием Pythonautomated-testing.info
 
Использование Symfony
Использование SymfonyИспользование Symfony
Использование SymfonyMedia Gorod
 

What's hot (20)

Что такое Robot Framework?
Что такое Robot Framework?Что такое Robot Framework?
Что такое Robot Framework?
 
Вадим Козлов, Илья Казначеев - Selenium через SAP
Вадим Козлов, Илья Казначеев - Selenium через SAPВадим Козлов, Илья Казначеев - Selenium через SAP
Вадим Козлов, Илья Казначеев - Selenium через SAP
 
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов
Непрерывная интеграция и автотесты. Сравнительный анализ инструментовНепрерывная интеграция и автотесты. Сравнительный анализ инструментов
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов
 
Попасть в мишень
Попасть в мишеньПопасть в мишень
Попасть в мишень
 
Дополнительные материалы от Егора Васильва
Дополнительные материалы от Егора ВасильваДополнительные материалы от Егора Васильва
Дополнительные материалы от Егора Васильва
 
Подводная часть айсберга: что делать, чтобы автотесты не превратились в Титаник
Подводная часть айсберга: что делать, чтобы автотесты не превратились в ТитаникПодводная часть айсберга: что делать, чтобы автотесты не превратились в Титаник
Подводная часть айсберга: что делать, чтобы автотесты не превратились в Титаник
 
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNGДмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
 
Построение процесса тестирования производительности игрового клиента
Построение процесса тестирования производительности игрового клиентаПостроение процесса тестирования производительности игрового клиента
Построение процесса тестирования производительности игрового клиента
 
Winium — это как Selenium, только под Windows
Winium — это как Selenium, только под WindowsWinium — это как Selenium, только под Windows
Winium — это как Selenium, только под Windows
 
Илья Аблеев – Zabbix в Badoo: реагируем быстро и качественно
Илья Аблеев – Zabbix в Badoo: реагируем быстро и качественноИлья Аблеев – Zabbix в Badoo: реагируем быстро и качественно
Илья Аблеев – Zabbix в Badoo: реагируем быстро и качественно
 
Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...
Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...
Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...
 
Dev collaboration
Dev collaborationDev collaboration
Dev collaboration
 
Николай Сивко "Хорошо поддерживаемое в продакшне приложение"
Николай Сивко "Хорошо поддерживаемое в продакшне приложение"Николай Сивко "Хорошо поддерживаемое в продакшне приложение"
Николай Сивко "Хорошо поддерживаемое в продакшне приложение"
 
Инструментация среды исполнения в арсенале тестировщика
Инструментация среды исполнения в арсенале тестировщикаИнструментация среды исполнения в арсенале тестировщика
Инструментация среды исполнения в арсенале тестировщика
 
Robot Framework: универсальный инструмент автоматизатора
Robot Framework: универсальный инструмент автоматизатораRobot Framework: универсальный инструмент автоматизатора
Robot Framework: универсальный инструмент автоматизатора
 
Sivko
SivkoSivko
Sivko
 
Автоматизация тестирования многопоточности
Автоматизация тестирования многопоточностиАвтоматизация тестирования многопоточности
Автоматизация тестирования многопоточности
 
2014-02-01 02 Дмитрий Малиновский. Почему нужно читать исходный код инстру...
2014-02-01 02 Дмитрий Малиновский. Почему нужно читать исходный код инстру...2014-02-01 02 Дмитрий Малиновский. Почему нужно читать исходный код инстру...
2014-02-01 02 Дмитрий Малиновский. Почему нужно читать исходный код инстру...
 
Быстрое расширение Robot Framework под свои нужды с использованием Python
Быстрое расширение Robot Framework под свои нужды с использованием PythonБыстрое расширение Robot Framework под свои нужды с использованием Python
Быстрое расширение Robot Framework под свои нужды с использованием Python
 
Использование Symfony
Использование SymfonyИспользование Symfony
Использование Symfony
 

Viewers also liked

Интеллектуальная система взаимодействия с абонентами
Интеллектуальная система взаимодействия с абонентами Интеллектуальная система взаимодействия с абонентами
Интеллектуальная система взаимодействия с абонентами Svyazcom
 
Чат-боты: предложи своему бренду то, что ещё никто и никогда не предлагал
Чат-боты: предложи своему бренду то, что ещё никто и никогда не предлагалЧат-боты: предложи своему бренду то, что ещё никто и никогда не предлагал
Чат-боты: предложи своему бренду то, что ещё никто и никогда не предлагалMoscow Digital
 
Боты в E-Commerce
Боты в E-CommerceБоты в E-Commerce
Боты в E-CommerceHeads&Hands
 
Gemius audience messengers
Gemius audience messengersGemius audience messengers
Gemius audience messengersAnton Melekhov
 
Если ваш собеседник-робот
Если ваш собеседник-роботЕсли ваш собеседник-робот
Если ваш собеседник-роботAnastasia Afonina
 
Машинное обучение. Что это такое и как с этим жить.
Машинное обучение. Что это такое и как с этим жить.Машинное обучение. Что это такое и как с этим жить.
Машинное обучение. Что это такое и как с этим жить.Ivan Miniailenko
 
Большой Город на Mdday#moco 2012
Большой Город на Mdday#moco 2012Большой Город на Mdday#moco 2012
Большой Город на Mdday#moco 2012Igor Barinov
 
Profit Button для #ФРИИ
Profit Button для #ФРИИProfit Button для #ФРИИ
Profit Button для #ФРИИIgor Barinov
 
Концепция для Почты России
Концепция для Почты РоссииКонцепция для Почты России
Концепция для Почты РоссииIgor Barinov
 
ChatOps на практике. Организация работы команды сопровождения / Евгений Потап...
ChatOps на практике. Организация работы команды сопровождения / Евгений Потап...ChatOps на практике. Организация работы команды сопровождения / Евгений Потап...
ChatOps на практике. Организация работы команды сопровождения / Евгений Потап...Ontico
 
Ключ к успеху в создании чат-ботов
Ключ к успеху в создании чат-ботовКлюч к успеху в создании чат-ботов
Ключ к успеху в создании чат-ботовBrandzilla
 
Идеи чат-ботов для Бизнеса
Идеи чат-ботов для БизнесаИдеи чат-ботов для Бизнеса
Идеи чат-ботов для БизнесаBrandzilla
 
Ситиграм - городской мессенджер
Ситиграм - городской мессенджерСитиграм - городской мессенджер
Ситиграм - городской мессенджерIgor Barinov
 
Коммерциализация инновационных процессов (38.04.01. Экономика)
Коммерциализация инновационных процессов (38.04.01. Экономика)Коммерциализация инновационных процессов (38.04.01. Экономика)
Коммерциализация инновационных процессов (38.04.01. Экономика)Александр Владыка
 
Почему весь мир заговорил о чатботах?
Почему весь мир заговорил о чатботах?Почему весь мир заговорил о чатботах?
Почему весь мир заговорил о чатботах?chatbotscommunity
 
Подход к разработке чат-ботов в wobot.me
Подход к разработке чат-ботов в wobot.meПодход к разработке чат-ботов в wobot.me
Подход к разработке чат-ботов в wobot.mechatbotscommunity
 

Viewers also liked (20)

Интеллектуальная система взаимодействия с абонентами
Интеллектуальная система взаимодействия с абонентами Интеллектуальная система взаимодействия с абонентами
Интеллектуальная система взаимодействия с абонентами
 
Чат-боты: предложи своему бренду то, что ещё никто и никогда не предлагал
Чат-боты: предложи своему бренду то, что ещё никто и никогда не предлагалЧат-боты: предложи своему бренду то, что ещё никто и никогда не предлагал
Чат-боты: предложи своему бренду то, что ещё никто и никогда не предлагал
 
Боты в E-Commerce
Боты в E-CommerceБоты в E-Commerce
Боты в E-Commerce
 
Gemius audience messengers
Gemius audience messengersGemius audience messengers
Gemius audience messengers
 
Социальные медиа Рунета
Социальные медиа РунетаСоциальные медиа Рунета
Социальные медиа Рунета
 
Если ваш собеседник-робот
Если ваш собеседник-роботЕсли ваш собеседник-робот
Если ваш собеседник-робот
 
Smo Kravchuk
Smo KravchukSmo Kravchuk
Smo Kravchuk
 
Машинное обучение. Что это такое и как с этим жить.
Машинное обучение. Что это такое и как с этим жить.Машинное обучение. Что это такое и как с этим жить.
Машинное обучение. Что это такое и как с этим жить.
 
SELFHUB RUS
SELFHUB RUSSELFHUB RUS
SELFHUB RUS
 
Большой Город на Mdday#moco 2012
Большой Город на Mdday#moco 2012Большой Город на Mdday#moco 2012
Большой Город на Mdday#moco 2012
 
Profit Button для #ФРИИ
Profit Button для #ФРИИProfit Button для #ФРИИ
Profit Button для #ФРИИ
 
Концепция для Почты России
Концепция для Почты РоссииКонцепция для Почты России
Концепция для Почты России
 
ChatOps на практике. Организация работы команды сопровождения / Евгений Потап...
ChatOps на практике. Организация работы команды сопровождения / Евгений Потап...ChatOps на практике. Организация работы команды сопровождения / Евгений Потап...
ChatOps на практике. Организация работы команды сопровождения / Евгений Потап...
 
Ключ к успеху в создании чат-ботов
Ключ к успеху в создании чат-ботовКлюч к успеху в создании чат-ботов
Ключ к успеху в создании чат-ботов
 
Telegram для маркетинга
Telegram для маркетингаTelegram для маркетинга
Telegram для маркетинга
 
Идеи чат-ботов для Бизнеса
Идеи чат-ботов для БизнесаИдеи чат-ботов для Бизнеса
Идеи чат-ботов для Бизнеса
 
Ситиграм - городской мессенджер
Ситиграм - городской мессенджерСитиграм - городской мессенджер
Ситиграм - городской мессенджер
 
Коммерциализация инновационных процессов (38.04.01. Экономика)
Коммерциализация инновационных процессов (38.04.01. Экономика)Коммерциализация инновационных процессов (38.04.01. Экономика)
Коммерциализация инновационных процессов (38.04.01. Экономика)
 
Почему весь мир заговорил о чатботах?
Почему весь мир заговорил о чатботах?Почему весь мир заговорил о чатботах?
Почему весь мир заговорил о чатботах?
 
Подход к разработке чат-ботов в wobot.me
Подход к разработке чат-ботов в wobot.meПодход к разработке чат-ботов в wobot.me
Подход к разработке чат-ботов в wobot.me
 

Similar to Telegram Bot

Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)
Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)
Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)Ontico
 
Client Side Autotesting Flash
Client Side Autotesting FlashClient Side Autotesting Flash
Client Side Autotesting Flashguestb0af15
 
noBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов Николай
noBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов НиколайnoBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов Николай
noBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов НиколайOntico
 
#noBackend, или Как выжить в эпоху толстеющих клиентов
#noBackend, или Как выжить в эпоху толстеющих клиентов#noBackend, или Как выжить в эпоху толстеющих клиентов
#noBackend, или Как выжить в эпоху толстеющих клиентовNikolay Samokhvalov
 
Устройство фреймворка symfony 2 (http://frontend-dev.ru)
Устройство фреймворка symfony 2 (http://frontend-dev.ru)Устройство фреймворка symfony 2 (http://frontend-dev.ru)
Устройство фреймворка symfony 2 (http://frontend-dev.ru)Александр Егурцов
 
Catalyst – MVC framework на Perl (RIT 2008)
Catalyst – MVC framework на Perl  (RIT 2008)Catalyst – MVC framework на Perl  (RIT 2008)
Catalyst – MVC framework на Perl (RIT 2008)Sergey Skvortsov
 
Стажировка 2015. Разработка. Занятие 7. Работа с серверами
Стажировка 2015. Разработка. Занятие 7. Работа с серверамиСтажировка 2015. Разработка. Занятие 7. Работа с серверами
Стажировка 2015. Разработка. Занятие 7. Работа с серверами7bits
 
Хорошо поддерживаемое приложение
Хорошо поддерживаемое приложениеХорошо поддерживаемое приложение
Хорошо поддерживаемое приложениеNikolay Sivko
 
Слои тестового фрамеворка. Что? Где? Когда?
Слои тестового фрамеворка. Что? Где? Когда?Слои тестового фрамеворка. Что? Где? Когда?
Слои тестового фрамеворка. Что? Где? Когда?COMAQA.BY
 
Воюем за ресурсы (ZFConf2011)
Воюем за ресурсы (ZFConf2011)Воюем за ресурсы (ZFConf2011)
Воюем за ресурсы (ZFConf2011)Alexey Kachayev
 
Алексей Кабанов, Автоматизируем Rich Internet Applications с нуля на примере ...
Алексей Кабанов, Автоматизируем Rich Internet Applications с нуля на примере ...Алексей Кабанов, Автоматизируем Rich Internet Applications с нуля на примере ...
Алексей Кабанов, Автоматизируем Rich Internet Applications с нуля на примере ...SQADays_2009_Piter
 
Froglogic Squish
Froglogic Squish Froglogic Squish
Froglogic Squish SQALab
 
Читабельные отчеты для автоматизации на C# / Gallio / BDDfy
Читабельные отчеты для автоматизации на C# / Gallio / BDDfyЧитабельные отчеты для автоматизации на C# / Gallio / BDDfy
Читабельные отчеты для автоматизации на C# / Gallio / BDDfyDmytro Zharii
 
Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?Dmitry Buzdin
 
Chrome push notifications. Анатомия и разработка
Chrome push notifications. Анатомия и разработкаChrome push notifications. Анатомия и разработка
Chrome push notifications. Анатомия и разработкаAlexandr Mikhaylenko
 
WebCamp:Front-end Developers Day. Александр Михайленко "Обзор библиотек и кан...
WebCamp:Front-end Developers Day. Александр Михайленко "Обзор библиотек и кан...WebCamp:Front-end Developers Day. Александр Михайленко "Обзор библиотек и кан...
WebCamp:Front-end Developers Day. Александр Михайленко "Обзор библиотек и кан...GeeksLab Odessa
 
Setup1
Setup1Setup1
Setup1Zuenta
 

Similar to Telegram Bot (20)

Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)
Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)
Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)
 
Client Side Autotesting Flash
Client Side Autotesting FlashClient Side Autotesting Flash
Client Side Autotesting Flash
 
CI/CD with Fastlane and Telegram
CI/CD with Fastlane and TelegramCI/CD with Fastlane and Telegram
CI/CD with Fastlane and Telegram
 
noBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов Николай
noBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов НиколайnoBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов Николай
noBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов Николай
 
#noBackend, или Как выжить в эпоху толстеющих клиентов
#noBackend, или Как выжить в эпоху толстеющих клиентов#noBackend, или Как выжить в эпоху толстеющих клиентов
#noBackend, или Как выжить в эпоху толстеющих клиентов
 
Устройство фреймворка symfony 2 (http://frontend-dev.ru)
Устройство фреймворка symfony 2 (http://frontend-dev.ru)Устройство фреймворка symfony 2 (http://frontend-dev.ru)
Устройство фреймворка symfony 2 (http://frontend-dev.ru)
 
Team workflow
Team workflowTeam workflow
Team workflow
 
Обзор SObjectizer 5.5
Обзор SObjectizer 5.5Обзор SObjectizer 5.5
Обзор SObjectizer 5.5
 
Catalyst – MVC framework на Perl (RIT 2008)
Catalyst – MVC framework на Perl  (RIT 2008)Catalyst – MVC framework на Perl  (RIT 2008)
Catalyst – MVC framework на Perl (RIT 2008)
 
Стажировка 2015. Разработка. Занятие 7. Работа с серверами
Стажировка 2015. Разработка. Занятие 7. Работа с серверамиСтажировка 2015. Разработка. Занятие 7. Работа с серверами
Стажировка 2015. Разработка. Занятие 7. Работа с серверами
 
Хорошо поддерживаемое приложение
Хорошо поддерживаемое приложениеХорошо поддерживаемое приложение
Хорошо поддерживаемое приложение
 
Слои тестового фрамеворка. Что? Где? Когда?
Слои тестового фрамеворка. Что? Где? Когда?Слои тестового фрамеворка. Что? Где? Когда?
Слои тестового фрамеворка. Что? Где? Когда?
 
Воюем за ресурсы (ZFConf2011)
Воюем за ресурсы (ZFConf2011)Воюем за ресурсы (ZFConf2011)
Воюем за ресурсы (ZFConf2011)
 
Алексей Кабанов, Автоматизируем Rich Internet Applications с нуля на примере ...
Алексей Кабанов, Автоматизируем Rich Internet Applications с нуля на примере ...Алексей Кабанов, Автоматизируем Rich Internet Applications с нуля на примере ...
Алексей Кабанов, Автоматизируем Rich Internet Applications с нуля на примере ...
 
Froglogic Squish
Froglogic Squish Froglogic Squish
Froglogic Squish
 
Читабельные отчеты для автоматизации на C# / Gallio / BDDfy
Читабельные отчеты для автоматизации на C# / Gallio / BDDfyЧитабельные отчеты для автоматизации на C# / Gallio / BDDfy
Читабельные отчеты для автоматизации на C# / Gallio / BDDfy
 
Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?
 
Chrome push notifications. Анатомия и разработка
Chrome push notifications. Анатомия и разработкаChrome push notifications. Анатомия и разработка
Chrome push notifications. Анатомия и разработка
 
WebCamp:Front-end Developers Day. Александр Михайленко "Обзор библиотек и кан...
WebCamp:Front-end Developers Day. Александр Михайленко "Обзор библиотек и кан...WebCamp:Front-end Developers Day. Александр Михайленко "Обзор библиотек и кан...
WebCamp:Front-end Developers Day. Александр Михайленко "Обзор библиотек и кан...
 
Setup1
Setup1Setup1
Setup1
 

Telegram Bot

  • 2. Цель Основная цель – разработка ПО для управления ЭВМ по средствам мессенджера Telegram. ПО должно отвечать следующим свойствам: • Надежность и стабильность • Модульность • Переносимость • Функциональность
  • 3. Почему Telegram? Telegram был выбран сразу по нескольким причинам: • Надежность и конфиденциальность • Наличие клиентов почти под все мобильные платформы • Open source • Удобный API для создания ботов • У ботов есть особые «перки», e.g. кастомные клавиатуры:
  • 4. Для чего это все? Для чего угодно. С помощью этого бота можно будет: • сделать «умный дом», • создать систему мониторинга за местностью • удаленно управлять своим компьютером. Благодаря особенностям бота и Telegram, я хочу добиться максимально возможного охвата направлений его применения.
  • 6. Что сделано на данный момент? TRC Bot разрабатывается на C++14 с использованием сторонних Библиотек tgbot-cpp и nlohmann json. На сегодняшний день бот поддерживает: • Отправку текстовых сообщений • Отправку фотографий
  • 7. За счет чего это работает? Действия достигаются за счет запуска указанных исполняемых файлов (например Bash-скриптов). RMC Bot Чтение JSON конфига Token Tasks Task 1 Task 2 Task N
  • 8. Пример: config.json { "token":"224432852:AAG_Zz2qVsGgsEIG4W30GkP-7cIrVgC16sc", "tasks": [ { "taskName":"photo", //название команды "taskCmd":"/home/user/photo.sh", //путь до исполняемого файла "taskArgs":"/dev/video0", //аргумент, который принимает исполняемый файл "reactFrame":"!picture", //тип ответа пользователю "reactDataSrc":"!output„ //откуда берется ответ } ] }
  • 9. Пример: photo.sh #!/bin/bash FILE="/tmp/telegram/photo.jpg" ffmpeg -y -loglevel quiet -f video4linux2 -i $1 -vframes 1 $FILE echo $FILE
  • 10. Тестирование При тестировании с разными модулями (функционал которых поддерживается) ошибок и проблем замечено не было. Бот проработал без остановки два дня, при этом в любой момент времени корректно обрабатывал приходящие на него запросы.
  • 11. Что будет дальше? • Поддержка передачи видео, аудио, etc. • Более гибкие возможности для подключения модулей • Обновление конфига в реальном времени • Использование «перков» ботов Telegram • Портирование на BeagleBone и Raspberry Pi • Работа над повышением стабильности и надежности • Покрытие проекта модульными тестами
  • 12. Недостатки на данный момент • Слишком «сырой», нет поддержки важного функционала • В tgbot-cpp не реализован метод, который позволит загрузить файл на хост • Реализовано только на x86 • При портировании на BeagleBone/Raspberry Pi могут возникнуть сложности
  • 13. The End • Бот: https://github.com/whiteforest440/rms_bot • Telegram bot C++ API: https://github.com/reo7sp/tgbot-cpp • JSON C++: https://github.com/nlohmann/json