Информационные технологии и интернет
Сентябрь 2026
Заказчику нужно было следить за сообщениями примерно в сотне сообществ и сразу узнавать, когда там появляется нужное слово. Уведомление должно приходить с текстом, названием чата, автором и ссылкой на само сообщение. Список чатов и слов он хочет править сам, без обращения ко мне, и работать это должно на сервере круглосуточно, при выключенном компьютере.
Тонкий момент в том, что читать чужие сообщества можно только от лица живого аккаунта, а вход в такой аккаунт идёт по коду. Код я не вижу и видеть не должен, значит вход обязан делать сам заказчик и делать его без доступа к серверу и без моего участия. От этого зависела вся схема.
Один процесс держит два подключения - слушатель на аккаунте заказчика и бот для уведомлений. Вход в аккаунт заказчик делает прямо в боте командой. Присылает номер, потом код, потом облачный пароль, сообщение с паролем бот стирает за ним. Код приходится вводить через пробелы, иначе мессенджер видит свой же код в переписке и отменяет его. После входа процесс перезапускает себя - неавторизованный слушатель валит всё подключение ошибкой ключа, поэтому до входа крутится только бот.
Управление целиком в командах бота - добавить все чаты аккаунта разом, добавить ссылками пачкой, список, удалить по номеру или все, добавить слово, список слов, удалить слово, пауза, продолжить, статус. Звёздочка вместо слова шлёт всё подряд. Сравнение устроено так, что регистр не важен и ё приводится к е, ищется вхождение - заказчик пишет корень и не думает про окончания. Владельцем бота становится первый, кто нажал старт, поэтому перед передачей я стёр базу со следом своей проверки.
Поставил на его сервер одним установщиком, служба поднимается сама после перезагрузки, журнал читается штатно.
Вторым заходом заказчик попросил научиться заводить такие проекты самому. Вместо инструкции на словах написал скрипт, который ставит второй экземпляр рядом с первым - своя папка, своя база, своя служба, окружение берётся у первого и ничего заново не ставится. Проверил его на четырёх кривых сценариях - нет имени, имя с пробелом, нет настроек, пустые настройки. На неверных ключах он пишет одну внятную строку из журнала вместо простыни.

После входа заказчика сервис подхватил 41 чат его аккаунта и встал на дежурство. Ссылка на сообщение собирается по-разному для публичных и закрытых чатов, поэтому открывается в обоих случаях. Второй проект на том же сервере разворачивается одной командой, инструкция уместилась на страницу. Отдельно проверил границу - поиск по ссылке работает только в тех чатах, где аккаунт уже состоит, и заказчику это сказано прямо, чтобы он не ждал невозможного.