SourceTrigger Guide
Heroku модуль на триггеры к вашим сообщениям
.cfg SourceTrigger
.tsetsourceТакже можно указать ID или юзернейм чата аргументом, например:
.tsetsource @my_channel_triggers
•
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 сек) — защита от спама после лагов интернета.
Сообщения старше указанного времени игнорируются.
2. Ответьте (Reply) на это сообщение текстом триггера, например:
~привет.Модуль автоматически перехватит и сохранит триггер. Если этого не произошло, выполните команду
.tparse для принудительного сканирования всего канала.
1. Сделайте ответ (Reply) на сообщение с нужным контентом (текст или медиа).
2. Отправьте команду:
.tadd <формат_триггера> (например,
.tadd ~тест).Бот перешлет контент в канал-источник, привяжет триггер и удалит вашу команду.
• Триггер:
~привет• Сработает на:
привет, Привет
• Триггер:
~~привет• Сработает на:
всем привет ребята, приветики
• Триггер:
~~~!тест• Сработает на:
!тест (и удалит его)
• Триггер:
~|хочу \d+ бананов• Сработает на:
хочу 5 бананов, хочу 100 бананов
• Триггер:
~~~|купить \d+• Сработает на:
купить 12 (и удалит его)
\d+ — одна или более цифр (например, 5, 42).•
\w+ — любые буквы или цифры.•
. — любой одиночный символ.•
.* — любое количество любых символов.•
? — делает предыдущий символ необязательным.•
[а-яА-Я]+ — любое русское слово.•
| — логическое "ИЛИ" (например, ~|(да|нет) сработает на
да или нет).
• Отправьте в нужном чате команду
.tignore (она добавит или удалит текущий чат из
списка исключений).• Вы также можете управлять списками удаленно, передав ID чата:
.tignore <ID_чата>.
.tsearch <текст_запроса>Бот сымитирует отправку этого сообщения, найдет подходящие триггеры и выведет список со ссылками на сообщения-источники.
•
{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} (воскресенье).
{owner_username} — ваш юзернейм в Telegram.•
{cur_chat_name} — название текущего чата или имя собеседника.•
{cur_chat_username} — юзернейм чата (если публичный).•
{reply_username} — юзернейм пользователя, на чьё сообщение ответили.•
{reply_firstname} — имя этого пользователя.•
{reply_lastname} — фамилия этого пользователя.
{total_triggers} — общее количество сохраненных триггеров.•
{sent_count} — сколько раз юзербот ответил на триггеры с момента установки.• Кастомные плейсхолдеры Heroku: поддерживаются переменные, зарегистрированные другими вашими модулями (например,
{uptime}, {now_playing} и др.).
{плейсхолдер:значение}.Пример использования:
«Привет, {reply_firstname:друг}! Сейчас {hour}:{minute}, за окном {weekday_full_title}. Ты пишешь в чат {cur_chat_name}.»
sourcetrigger_data.json в папке установки
модуля.Для обеспечения отказоустойчивости на хостингах с эфемерной файловой системой (например, Heroku), база дублируется в системную базу данных Хероку (
self.db). При удалении
или
сбросе файла JSON все триггеры автоматически восстановятся из бэкапа.
Лимиты Telegram API
Автоматический парсинг канала при запуске срабатывает только в том случае, если с момента последнего парсинга прошло более 2 часов. Это защищает ваш аккаунт от флуд-вейтов и снижает нагрузку на API.
Защита от спама (max_delay)
При включении после лагов интернета или перезапуска юзербот проигнорирует триггерные сообщения, которые были отправлены более 3 секунд назад (параметр регулируется в cfg). Это предотвращает лавинообразную отправку накопившихся ответов.
Приоритет сопоставления
Юзербот проверяет триггеры по очереди: сначала точное совпадение (~), затем совпадение по вхождению (~~) и в конце регулярные выражения (~|). Это обеспечивает корректность и предсказуемость срабатываний.