Telegram Bot

Post on 14-Apr-2017

186 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

Transcript

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 $FILEecho $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

top related