Как стать автором
Обновить

Комментарии 13

А зачем здесь Flask? Разве что у вас бот крутится не на той машине, которой вы хотите управлять.
github.com/nickoala/telepot
Я просто раньше пробовал делать на нем ботов и знаю как с ним работать
Уважаемый! Стремление сделать что-то новое очень похвально, но лучше чуть больше времени уделять чтению документации. Например, телеграм бота проще всего подключить вообще безо всякого ngrok и прочих flask'ов. Про polling режим подробно расписано в доке.
На сколько понял, любой кто отправит сообщение боту сможет выключить компьютер или запустить что угодно в консоли?
Можно добавить проверку от кого пришло сообщение и тогда это все сможете делать только вы, если нужно могу подсказать как это сделать
Лучше бы сразу в статью это добавить и объяснить как работает.
Т.к. открытый бот с практически неограниченным доступом к системе — это очень плохо.
Сейчас отредактирую)
Теперь есть проверка от кого пришло сообщение. Так лучше?
Любой может не отправлять сообщение боту, а отправить post запрос на комп, на котором крутится бот, при этом подставить любой юзернейм, проверки на то, откуда пришел запрос нет.
Бот работает через Webhook? Тогда какой вообще смысл прикручивать сюда телегу? Если управляемый комп виден в интернете и до него может достучаться сервак телеграмма, то с таким же успехом мы можем до него достучаться по ssh. Это будет удобнее т.к. имеем полноценную командную строку, т.е. можно делать cd, потом ls, а не изолированные друг от друга команды; плюс добивка команды табом (не помню как эта фича правильно называется), и передача файлов по scp.

Такая затея еще имела бы смысл, если бы комп не имел внешнего белого ip и до него нельзя было достучаться по сети напрямую.
Да, но мне кажется телеграм удобный способ коммуникации с компом в данном случае.Для простых задач как выключить комп когда лежишь на диване и лень вставать)
Ну там типа не напрямую достукивается, а через ngrok. То есть «белого ип» не надо, но смысл тот же.
Вопрос по этому участку:
def sendMessage(chat_id,text):
	url = URL+"sendMessage?chat_id="+str(chat_id)+"&text="+str(text)
	requests.get(url)


sendMessage(chat_id, proc[0].decode('cp866')) #отправляем ответ командной строки в Telegram


Если выполняю команду cat text.txt, а в файле text.txt будут служебные url символы например: & /? Всё поломается или где-то есть обработка строки и я её упустил?
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории