@ru_python

Страница 2875 из 9768
Vaderoff
24.05.2017
18:41:14
и прийдет сообщение с буквой

Jonathan ?
24.05.2017
18:41:14
он в нее кликнет же
Нигде об этом не сказано, может он просто выберет и все

Vaderoff
24.05.2017
18:41:44
но как мне проверить на какое именно сообщение пришел ответ от пользователя?

Google
Igor
24.05.2017
18:42:46
на какое именно - это тебе состояния для каждого юзера надо учитывать

сорри, не втичался

Stanislav
24.05.2017
18:42:52
но как мне проверить на какое именно сообщение пришел ответ от пользователя?
Например у яндекса в качестве разделителя запросов по групам используется смайлик в начале

И красиво и функционально

Igor
24.05.2017
18:43:08
машина состояний, все такое

можешь хоть дикт сделать - states[user_id] = "спросил у юзера хуйню №1" и на входящие сообщения смотреть states[user_id]. если "спросил у юзера хуйню №1", а он ответил "a", то сделать a().

Stanislav
24.05.2017
18:44:19
машина состояний, все такое
Вот кстати интересно, если будет дойуха пользователей, то как на бэке бота, который должен отвечать молниеносно хранить стейты

Igor
24.05.2017
18:44:52
да хоть редиска. чтоб не проебалось из памяти, если бот упадет. например

Stanislav
24.05.2017
18:45:03
БД
Да ясно, но по скорости надо оптимизировать

Igor
24.05.2017
18:45:03
сообщение. с текстом.

Google
Vaderoff
24.05.2017
18:45:20
АЛе

я понимаю что сообщение с текстом

Igor
24.05.2017
18:45:34
ну а в чем проблема тогда.

Rookie
24.05.2017
18:45:48
Он мне неприятен

Vaderoff
24.05.2017
18:46:08
Как мне проверить что ответ пришел на сообщение "выберите букву" , а не на сообщение "Скажите ваше имя" ?

Igor
24.05.2017
18:46:32
states = {} send_msg("скажите имя") states[user_id] = "спросил у юзера имя" send_msg("выберите букву") states[user_id] = "спросил у юзера букву" def incoming_message: if states[user_id] == "спросил у юзера имя": pass if states[user_id] == "спросил у юзера букву": print("юзер #{} выбрал букву {}".format(user_id, msg))

Rookie
24.05.2017
18:49:29
Хм. А интересненько стало накидать вложенную структуру по состояниям на n вилок по ответам)

Сергей
24.05.2017
18:50:23
https://core.telegram.org/bots/api#answercallbackquery

в доках всё есть, так сложно прочитать?

Igor
24.05.2017
18:51:11
еще лучше)

(сорри, я плохо шарю в бот апи)

Rookie
24.05.2017
18:51:35
Я в глаза не видел

Сергей
24.05.2017
18:51:38
не много нето, но где-то рядом

ща

Stanislav
24.05.2017
18:51:42
Понял спасибо
Это хуйня для примера только, не делай так на боевом сервере Читай про стейт машины ежжи

Google
Igor
24.05.2017
18:52:24
хотя если ботом пользуется полтора человека, не вижу в дикте ниче плохого %)

Сергей
24.05.2017
18:53:05
https://core.telegram.org/bots#inline-keyboards-and-on-the-fly-updating

тебе нужны Callback buttons

в ответ будет приходить callback_query вместо обычного теста https://core.telegram.org/bots/api#callbackquery

Vaderoff
24.05.2017
18:55:53
в ответ будет приходить callback_query вместо обычного теста https://core.telegram.org/bots/api#callbackquery
ага спс, но все равно, мне еще стейт машина нужна по идеи

Сергей
24.05.2017
18:56:22
сохранять состояние по любому где-то надо

но в случае с callback_query, если ничего не считаешь, то ничего дополнительно не надо, т.к. оно приходит отдельным типом.

Boris
24.05.2017
19:12:49
вшэ фкн пми
а в этом году соревнование по предсказанию доты на 3 курсе было на семинарах по ML :) и знаю несколько людей с курсачами по доте. а я по кс делаю

Aragaer
24.05.2017
19:14:08
В этом вашем вшэ занятия в бывшем миэме случаются?

