telegram bot

13
Telegram Remote Control Bot

Upload: andrey-ivanov

Post on 14-Apr-2017

190 views

Category:

Technology


0 download

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