Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

Telegram Bot

331 Aufrufe

Veröffentlicht am

...

Veröffentlicht in: Technologie
  • Login to see the comments

  • Gehören Sie zu den Ersten, denen das gefällt!

Telegram Bot

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

×