Size: a a a

Javanese Questions

2020 August 06

А

Артёмка in Javanese Questions
Ааа
источник

А

Артёмка in Javanese Questions
Артём Карташов
Да, коробочных не видел, но реализовать своё проще же
Тоже интересно
источник

АК

Артём Карташов... in Javanese Questions
Создай объект пользователя, иквелс/хешкод, и объект сообщения, это всё в Map<User, TreeSet<ChatMSG>> вот тебе уже хранение в памяти, а трисет дает возможность ходить по сообщениям последовательно или брать первое/последние только
источник
2020 August 07

Н

Никита 🙃 in Javanese Questions
ID:0
Вы когда-нибудь разрабатывали Telegram-ботов?
Анонимный опрос
28%
Да, на JVM
18%
Да, на чём-то другом
54%
Неа
Проголосовало: 76
На Го писал. Всё просто и интересно
источник

Н

Никита 🙃 in Javanese Questions
Quantum Harmonizer
Не нужно хранить весь диалог. Нужно хранить текущее состояние, чтобы понимать контекст следующего сообщения.
Если юзеры хранятся в бд просто сохраняешь ему текущий статус 🙃
источник

QH

Quantum Harmonizer in Javanese Questions
Никита 🙃
Если юзеры хранятся в бд просто сохраняешь ему текущий статус 🙃
как-то нифига не просто :)
источник

QH

Quantum Harmonizer in Javanese Questions
вот пользователь находится в каком-то сценарии. На какие-то вопросы он ответил, какие-то ещё бот должен задать. Как это хранить?
источник

Н

Никита 🙃 in Javanese Questions
Яб сделал какие-то стейты флоу енамчиком и при получении сообщения юзера смотрел на текущее состояние - скармливал его фабрике состояний какой-то, в ней бы резолвилось как сохранить/обработать эти данные и возвращал новый Стейт с соотв сообщением
источник

Н

Никита 🙃 in Javanese Questions
Немного оверхед, но будет полный контроль за флоу - минимизация багов и потенциальных ошибок
источник

QH

Quantum Harmonizer in Javanese Questions
Никита 🙃
Яб сделал какие-то стейты флоу енамчиком и при получении сообщения юзера смотрел на текущее состояние - скармливал его фабрике состояний какой-то, в ней бы резолвилось как сохранить/обработать эти данные и возвращал новый Стейт с соотв сообщением
у энамов нет состояния. sealed class тогда уж
источник

Н

Никита 🙃 in Javanese Questions
Ну я имел ввиду что каждый элемент енамчика был бы статусом флоу) и потом через when() разные методы вызывать
источник

QH

Quantum Harmonizer in Javanese Questions
Никита 🙃
Ну я имел ввиду что каждый элемент енамчика был бы статусом флоу) и потом через when() разные методы вызывать
а где держать ответы на заданные ранее вопросы?
источник

Н

Никита 🙃 in Javanese Questions
Условно у юзера флоу поиска музыки:
Search_Music -> берём текст что юзер ввёл -> ищем результат, записываем в юзера статус search_result -> отправляем сообщение
источник

Н

Никита 🙃 in Javanese Questions
Quantum Harmonizer
а где держать ответы на заданные ранее вопросы?
В БД. Самый надёжный способ. Чтоб если код крашнулся, не потерять ничего
источник

QH

Quantum Harmonizer in Javanese Questions
Никита 🙃
В БД. Самый надёжный способ. Чтоб если код крашнулся, не потерять ничего
дак это было в условии задачи. Вопрос — как
источник

QH

Quantum Harmonizer in Javanese Questions
допустим
— хочу послушать нирвану
— угу, а какую песню?
(на этом месте бот должен помнить, что ему сейчас ответят название песни, а также какую группу запросили)
источник

Н

Никита 🙃 in Javanese Questions
Хмм. Отдельной таблицей answers c userId, answer, flow, action
Потом собирать по флоу ответы, по экшнам доставать результаты и после ответа, если надо - чистить
источник

Н

Никита 🙃 in Javanese Questions
"В лоб" решение слегка, но это достаточно надёжно будет, как мне кажется
источник

Н

Никита 🙃 in Javanese Questions
Я пытался текстовую РПГ сделать и при регистрации надо было указывать ник, класс, расу и ещё что то. Вот примерно так сделал. Правда потом я забил, т.к. оказалось что существует 100500 проектов и продумать флоу игры сложно и долго 🙃
источник

AD

Aleksey D. in Javanese Questions
Quantum Harmonizer
допустим
— хочу послушать нирвану
— угу, а какую песню?
(на этом месте бот должен помнить, что ему сейчас ответят название песни, а также какую группу запросили)
а нельзя просто в БД положить json-ом контекст?
источник