
Евгений
07.10.2016
22:39:53
Раньше боялся этого, а ща минут за 15 сделал

Богдан
07.10.2016
22:45:15
+ бывает такое
Что боишься освоить что-то новое
А в итоге оказывается прост

Google

Богдан
07.10.2016
22:45:54
Я так свой фреймворк месяц писал
Пушо боялся готовых
Потом решил потыкать все таки и оказалось что все просто

Pavel
07.10.2016
23:22:39
Редиска вообще крутая вещь

Ramzes
07.10.2016
23:27:39
это такая жиза...
Я так свой фреймворк месяц писал
Пушо боялся готовых
Потом решил потыкать все таки и оказалось что все просто

Rocket
07.10.2016
23:52:28
А я таки написал
И доволен
Хотя не потому что другие не пошли
А потому что их тупо не было

Vitaly
07.10.2016
23:55:22

Google

Rocket
07.10.2016
23:55:32
А нету

Vitaly
07.10.2016
23:55:40
а, точно, забыл совсем )

Rocket
07.10.2016
23:56:03
Но в крадце так
Асинхронщина на торнаде
Внутри машина состояний

Vitaly
07.10.2016
23:57:24
Классика :)

Rocket
07.10.2016
23:57:33
И куча магии - делегат на делегате и делегатом погоняет
В итоге, реальную работу по вызову апи телеги делает одна функция. Остальные - обертки

Vitaly
07.10.2016
23:58:49
Жаль что нельзя посмотреть ?

Rocket
07.10.2016
23:59:09
Код уже не актуален, т.к. написан еще в то время, когда не было инлайнов
Терпеть нужно что-то еще круче, типа менеджера контекстов
Опять же, в существующих только намеки на это

Vitaly
08.10.2016
00:00:24
Так а фсм чем не менеджер контекстов?

Rocket
08.10.2016
00:00:39

Vitaly
08.10.2016
00:00:52
FSM - машина состояний

Rocket
08.10.2016
00:02:27
А, понял
Нет, машина состояний теперь не катит
Потому что появились инлайн, которые могут быть стейтлес, а могут быть и стейтфул
Смешанное поведение
Я столкнулся с классической проблемой многопоточности в однопоточном асинхронном приложении

Google

Rocket
08.10.2016
00:04:56
Один запрос еще выполняется, когда другой уже приехал

Vitaly
08.10.2016
00:04:56

Rocket
08.10.2016
00:05:07

Vitaly
08.10.2016
00:05:14
неправда )
это как делать )

Rocket
08.10.2016
00:05:43
У меня сейчас так и сделано, но есть куча исключительных ситуаций

Vitaly
08.10.2016
00:06:07
например?

Rocket
08.10.2016
00:06:13
Например, когда инлайн то зависит от контекста, а то не зависит
Например, у меня чат
Я там хочу сделать динамический список юзеров
Ну, со страницами
Страницы переключаются инлайн-кнопками. И очевидно, что это стейтлес запросы.

Vitaly
08.10.2016
00:07:28
ну так ты те коллбэки что для листалки пускай на уровень где у тебя состояние, а стейтлесс обрабатывай раньше

Rocket
08.10.2016
00:08:23
Но так же у меня есть и приватные сообщения. И я хочу сделать чтобы ответить на приватное сообщение можно было через инлайн кнопуу

Vitaly
08.10.2016
00:08:24
как цепочка обработчиков: динамически роутить апдейтов в зависимости от апдейта
IOC етить его мать!

Rocket
08.10.2016
00:08:29
Это уже стейтфул
И они должны работать одновременно

Vitaly
08.10.2016
00:09:02
а что мешает им вместе сейчас работать?

Rocket
08.10.2016
00:09:30
Для этого мне нужен не просто конечный автомат, а менеджер контекстрв
Он в конечном счёте тот же автомат, но с более высокой абстракцией

Google

Vitaly
08.10.2016
00:10:06
нет, конечный автомат просто должен быть необязательным, в зависимости от сообщения

Rocket
08.10.2016
00:10:38
Ну так и я об этом

Vitaly
08.10.2016
00:10:45

Rocket
08.10.2016
00:10:57
Часть запросов обрабатываться в любом контексте

Vitaly
08.10.2016
00:10:59
как у меня сделано

Rocket
08.10.2016
00:11:06
А часть, только в определенных
И любой обработчик может переключить контекст

Vitaly
08.10.2016
00:11:52
это все лишь вопрос уровня на котором ры роутишь сообщение по боту

Rocket
08.10.2016
00:12:02
Это можно и в рукопашную сделать

Vitaly
08.10.2016
00:12:10
просто у тебя будет микророутинг до машины состояний

Admin
ERROR: S client not available

Rocket
08.10.2016
00:12:18
У меня сейчас так и сделано
Но хочется красиво ?

Vitaly
08.10.2016
00:12:39
а что тут некрасивого?
ну я код не видел, но идея здравая

Rocket
08.10.2016
00:12:54
Куча взаимозависимого кода

Vitaly
08.10.2016
00:13:29
в подходе или у тебя? ))

Rocket
08.10.2016
00:13:50
В подходе
Грубо говоря, я сейчас переключаю хендлеры
А хочу переключать контекст, а о хендлерах позаботится менеджер

Google

Vitaly
08.10.2016
00:15:33
В чем принципиальная разница?

Rocket
08.10.2016
00:15:57
Хочу переключать состояние глобально

Vitaly
08.10.2016
00:16:14
Хочу не аргумент

Rocket
08.10.2016
00:16:39
Тоесть, не важно какой будет следующий запрос, менеджер позаботится об этом и вызовет нужный хендлер

Vitaly
08.10.2016
00:17:24
Ну так это немного кода )

Rocket
08.10.2016
00:17:27
Сейчас же я могу только переключить отдельный хендлер, который ловит стейтфул(message), а инлайны всегда сами по себе живут
Это работает, но не красиво

Vitaly
08.10.2016
00:18:03
В консерватории нужно что то менять )

Rocket
08.10.2016
00:18:31
Фреймворк написан под первые версии апи
И с тех пор внешние условия поменялись

Vitaly
08.10.2016
00:19:14
Ну так перепиши )
И в опенсорс
Будет о чем поспорить предметно )

Rocket
08.10.2016
00:19:56
До того как появились инлайны, он прекрасно решал свою задачу, был простой и красивый
Все запросы были стейтфул

Vitaly
08.10.2016
00:20:55
А какой сейчас норм фраймворк под питон?

Rocket
08.10.2016
00:21:13
Я юзаю только своё

Vitaly
08.10.2016
00:21:40
Понятно

Rocket
08.10.2016
00:21:49
Но telebot, имхо, не плох
Судя по докам

Vitaly
08.10.2016
00:22:23
Посмотрю счас

Rocket
08.10.2016
00:23:13
telepot
http://telepot.readthedocs.io/en/latest/