Примеры Telegram ботов для личных автоматизаций
- вторник, 29 августа 2023 г. в 00:00:16
Telegram-ботами уже никого не удивить. Недавно Telegram отметил 10-летие, и я решил сделать текстовую версию своего ролика. Идея простая — иногда возникают сложности с тем, чтобы придумать о чем писать Telegram бота, и я решил поделиться подборкой ботов, которых разработал и использую в своей жизни я.
Причем это будут не прям боты, а скорее способы использования telegram-bot-api для решения разных задач.
Первый самый простой пример использования Telegram - это отправка уведомлений. Можно отправлять уведомления, когда сайт упал, а также получать уведомления о новых заявках. Например, если у нас есть сайт компании, то когда приходит новая заявка, можно получать уведомление через Telegram. Это очень-очень базовый способ использования Telegram.
Не знаю как у вас, но у меня регулярно возникает необходимость выкачать чего-нибудь с сервера, на который я зашел через SSH. Например, я сгенерил какой-нибудь отчет скриптом и хочу себе закачать.
Подключаться через sftp и идти снова в эту папку достаточно лень да и все равно потом этот файл будет отправляться, скорее всего, кому-то в телеграм. Я написал небольшой bash-скрипт, который позволяет мне запустить команду и указать путь до файла. В итоге этот файл прилетает мне в личку, и дальше я уже делаю с ним чего хочу. Когда писал этот скрипт я и не думал, что буду пользоваться им так часто. В итоге этот файл лежит почти на каждом сервере, которым я пользуюсь.
Важно: учитывая, что этот скрипт прямо в себе хранит bot-token, то рекомендуется создать для этой цели отдельного бота, чтобы не переживать о том, что кто-то другой может слить этот токен.
Ещё один пример, который связан с предыдущим — отправка автоматических бэкапов. Я понимаю, что не всегда хорошо использовать телеграм в формате файлового хранилища, но у нас был проект, где клиент не готов был платить за поддержку бэкапов и говорил что-то вроде “ну мне бэкапы не нужны, проект не критичный”. Но мы ребята ученые и все равно его бэкапили.
Механика резервного копирования простая — есть bash-скрипт который создает tar.gz из нужной папки, разбивает архив по 40мб и просто скидывает их в чат.
Сам скрипт закинут в крон на 5 утра на каждый день. Система работает уже несколько лет и пару раз конкретно спасла клиенту жопу ситуацию. Конечно, это не так удобно, как нормальная система бэкапов — файлы надо собирать в один, переносить на сервер. Но оно того действительно стоит!
У меня в галере есть куча разных проектов и под каждый проект у нас свой telegram чат. Некоторые проекты сделаны на микросервисной архитектуре. Работаем по флоу фича ветки, которая вливается в stage
(с автодеплоем на тестовый стенд) и последующим вливанием в release
.
После разработки какой-то большой фичи на 5 сервисов, возникает необходимость сделать сразу несколько MR (Merge Request) со стейджа на релиз. И это, обычно, делаю я. Мне это надоело достаточно быстро, и мы сделали небольшого бота, который по чату понимает о каком проекте идет речь и создает эти MR-ки сам. Мелочь, а приятно.
С этой автоматизации у меня зародилась мысль, что можно многие рутинные операции переложить на бота-помощника и с тех пор началась разработка этого бота фоном и он расширяется в разных направлениях.
Про этого бота я делал отдельный ролик. Но кратко опишу его в текущей подборке. Суть такая: я веду свои задачи в Notion и создавать задачи через их интерфейс — дело неудобное.
Сам по себе Notion прекрасен, но загружается очень долго, потом пока дойдешь до нужной страницы и тд — проще забить и не записывать задачу. Плюс еще я бы хотел, чтобы мне могли ставить задачи другие люди, при этом не видя остальные задачи.
Немного кода и теперь ограниченный круг лиц может писать моему боту с задачей для меня, а дальше уже я сам займусь ее реализацией.
Если бы у Notion была бы нормальная система вебхуков, то я бы сделал и оповещение пользователя о выполненной задачи. Но, пока что, сойдет и так.
Таким образом, получается, что люди не имеют доступ к моему Notion, но при этом могут в Notion сваливать задачи, которые мне потом нужно будет разобрать. Разумеется, никто этим не злоупотребляет, и пользуются только в том случае, когда они могут напрямую добиться того, чтобы я что-то сделал или когда у них уже делается что-то несрочное.
Раз я делюсь подборкой ботов, то грех не поделиться этим. Он не связан с работой и продуктивностью. Я играю в Fortnite и, обычно, играю прямо в рабочее время — потратил 30-40 минут и обратно впрыгиваешь в работу. Но проблема в том, что Fortnite любит уходить на обслуживание ночью по американскому времени, что приводит к тому, что у нас он не работает в 12-13 часов.
Очень неприятно об этом узнавать, собрав ребят поиграть. Поэтому я написал бота, который регулярно заходит на status.epicgames.com и пишет мне об изменениях статуса сервера.
В итоге я всегда знаю о том, что сервер прилег на обслуживание и можно работать спокойно, не планируя прекрасный перерыв.
Однажды у меня появился ребенок, а потом и еще один! И быть отцом = получать много разных фотографий своих детей от разных людей и, обычно, через Telegram. Я бы очень хотел сохранять эти фотографии в облако (я пользуюсь яндекс диском), но руками переносить это слишком сложно для такого лентяя, как я.
В итоге, решение оказалось очень простым — я сделал бота, которому пересылаю фотки от других людей, а бот перекладывает эти фотографии по папкам в каждый месяц. У меня была мысль еще добавить распознавание лиц, чтобы помечать кто есть на фотке, но я пока ее отложил в долгий ящик. Мне достаточно того, что фотки сохраняются в удобное для меня место после минимальных действий с моей стороны.
Мой бот @amorevbot, по-умолчанию, выступает в роли моего секретаря. Любой человек может ему написать и, в отдельном чате, создастся тред, в котором я уже буду общаться со своей стороны, а мои сообщения будут отправляться уже, от имени бота, этому человеку.
Этот бот нужен для тех, кто хочет связаться со мной после моего контента на моем youtube или telegram канале. В итоге получается единая точка входа для общения со мной, но при этом не отправляя мне сообщения напрямую. Также, я отделяю личное общение знакомых мне людей от, однозначно, незнакомых.
В сети куча готовых решений для этих задач, но мне они все не понравились тем, что нельзя научить бота создавать изолированные треды для общения с людьми. В итоге, это всё превращается в свалку сообщений, среди которых мне нужно отыскать именно то, что относится к определенному человеку.
Следующий способ использовать Telegram-бота – это отслеживание курсов валют. Я совсем не инвестор и, более того, имею огромный опыт в торговле на фондовых рынках в прошлом и всем всегда рекомендую держаться от всего этого подальше.
Но курс доллара достаточно важная метрика для меня — иногда я заказываю с алиэкпресса разные товары и курс доллара напрямую влияет на конечную стоимость для меня. Я добавил в своего бота механику отслеживания курсов валют, и теперь бот пишет мне актуальный курс.
Важно — он не пишет нового сообщения, а обновляет одно-единственное сообщение в канале. Детально о механике этого бота я писал здесь.
Ещё один интересный случай, который тоже связан с моей личной жизнью. Я купил себе парочку китайских GPS трекеров. Они работают как надо, но очень неудобно. Их официальное приложение — издевательство над пользователем.
Эти трекеры бывают удобны в некоторых случаях — закинуть в машину, когда оставляешь ее в незнакомо месте на долгое время, положить в карман ребенку перед поездкой в какой-нибудь зоопарк и тд. Сами трекеры покупал за 800р (доллар был 55 тогда).
В итоге, я, достаточно костыльно, подключился к личному кабинету и сделал так, что можно включить бота, который отправит мне сообщение с координатами и местоположение через саму телегу. Дальше, пока включен бот, он будет обновлять его каждые 5 минут.
Мне не надо заходить в отдельное приложение, а я просто захожу в отдельный чат с ботом и вижу актуальное местоположение моего трекера. Также можно добавить в этот чат, временно, людей, с кем хотел бы делиться местоположением трекера — добавляю в чат с трекером людей, которые поехали со мной и моим ребенком в поездку, а ребенок ходит с трекером в кармане.
Тут примерно та же самая механика, как в случае с Notion. Я пишу сообщение боту и автоматически создается строчка в гугл-таблице. В итоге, добавить что-то в таблицу стало сильно быстрее и, в некоторых случаях, это помогает в моей борьбе с ленью.
Получается некая односторонняя связь от Telegram бота в Google таблицу – прикольно, хорошо и легко.
Летом 2022 года я отдыхал в Сочи и поехал туда на машине. Дорога от Москвы до Сочи просто прекрасна и идёт на одном дыхании… кроме серпантина в конце. Я не ожидал, что это может меня настолько выбить из колеи. Основная проблема там в пробках — стоять в пробке на серпантине на механике очень больно. Особенно в жару!
Пока я сидел в Сочи, я думал как мне оптимизировать дорогу домой. Мне в голову пришла мысль отслеживать состояние пробок на серпантине в разные дни и выбрать оптимальный момент. Для этого я написал бота, который заходит в Яндекс карты, скринит состояние и отправляет результат мне.
Каждые 10 минут сообщение обновлялось с новым скрином, что было крайне удобно! Я поглядывал как обстоят дела и выбрал самое оптимальное время для старта (чтобы проехать быстро, но чтобы не выезжать ночью).
В день выезда я этим ботом также воспользовался — я включил его сильно заранее и просто наблюдал, когда картина на дороге станет приемлемой и двинулся в путь в подходящий момент.
Сейчас этим ботом пользуюсь иногда, т.к. езжу на машине в Москву редко.
У меня есть своя компания-галера, где мы пишем разные проекты (в том числе ботов) на аутсорсе. И в моем случае оказалось реальной проблемой в конце месяца собрать все работы, которые мы сделали и выставить клиенту.
Какое-то время я полагался на свою голову, потом полагался на головы разрабов и что они вспомнят в конце месяца, что они делали. Но в один момент я понял, что рассчитывать на это бессмысленно, а осознание что “деньги проходят сквозь пальцы” не давало покоя.
Тогда мы, для своего трекера задач, написали простого бота который каждые 2ч спрашивает разраба “что делал последние 2 часа” и в интерактивном режиме позволяет быстро трекнуть время в копилку. По итогам месяца бот собирает отчеты в гугл-таблицы по каждому разрабу и дальше уже мы формируем счета для наших клиентов.
После внедрения мы заметили рост выручки и, по-началу, я был удивлен как мы много делаем для клиентов — счета стали внушаемы и сбор данных стал категорически простым. Я остался доволен!
Это не все боты, которых мне доводилось писать. Это лишь боты, о которых я вспомнил, готовя этот материал. Я регулярно расширяю возможности своего личного бота-помощника (подключаю парсер команд, подключаю его к кондиционерам по голосу, подключаю к камерам в офисе для безопасности) и регулярно сталкиваюсь с новыми идеями, которые можно сделать в виде телеграм-бота.
Буду рад, если вы поделитесь своими ботами в комментах и также буду рад подписке на мой тг-канал @gmoreva и YouTube канал @amorev.
Благодарю за внимание!