Comments 30
В телеграмме же есть закрепленные сообщения, они не подойдут для решения задачи? Или хэштеги? А что если у бота будет много триггеров - как потом в них не запутаться? Мне кажется эту задачу нужно решать другими способами.
Кому-то подходят закрепы, кому-то хештеги. Но мы для себя такой формат вот нашли.
Для списка триггеров есть команда /trigger_list
Закрепы — это, как правило, либо огромное сообщение, в котором всё, либо ссылка на док, то есть клики и переключение внимания, поиск, фильтрация — усилия. Теги — штука тематическая и также подразумевает поиск в них, разовый тег на одно сообщение с огромной вероятностью просто забудется. А триггер — это короткие порции нужных данных сразу, насколько я понял
А что произойдет, если написать в чат:
Привет, дизайнеры не смогут сегодня предоставить проект. Дизайнеры просто не успевают
В этом боте нет поиска по тексту. Бот просто не отреагирует.
Мы посчитали, что так удобнее, чем получать кучу спама на каждое сообщение, в котором упоминается триггерное слово
Т.е. он просто реагирует на одиночные сообщения содержащие триггер?
Если так, то - ок ?
Да, только если точное совпадение. С учетом регистра.
"Гифка" и "гифка" это разные триггеры
Подумалось: а почему Вы используете сложную команду из двух слов и подчеркивания? Почему просто не использовать /trigger (/note, /!)? Кстати, можно ли использовать команды на русском языке (я понимаю, что переключиться не занимает много времени, но все же)?
А с мобилки так вообще какой нибудь спец символ из того же набора где слеш
Мы используем говорящие сами за себя команды. Такова практика ботостроения.
Вот допустим мы добавим команду /trigger и что она будет значить? Удалить или добавить? А вторую тогда какую делать?
Что касается спец символов и русского языка: телега не поддерживает их. Только англ и только нижние подчеркивания (тире тоже не прокатит).
Ну и если бот добавлен в группу то при вводе / вылезает меню с подсказкой.
И это не считая того, что слеш уже есть в интерфейсе
Можно добавить специальный символ к ключу, что-то вроде *дизайнеры, и искать его, тогда спама у вас не будет.
Я извиняюсь но смотря на " Для комфортной работы бота хватает 512 мб памяти" хочется плакать. К автору статьи вопросов нет но...
Но что? Это камень в огород джаве?)
Нет. Но это камень в сторону использующих технологию и крайне лишнего оверхеда из за пары хттп запросов и одного запроса в базу данных. Крайне.
Я все равно не до конца понимаю комментарий.
Расшифруйте пожалуйста еще более просто
По вашему 512 мегабайт памяти для приложения которое делает несколько хттп запросов к телеграмму и столько же, даже меньше, в базу данных - это нормально?
Разумеется, что фактическое потребление будет составлять в несколько раз меньше. Однако если держать в уме функцию приложения, которое должно среди строк искать несколько конкретных заранее известных из списка строк и давать в ответ заранее известные строки - вам не кажется, что даже 'в несколько раз меньше' - это все ещё очень много? И вам не кажется что при таких цифрах возможно стоит использовать либо другой язык и стек либо реализовать вещи вручную что бы не было такого огромного потребления?
Доброго времени суток, я так понял, что бот работает только в чате, куда его добавили. То есть, чтобы найти нужную информацию, нужно постоянно открывать чат с ботом и пересылать сообщение. Имеет смысл настроить InlineQuery, чтобы можно было обращаться к боту из любого чата и сразу же отсылать нужное сообщение.
Да, только в чате куда его добавили. В другом чате будут уже свои триггеры.
Инлайн мы тоже думали сделать, но не стали. Потому что в одном чатике можно работать работу, а в другом кекать с мемасов. Эти активности перемешивать было бы странно (по крайней мере мы так подумали)
Так вам ничего не мешает кекать или работать. Через поле ввода сообщения вы можете обращаться напрямую к конкретному боту через @ и выбирать нужную информацию, то есть в вашем "кекном" чате этот никак не будет отражаться, пока к нему не обратиться. Им можно воспользоваться в любом чате или группе, даже никуда не добавляя.
Возможно, мы о разном функционале говорим.
Нет, я понял о каком функционале вы говорите.
Просто мы решили вот на такой реализации остановиться. Возможно потом прикрутим инлайн. Но пока текущая конфигурация устраивает и переписывать не видим нужды.
Спасибо за комментарий в любом случае
https://docs.python-telegram-bot.org/en/v20.0a4/telegram.inline-tree.html
Я про этот режим говорю. Тут, правда, питон, но общее представление можно получить, наверное.
Буду рада глянуть на код. Спасибо.
А в инлайн он не умеет? Типа как @vid - поиск по Ютуб, попробуйте прикрутить, тогда он явно будет выигрывать по сравнению в тегами/закрепами
Конструктор триггеров в Telegram. Или как мы сделали простейшего, но полезного бота