Как настроить правила GramGroupsBot
Эта страница объясняет, как настроить правила после подключения Telegram-группы. Начните с одной группы: добавьте одно простое правило, проверьте его на реальном сообщении и только потом применяйте такую же настройку к другим группам сети.
Это руководство предполагает, что первая группа уже подключена. Если вы еще не подключили группу, начните с инструкции по настройке.
GramGroupsBot работает как единая панель для нескольких групп. Вы создаете правило один раз, выбираете группы, где оно должно работать, и дальше проверяете результат в Telegram.
1. Общая логика
Правило начинает работать только после назначения группе. Если вы создали список стоп-слов, но не выбрали ни одной группы, сообщения в Telegram не изменятся.
Лучший порядок настройки:
- Подключите одну тестовую группу.
- Проверьте, что бот является администратором.
- Создайте одно простое правило.
- Назначьте его этой группе.
- Отправьте тестовое сообщение в Telegram.
- Проверьте, что бот сделал ожидаемое действие.
- После проверки примените правило к другим группам.
Пример: вы ведете 10 Telegram-групп и хотите запретить слово «скам». Не нужно добавлять это слово вручную в каждую группу. Вы создаете один список стоп-слов, добавляете туда «скам» и назначаете список нужным группам.
2. Где настраивать правила
Основные разделы панели:
Groups— подключенные группы и проверка прав бота.Stop words— слова и фразы, при которых сообщение нужно удалить.Required words— слова или фразы, которые обязательно должны быть в сообщении.Links— правила для ссылок и доменов.Message limits— лимиты сообщений от одного пользователя.Greetings— приветствия для новых участников.Billing— баланс и активные платные группы.
Если правило не работает, сначала проверьте три вещи: группа подключена, бот имеет нужные права, правило назначено именно этой группе.
3. Стоп-слова
Стоп-слова нужны, когда сообщение нужно удалить из-за запрещенного слова или фразы.
Пример: вы хотите блокировать слово cat.
Добавьте в список стоп-слов:
catПосле этого бот должен удалять сообщения, где это слово встречается в обычном или замаскированном виде.
Примеры сообщений, которые должны удаляться:
- cat
- Cat
- cAt
- cA.t
- c.a.t
- c-a-t
- c a t
- C.A.T!!!
- купить cat сейчас
Это работает потому, что перед проверкой текст приводится к более простому виду: регистр не важен, а разделители и лишние символы не помогают обходить правило.
Пример на русском:
Если добавить стоп-слово скам, бот должен удалять сообщения:
- скам
- СКАМ
- с.к.а.м
- с-к-а-м
- с к а м
- это скам!!!
В коде используется нормализация с удалением небуквенных символов, поэтому эти варианты действительно свернутся к одному виду для проверки.
4. Обязательные слова
Обязательные слова нужны, когда сообщение должно содержать конкретное слово или фразу. Это удобно для объявлений, вакансий, заявок и других формализованных сообщений.
Пример: группа объявлений о продаже.
- Москва
- Санкт-Петербург
- Казань
Сообщение пройдет: «Продам велосипед, Москва, самовывоз.»
Сообщение может быть удалено: «Продам велосипед, пишите в личку.»
Почему: в сообщении нет ни одного обязательного слова из списка.
Пример: группа вакансий.
- зарплата
- ставка
- оплата
Сообщение пройдет: «Ищем монтажника, оплата каждый день.»
Сообщение может быть удалено: «Ищем монтажника, подробности в личку.»
Важно: правило обязательных слов проверяет обычные новые сообщения. Reply-сообщения могут не удаляться этим правилом, чтобы не ломать обсуждение под объявлениями.
5. Ссылки
Правила ссылок нужны, чтобы контролировать, какие ссылки можно публиковать в группе.
Пример 1: запретить все ссылки.
Сообщение: «Подробности тут: example.com»
Результат: бот удаляет сообщение.
Пример 2: запретить только отдельные домены.
- spam-site.com
- fake-shop.ru
Сообщение: «Скидки здесь: spam-site.com»
Результат: бот удаляет сообщение.
Пример 3: разрешить только проверенные домены.
- yoursite.com
- docs.google.com
- t.me/yourchannel
Сообщение с yoursite.com пройдет. Сообщение с неизвестным доменом будет удалено.
Для проверки используйте обычные видимые ссылки: example.com или https://example.com. Если ссылка спрятана за текстом Telegram-ссылки, она тоже проверяется как ссылка.
6. Лимиты сообщений
Лимиты сообщений помогают ограничить флуд, когда один пользователь отправляет слишком много сообщений за короткое время.
Пример: ограничить флуд.
Вы хотите, чтобы один пользователь не отправлял больше 5 сообщений за 30 секунд.
Настройте лимит:
- 5 сообщений
- 30 секунд
Если пользователь пишет спокойно, сообщения остаются. Если он быстро отправляет 6, 7, 8 сообщений подряд, лишние сообщения удаляются.
Совет: начинайте с мягкого лимита. Слишком строгий лимит может мешать нормальному разговору.
7. Приветствия
Приветствия автоматически отправляются новым участникам группы.
Пример приветствия:
Привет, {first_name}! Перед публикацией прочитайте правила группы.
Если в группу вступает Анна, бот отправит:
Привет, Анна! Перед публикацией прочитайте правила группы.
Используйте {first_name} в тексте приветствия. Если имя не передано, бот подставит ваш fallback-вариант из настроек приветствия.
Используйте приветствия для правил группы, ссылок на закрепленное сообщение или короткого объяснения, что можно публиковать.
8. Массовые действия
Пример: один спамер появился в нескольких группах.
- Найдите сообщение нарушителя.
- Ответьте на это сообщение командой
/banall. - Бот попробует заблокировать этого пользователя в подключенных группах, где у него есть нужные права.
Для временного ограничения используйте /muteall.
Важно: команды /banall и /muteall нужно отправлять именно ответом на сообщение пользователя. Если отправить команду отдельным сообщением, бот не поймет, кого нужно ограничить.
9. Reply, forwarded-сообщения и темы
- Обычные сообщения проходят все основные проверки.
- Ответы на сообщения могут не проверяться правилом обязательных слов.
- Стоп-слова и ссылки могут продолжать проверяться.
- Сообщение в теме (
message_thread_id) не является reply само по себе. - Forwarded-сообщение без
reply_to_messageобрабатывается как обычное.
10. Права бота
Для удаления сообщений бот должен быть администратором и иметь право can_delete_messages. Это влияет на стоп-слова, обязательные слова, ссылки и лимиты.
Для /banall и /muteall нужно право can_restrict_members.
Если права менялись в Telegram, откройте Groups и нажмите Check bot.
11. Как проверить правила перед запуском на всю сеть
- Подключите одну тестовую группу.
- Проверьте статус бота в
Groups. - Создайте одно простое стоп-слово.
- Назначьте список этой группе.
- Отправьте сообщение со стоп-словом.
- Проверьте, удалилось ли сообщение.
- Создайте простое правило обязательных слов.
- Отправьте обычное сообщение без обязательного слова.
- Отправьте reply без обязательного слова и проверьте ожидаемое поведение.
- Отправьте сообщение со ссылкой.
- Проверьте лимит сообщений.
- После проверки назначьте правила остальным группам.
12. Частые ошибки
Правило создано, но не назначено группе
Создать правило недостаточно: нужно выбрать группы, где оно должно работать.
У бота нет права удалять сообщения
Выдайте право удаления в Telegram и обновите состояние через Check bot.
Тест идет в reply
Проверьте обязательные слова на обычном новом сообщении, а не на reply.
Ссылка скрыта за Telegram linked text
Даже в этом случае URL проверяется правилом ссылок. Проверяйте и видимые, и скрытые ссылки.
Правило только что изменили
Подождите короткое время и повторите тест.
Правило назначено не той группе
Проверьте список назначений и конкретную группу.
13. Когда переходить к нескольким группам
Не назначайте новые правила сразу всей сети, если вы еще не проверили их на одной группе.
Рекомендуемый порядок:
- Настроить правило в одной группе.
- Проверить обычное сообщение.
- Проверить reply, если это важно для вашего сценария.
- Проверить сообщение со ссылкой.
- Проверить права бота.
- Только после этого назначить правило остальным группам.
Так вы избежите ситуации, когда неверная настройка начинает удалять сообщения сразу во всех группах.