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

Хорошо, тогда вопрос с азов, так сказать. Мне нужно поймать

любой текст пользователя и поместить в переменную, которая будет спользоваться в разных функциях=кнопках.
Машина состояний мне не не подходит, так как нет чёткого алгоритма, что и за чем запускать.
Колбэки мне не нужны так как только для инлайн клавы.
Глобальная переменная - вообще не вариант.
Тогда как запомнить переменную и передать от функции к функции, пока пользователь вновь не введён что-либо через буквенную Клаву?

17 ответов

16 просмотров

Если нет четкого алгоритма что и за чем запускать, как оно вообще должно работать? В случаях когда речь о передаче данных между между хэндлерами фсм хороший вариант

Jem- Автор вопроса
Fred Bernardo
Если нет четкого алгоритма что и за чем запускать,...

Чистый обработчик хэндлеров с командами. Просто команды разные могут быть. Ну, пример из из головы - вводит слово, нажимает ентр В ответ прилетает перевод на английский и несколько кнопок (команд) с предложением перевести на другие языки. Но можно нажимать в любой последовательности, сколько угодно раз. Пока он с клавиатуры не введёт новое слово. Тогда все сбрасывается на новое слово

Jem- Автор вопроса

Как вытащить в функции, то что он ввёл для перевода на английский?

Jem- Автор вопроса
Fred Bernardo
message.text))

Очень смешно 😂

Jem- Автор вопроса
Fred Bernardo
message.text))

Ясень пень input_from_user = message.text А как потом этот input_from_user передать в другие хэндлеры не прибегая к машине состояний или фабрике колбэков

Jem
Ясень пень input_from_user = message.text А как по...

Там где прининял то что нужно перевести делаешь: await state.update_data(to_translate=message.text) Там где нужно получить data = await state.get_data() to_translate = data['to_translate']

Fred Bernardo
Там где прининял то что нужно перевести делаешь: a...

Машина состояний инкапсулирует в себе работу со стореджем где ты можешь просто хранить данные и получать их там где тебе нужно

Jem- Автор вопроса
Fred Bernardo
Там где прининял то что нужно перевести делаешь: a...

Дэк это стэйт и машина состояний, которая предполагает последовательность. А у меня её нет

Jem- Автор вопроса
Fred Bernardo
Там где прининял то что нужно перевести делаешь: a...

а в аргументах функции указать state: State? или как функция поймет, что такое state

Jem- Автор вопроса
Fred Bernardo
Там где прининял то что нужно перевести делаешь: a...

пока не получилось, но мысль уловил. Спасибо. По крайней мере буду искать как в стэйтах просто передавать информацию, а не прыгать по шагам с информацией.

Jem- Автор вопроса
Fred Bernardo
Что не получилось?

Сложно сказать, завтра уточню. После удаления зуба голова не соображает 😂. Наркоз отходит

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

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

Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
И никого не интересует какие пакеты кто использует. ((% Заходишь на сайт симфони и видишь поддержку Украины - по законам РФ это ж экстремизм. Только никто не отказывается от с...
Am Ambrion
11
лучше скажите, причём тут паскаль?
Alexey Kulakov
36
Чтобы перехватить все нажимания буков на форме, надо хук ставить? Пробовал на форме ОнКейДаун, оно ловит клаву если фокус не на компоненте с вводом текста
Serjone
15
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
7
Народ! Впервые клиенту пришло письмо от РКН, у вас, дескать, есть яндекс метрика, а нигде не написано, что вы ее юзаете. Никто не сталкивался?
Sasha Beep
14
Всем привет! вывожу на общей стр дочерние ресурсыв каждом ресурсе галерея, и первая фотка должна выводиться на общей [!DocLister? &prepare=photo !]
Alekso
12
Я правильно понимаю что нет способов получить список ожидающих заявок на вступление в группу с помощью бота из mtproto?
Шамиль Прилов
7
А можно вопрос? Мне сегодня сказали что у меня функция (которая просто заполняет массив значениями) не правильная void Full(double * arr, int n) { for (int i = 0; i < n; i...
† C E †
7
Добрый вечер. Хочу чтобы у меня в классе поле было функцией, которая возвращает строку. Делаю так: interface ... TGetOutPath = function : String of object; ... protec...
Kirill Filippenok
12
Карта сайта