You've already forked Travel-Agent
feat: Added redis as storage for states, improvements in docker compose, added /cancel command, small improvements
This commit is contained in:
+31
-14
@@ -1,12 +1,13 @@
|
||||
__all__ = ("RegistrationForm",)
|
||||
|
||||
from aiogram import Bot
|
||||
from aiogram.exceptions import TelegramBadRequest
|
||||
from aiogram.fsm.state import State, StatesGroup
|
||||
from aiogram.fsm.context import FSMContext
|
||||
from aiogram.fsm.state import State, StatesGroup
|
||||
|
||||
|
||||
class RegistrationForm(StatesGroup):
|
||||
previous_message = State()
|
||||
previous_message_id = State()
|
||||
username = State()
|
||||
age = State()
|
||||
bio = State()
|
||||
@@ -15,34 +16,50 @@ class RegistrationForm(StatesGroup):
|
||||
|
||||
|
||||
class UserAltering(StatesGroup):
|
||||
successfully = State()
|
||||
message_id = State()
|
||||
input_message = State()
|
||||
previous_message = State()
|
||||
column = State()
|
||||
value = State()
|
||||
message_id = State()
|
||||
input_message_id = State()
|
||||
previous_message_id = State()
|
||||
successfully = State()
|
||||
|
||||
|
||||
async def delete_message_from_state(state: FSMContext) -> None:
|
||||
async def delete_message_from_state(
|
||||
state: FSMContext,
|
||||
chat_id: int,
|
||||
bot: Bot | None,
|
||||
) -> None:
|
||||
if bot is None:
|
||||
return
|
||||
|
||||
data = await state.get_data()
|
||||
|
||||
if "previous_message" in data and data["previous_message"] is not None:
|
||||
if (
|
||||
"previous_message_id" in data
|
||||
and data["previous_message_id"] is not None
|
||||
):
|
||||
try:
|
||||
await data["previous_message"].delete()
|
||||
await bot.delete_message(
|
||||
message_id=data["previous_message_id"],
|
||||
chat_id=chat_id,
|
||||
)
|
||||
except TelegramBadRequest:
|
||||
pass
|
||||
|
||||
await state.update_data(previous_message=None)
|
||||
await state.update_data(previous_message_id=None)
|
||||
|
||||
if (
|
||||
"input_message" in data
|
||||
and data["input_message"] is not None
|
||||
"input_message_id" in data
|
||||
and data["input_message_id"] is not None
|
||||
and "successfully" in data
|
||||
and data["successfully"]
|
||||
):
|
||||
try:
|
||||
await data["input_message"].delete()
|
||||
await bot.delete_message(
|
||||
message_id=data["input_message_id"],
|
||||
chat_id=chat_id,
|
||||
)
|
||||
except TelegramBadRequest:
|
||||
pass
|
||||
|
||||
await state.update_data(info_message=None)
|
||||
await state.update_data(input_message_id=None)
|
||||
|
||||
Reference in New Issue
Block a user