UltraRazrab228, вот и надо найти, какой запрос делает этот refresh. Сам токен может лежать не в куках, а например в local storage, поэтому его так легко не видно.
Очевидно, помнить время последнего сообщения пользователя, и если через 5 минут нового не пришло - считать, что пользователь отвалился. Можно потыкать его палочкой^Wнапоминанием или просто понять и простить.
Nizier193, а нет ли там в description других тегов, кроме <p>? Тогда вполне логично, что их содержимое теряется. Кажется, вместо .text лучше использовать .get_text(), причём от всего контейнера с description.
KhinevichVladimir, FSM - это конечный автомат, система из состояний и переходов. Бот находится в базовом состоянии и ожидает команды, когда получает команду от пользователя - меняет состояние, благодаря чему следующим обработчиком выбирается конкретный. При этом в telebot понятие состояния ярко не выражено, а вот в других библиотеках (aiogram) состояния описываются более явно (обработчику можно задавать фильтр по состоянию, а вместо вызовов register_next_step_handler с указанием конкретного обработчика делается установка нового состояния).
Например, если мы спрашиваем у пользователя его возраст, то хотим, чтобы его ответ обработал не стандартный обработчик входящих текстовых сообщений, а какой-то отдельный, но только один раз и только для этого пользователя. В официальном примере как раз среди вопросов запрашивается возраст. Таким образом, можно делать весьма разветвлённые системы вопросов-ответов.
В случае с описанной задачей с фото обработчик должен по-разному отреагировать на один и тот же вид контента (фото) в зависимости от предыдущего действия.
Filipp42
На самом деле чтобы избежать диалектического материализма и всяческих единства и борьбы противоположностей, достаточно вместо учебника по гуманитарной логике взять учебник по математической. Потому что в математической логике противоположные утверждения не могут быть одновременно верны, а дизъюнкция не является проявлением классовой борьбы.
Да, это правильно делать один docker-compose.yml для разворачивания всего проекта сразу.
Если рядом лежит файл с именем .env, то он будет прочитан docker-compose и использован для всех сервисов в файле. Но эти переменные надо будет явно описать в секции environment каждого сервиса, как-то так:
tgarl, самая проблема не просто настроить DKIM на своём сервере, а ещё и договориться с владельцем домена site.ru чтобы он публичный ключ DKIM прописал в DNS.
etcshadow, вот когда можно будет взять готовое кем-то разработанное устройство и на php за полчаса его пропатчить - тогда и эмбеддеры-одиночки появятся. А пока - увы.