170 похожих чатов

Подскажите по телеграмм боту. Использую вот этот пакет https://github.com/tucnak/telebot Хочу реализовать штуку:

пользователь нажимает на кнопку загрузить файл и следующим сообщением юзер загружает файл. Вопрос в том, как реализовывается вот такой вот контекст. То есть юзер может загрузить файл только тогда, когда нажмет на кнопку "Загрузить файл", но в остальных случаях будет распознаваться как несуществующая команда.

Я так понимаю это нужно через fsm делать, но я не понимаю как вот эти контексты расписать. Есть какой-то пример, где вот такое реализовано ?

9 ответов

32 просмотра

как вариант: создайте несколько констант которые хранят типа "статус" и у вас будет статус "ждёт загрузки файлов" или "статус ждёт команды" и обрабатывайте свич кейсом

Web- Автор вопроса
Александр Костюченко
как вариант: создайте несколько констант которые х...

Хорошо, попробую. Еще вопрос. Лучше стейты хранит где-то по типу Redis или NoSql какая

Web
Хорошо, попробую. Еще вопрос. Лучше стейты хранит ...

в зависимости от размера бота и задач. У меня боты маленькие, храню в памяти просто какой-нибудь []Users{ID int64 Status string}

Web- Автор вопроса
Web- Автор вопроса
Web
И почему не мапа, а массив структур ?

храните как вам удобно в зависимости от задач

Web
Тут вопрос в том, что будет, если бот упадет

храните как вам удобно в зависимости от задач

Web
Хорошо, попробую. Еще вопрос. Лучше стейты хранит ...

В базе лучше хранить. Пример сцен без фреймворков тут https://github.com/vahter-robot/backend/blob/8f68e56285a342945318bbc1610117e67100588d/pkg/parent_bot/service.go#L288

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта