Наверное лучше во фриланс. На часть вопроса поможет библиотека asyncio. Вариантов реализации вопросов много (через callback, fsm и т.п.), но прям объяснить это нужно время.
API напрямую не позволяют этого сделать (насколько мне известно). А так, костылями, через API сервисов коротких ссылок или если есть свой домен самому подобное написать.
Если красиво - метод такого не предусматривает (насколько я успел разобраться). Нужно делать костыль. В голове варианта 3 уже прокрутил. Например один из это каждому состоянию добавить if меседж.текст == "Назад": вызов нужного хендлера и ручками в каждом состоянии написать какого (естественно без финиша FSM). Не думаю, что у вас 100500 состояний.
P.S. пока FSM не закрыт, данные, которые вы передали в state.proxy() будут "бегать" за вами почти всегда)
Берешь метод, который подсчитывает количество строк в sql в таблице USERS (к примеру).
Ну и дальше у тебя есть конечное число, думаю догадаешься как сделать )
AlexBooolla, если будет хранить только текст (а ТГ разрешает 4000 символов в 1 сообщении), то 4000х5 = 20 000. Берем 1 байт за символ. 20 мб максимум будет хранить один FSM. Да и я думаю, что столько тебе не нужно. Другое дело медиа.
Я думаю, что все происходит в асинхронном режиме у вас (надеюсь), то по сути никакой существенной нагрузки на сервер не даст. И опять же все зависит от вашего FSM. Если вы спросили у пользователя сколько ему лет и просто ждете ответ - нагрузки не будет. Если это к примеру последовательная запись больших данных, которое ваш код будет хранить в памяти до определенного действия пользователя, то тут другая история. Нужно видеть код :)
Например закрывать машину состояний если пользователь не активен 10 мин?
Ну тут нужен велосипед. Ведь API не дают информацию активен он или нет. Значит тебе нужно придумать логику этого действия. Самому стало интересно как поступить, сейчас подумаю)
Zura_aps, Если это происходит в чате (где много пользователей) то конечно можно, есть метод для удаления. Если в самом боте, то есть в личке с тобой, то нет. Даже сам телеграм не предусматривает удаление (удалить у всех). То есть даже если и ошибки метод не покажет, то у тебя (пользователя) ничего не удалится.
API телеграм этого не позволяют сделать никак. Да и сам телеграм позиционирует себя как мессенджер с максимальной защитой персональных данных от 3-их лиц. То, что хочешь ты - нарушает их политику конфиденциальности. То есть простыми методами этого не сделать. Тебе нужно стороннее ПО (на примере "запись экрана" на андройд), которое будет работать не с самим телеграм, а с действиями человека с аппаратом. Привязать к этому ПО телеграм и во время вызова запускать отдельно "захватчик" звука и голоса, связывать это со звонком, сохранятьи блаблаблабла.
Мыслей много - расписывать много, а я терминов особо не знаю и могу наговорить глупости, но скажу так, нужно писать много и с нуля, ничего готового или близко готового ты не найдешь (бесплатно) P.S хз почему я телеграм приплёл, почитай политику конфиденциальности и API viber и skipe и соотнеси))