... я уж не знаю, чего там и как переделали.

Boris
24.05.2017
19:15:35
в миэме занятия иногда случаются, а иногда не случаются :D

Aragaer
24.05.2017
19:16:33
я миэм заканчивал. Кафедру, которая называлась ЭВА, когда я там учился, переименована в ИКТ, когда я там был какое-то время аспирантом

Boris
24.05.2017
19:23:52
субъективно кажется что в миэме сидят деды, а на фкн все молодые

ну и темы исследований и предметы соответствующие

Eldar
24.05.2017
19:41:34
Aragaer
24.05.2017
19:43:02
это не знаю. У миэма два здания было - большой трехсвятительский (китай-город) и на павелецкой

Boris
24.05.2017
19:57:51
Aragaer
24.05.2017
19:58:07
угу

когда я поступал в миэм мы в какой-то газете читали, что он строится. Когда я заканчивал - еще ничего не было

Nikolay
24.05.2017
19:58:43
Че там чемпионат мира по спортивному программированию же идет

Google
Nikolay
24.05.2017
19:58:49
? пацаны ваще ребята

Через час резалты будут.

Boris
24.05.2017
19:58:58
в есть линк?

Vladislav
24.05.2017
19:59:12
zibada.ru/finals

или https://icpc.baylor.edu/scoreboard/

Nikolay
24.05.2017
19:59:24
https://www.youtube.com/watch?v=j3cjcPGhqUs

Admin
ERROR: S client not available

Vaderoff
24.05.2017
20:41:32
Я там выше спрашивал про машину состояний при работе с телегой, скажите я правильно понимаю логику? Как только юзер пишет '/start' моему боту, то я беру id этого пользователя и записываю его в бд ( id пользователя + состояние, допустим "start"), потом смотрю состояние, и если у этого юзера состояние "start", то я ему пишу сообщение и спрашиваю его имя, тем самым записывая в бд след состояние "registration" . Я правильно понял принцип машины состояний ?

Маришка
24.05.2017
20:44:55
Примерно

Vova
24.05.2017
20:49:57
Что за бота пишеш?

Скрудж
24.05.2017
20:57:05
где говно получается?
Состояния хранит в БД, ну

b0g3r
24.05.2017
20:57:20
Состояния хранит в БД, ну
А как ты предлагаешь?)

Vaderoff
24.05.2017
20:58:11
Состояния хранит в БД, ну
Json'ом в отдельном файлн чтоль?

Vova
24.05.2017
20:58:14
Состояния хранит в БД, ну
У меня тоже бот, я так же делал

b0g3r
24.05.2017
20:58:44
Так и не понял что говно - хранить состояния в бд, или что

Google
Скрудж
24.05.2017
20:59:10
Vaderoff
24.05.2017
20:59:39
Litesql какой-нибудь должен зайти

b0g3r
24.05.2017
20:59:39
нет, я ниче не понял из того что ты написал, поля какие-то, обработка запросов

обколются своими терминами, потом пытайся понять о чём они

Маришка
24.05.2017
21:00:00
Скулайт вполне подходит

Темпаче он умеет в памяти держать бдшку

Rookie
24.05.2017
21:00:42
Редис умеет на диск, когда надо

b0g3r
24.05.2017
21:00:44
Лично моя рекомендация не обрабатывать /start никаким специальным образом - просто получать сообщение, смотреть id-шник, вытаскивать состояние из базы и передавать сообщение на обработку согласно состоянию. А случай с первым сообщение от пользователя (/start) - когда в базе нет этого юзера ещё, а значит мы вместо вытаскивания - создаем пользователя в базе и прописываем ему стартовое состояние. А дальше - всё как и в обычном случае

Маришка
24.05.2017
21:01:10
а зачем оно здесь?
Просто написала, я не думаю

b0g3r
24.05.2017
21:01:17
А, ок

Rookie
24.05.2017
21:01:22
b0g3r
24.05.2017
21:02:02
Ну тогда всё у тебя ок с пониманием, а уж как стейты реализовать - каждый дрочит как хочет

функциями, классами, отдельной стейт-машиной с условиями

Маришка
24.05.2017
21:02:23
Енам

Страница 2875 из 9768