Top Banner
Telegram Remote Control Bot
13

Telegram Bot

Apr 14, 2017

Download

Technology

Andrey Ivanov
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Telegram Bot

Telegram Remote Control Bot

Page 2: Telegram Bot

Цель

Основная цель – разработка ПО для управления ЭВМ по средствам мессенджера

Telegram.

ПО должно отвечать следующим свойствам:

• Надежность и стабильность

• Модульность

• Переносимость

• Функциональность

Page 3: Telegram Bot

Почему Telegram?

Telegram был выбран сразу по нескольким причинам:

• Надежность и конфиденциальность

• Наличие клиентов почти под все мобильные платформы

• Open source

• Удобный API для создания ботов

• У ботов есть особые «перки», e.g. кастомные клавиатуры:

Page 4: Telegram Bot

Для чего это все?

Для чего угодно. С помощью этого бота можно будет:

• сделать «умный дом»,

• создать систему мониторинга за местностью

• удаленно управлять своим компьютером.

Благодаря особенностям бота и Telegram, я хочу добиться

максимально возможного охвата направлений его применения.

Page 5: Telegram Bot

Пример использования

Page 6: Telegram Bot

Что сделано на данный момент?

TRC Bot разрабатывается на C++14 с использованием сторонних

Библиотек tgbot-cpp и nlohmann json.

На сегодняшний день бот поддерживает:

• Отправку текстовых сообщений

• Отправку фотографий

Page 7: Telegram Bot

За счет чего это работает?

Действия достигаются за счет запуска указанных исполняемых файлов

(например Bash-скриптов).

RMC Bot Чтение JSON конфига

Token

Tasks

Task 1

Task 2

Task N

Page 8: Telegram Bot

Пример: config.json

{"token":"224432852:AAG_Zz2qVsGgsEIG4W30GkP-7cIrVgC16sc","tasks":[{"taskName":"photo", //название команды "taskCmd":"/home/user/photo.sh", //путь до исполняемого файла"taskArgs":"/dev/video0", //аргумент, который принимает исполняемый файл"reactFrame":"!picture", //тип ответа пользователю"reactDataSrc":"!output„ //откуда берется ответ

}]

}

Page 9: Telegram Bot

Пример: photo.sh

#!/bin/bash

FILE="/tmp/telegram/photo.jpg"

ffmpeg -y -loglevel quiet -f video4linux2 -i $1 -vframes 1 $FILEecho $FILE

Page 10: Telegram Bot

ТестированиеПри тестировании с разными модулями (функционал которых

поддерживается) ошибок и проблем замечено не было.

Бот проработал без остановки два дня, при этом в любой момент

времени корректно обрабатывал приходящие на него запросы.

Page 11: Telegram Bot

Что будет дальше?

• Поддержка передачи видео, аудио, etc.

• Более гибкие возможности для подключения модулей

• Обновление конфига в реальном времени

• Использование «перков» ботов Telegram

• Портирование на BeagleBone и Raspberry Pi

• Работа над повышением стабильности и надежности

• Покрытие проекта модульными тестами

Page 12: Telegram Bot

Недостатки на данный момент

• Слишком «сырой», нет поддержки важного функционала

• В tgbot-cpp не реализован метод, который позволит загрузить файл на

хост

• Реализовано только на x86

• При портировании на BeagleBone/Raspberry Pi могут возникнуть

сложности

Page 13: Telegram Bot

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