search
bolt

SourceTrigger Guide

Heroku модуль на триггеры к вашим сообщениям

tune 1. Начало работы
1.1
Конфигурация модуля
Для настройки параметров модуля используйте команду: .cfg SourceTrigger
КОМАНДА CFG
1.2
Привязка канала-источника
Перейдите в канал, где будут храниться ваши триггеры и медиафайлы, и отправьте команду: .tsetsource
Также можно указать ID или юзернейм чата аргументом, например: .tsetsource @my_channel_triggers
КОМАНДА НАСТРОЙКА
1.3
Параметры в меню настроек (.cfg)
Вам доступны следующие опции для кастомизации поведения юзербота:
source_channel_id — ID канала-источника (донора), где хранятся триггеры и медиа. Начинается с -100.
auto_parse_on_start (по умолчанию True) — автосканирование канала при старте или обновлении модуля.
trigger_in_channels (по умолчанию False) — реагировать на триггеры при отправке в каналы.
trigger_in_groups (по умолчанию True) — реагировать на сообщения в группах/супергруппах.
trigger_in_pm (по умолчанию True) — реагировать на сообщения в личных сообщениях (ЛС).
max_delay (по умолчанию 3.0 сек) — защита от спама после лагов интернета. Сообщения старше указанного времени игнорируются.
ОПЦИИ CFG
add_circle 2. Добавление триггеров
2.1
Способ А. Оформление в канале (Рекомендуемый)
1. Отправьте в канал-источник сообщение с контентом (картинка, гифка, видео, аудио или текст).
2. Ответьте (Reply) на это сообщение текстом триггера, например: ~привет.
Модуль автоматически перехватит и сохранит триггер. Если этого не произошло, выполните команду .tparse для принудительного сканирования всего канала.
КАНАЛ Tparse РЕКОМЕНДУЕТСЯ
2.2
Способ Б. Через команду .tadd
В любом чате:
1. Сделайте ответ (Reply) на сообщение с нужным контентом (текст или медиа).
2. Отправьте команду: .tadd <формат_триггера> (например, .tadd ~тест).
Бот перешлет контент в канал-источник, привяжет триггер и удалит вашу команду.
КОМАНДА ADD
bolt 3. Типы триггеров
3.1
Префикс ~ — Точное совпадение
Сработает, только если сообщение пользователя полностью совпадает с триггером (без учета регистра).
• Триггер: ~привет
• Сработает на: привет, Привет
ТОЧНОЕ БЕЗ УДАЛЕНИЯ
3.2
Префикс ~~ — По вхождению
Сработает, если триггер содержится внутри текста сообщения.
• Триггер: ~~привет
• Сработает на: всем привет ребята, приветики
ВХОЖДЕНИЕ ЧАСТИЧНОЕ
3.3
Префикс ~~~ — Точное с удалением
Точное совпадение, но после отправки ответа бот удалит исходное сообщение пользователя. Ответ всегда отправляется новым сообщением.
• Триггер: ~~~!тест
• Сработает на: !тест (и удалит его)
ТОЧНОЕ УДАЛЕНИЕ
3.4
Префикс ~| — Регулярное выражение (RegEx)
Сработает, если сообщение удовлетворяет правилам регулярного выражения.
• Триггер: ~|хочу \d+ бананов
• Сработает на: хочу 5 бананов, хочу 100 бананов
REGEX ШАБЛОН
3.5
Префикс ~~~| — RegEx с удалением
Срабатывает по регулярному выражению, отправляет ответ новым сообщением, а исходное сообщение пользователя удаляет.
• Триггер: ~~~|купить \d+
• Сработает на: купить 12 (и удалит его)
REGEX УДАЛЕНИЕ
psychology 4. Регулярные выражения (RegEx)
4.1
Что такое регулярные выражения?
Это специальный язык шаблонов для поиска и сопоставления текста. Вместо создания сотен триггеров под разные цифры или фразы, вы можете написать один гибкий шаблон, который покроет все варианты.
ТЕОРИЯ СПРАВКА
4.2
Популярные спецсимволы в RegEx
\d+ — одна или более цифр (например, 5, 42).
\w+ — любые буквы или цифры.
. — любой одиночный символ.
.* — любое количество любых символов.
? — делает предыдущий символ необязательным.
[а-яА-Я]+ — любое русское слово.
| — логическое "ИЛИ" (например, ~|(да|нет) сработает на да или нет).
ШПАРГАЛКА REGEX
visibility_off 5. Поиск и Исключения
5.1
Исключения чатов (.tignore)
Если вы хотите отключить срабатывание триггеров в конкретном чате:
• Отправьте в нужном чате команду .tignore (она добавит или удалит текущий чат из списка исключений).
• Вы также можете управлять списками удаленно, передав ID чата: .tignore <ID_чата>.
КОМАНДА ИГНОР
5.2
Поиск триггеров (.tsearch)
Помогает проверить, какой триггер сработает на определенную фразу:
.tsearch <текст_запроса>
Бот сымитирует отправку этого сообщения, найдет подходящие триггеры и выведет список со ссылками на сообщения-источники.
КОМАНДА ПОИСК
alternate_email 6. Динамические плейсхолдеры
6.1
Информация о времени и дате
Вставляйте эти переменные в текст ваших триггеров, и бот заменит их при отправке:
{hour}, {minute}, {second} — текущее время.
{day}, {month}, {year} — текущая дата числом.
• Месяцы на русском: {month_short_lower} (июн), {month_full_title} (Июнь), {month_full_upper} (ИЮНЬ).
• Дни недели на русском: {weekday_num} (1-7), {weekday_short_title} (Вс), {weekday_full_lower} (воскресенье).
ПЛЕЙСХОЛДЕР ВРЕМЯ
6.2
Информация о пользователях и чатах
{owner_username} — ваш юзернейм в Telegram.
{cur_chat_name} — название текущего чата или имя собеседника.
{cur_chat_username} — юзернейм чата (если публичный).
{reply_username} — юзернейм пользователя, на чьё сообщение ответили.
{reply_firstname} — имя этого пользователя.
{reply_lastname} — фамилия этого пользователя.
ПЛЕЙСХОЛДЕР ЧАТ ЮЗЕР
6.3
Статистика и кастомные переменные
{total_triggers} — общее количество сохраненных триггеров.
{sent_count} — сколько раз юзербот ответил на триггеры с момента установки.
• Кастомные плейсхолдеры Heroku: поддерживаются переменные, зарегистрированные другими вашими модулями (например, {uptime}, {now_playing} и др.).
ПЛЕЙСХОЛДЕР СТАТИСТИКА HEROKU
6.4
Значения по умолчанию
Если данные получить не удалось, укажите резервный текст через двоеточие: {плейсхолдер:значение}.
Пример использования:
«Привет, {reply_firstname:друг}! Сейчас {hour}:{minute}, за окном {weekday_full_title}. Ты пишешь в чат {cur_chat_name}.»
СИНТАКСИС ДЕФОЛТ
database 7. Хранение данных
7.1
Локальный JSON и бэкапы
Данные хранятся локально в файле sourcetrigger_data.json в папке установки модуля.
Для обеспечения отказоустойчивости на хостингах с эфемерной файловой системой (например, Heroku), база дублируется в системную базу данных Хероку (self.db). При удалении или сбросе файла JSON все триггеры автоматически восстановятся из бэкапа.
БЭКАП JSON DATABASE
info Важные детали работы

Лимиты Telegram API

Автоматический парсинг канала при запуске срабатывает только в том случае, если с момента последнего парсинга прошло более 2 часов. Это защищает ваш аккаунт от флуд-вейтов и снижает нагрузку на API.

Защита от спама (max_delay)

При включении после лагов интернета или перезапуска юзербот проигнорирует триггерные сообщения, которые были отправлены более 3 секунд назад (параметр регулируется в cfg). Это предотвращает лавинообразную отправку накопившихся ответов.

Приоритет сопоставления

Юзербот проверяет триггеры по очереди: сначала точное совпадение (~), затем совпадение по вхождению (~~) и в конце регулярные выражения (~|). Это обеспечивает корректность и предсказуемость срабатываний.