Added conformation for deleting all, added cacel command for the case, when there is no active action
This commit is contained in:
parent
731893ad33
commit
88d51785ed
@ -38,4 +38,7 @@ def create_bot(token: str, engine: mariadb.Connection) -> telebot.TeleBot:
|
||||
bot.register_message_handler(
|
||||
functools.partial(handlers.help, bot), commands=["help", "start"]
|
||||
)
|
||||
bot.register_message_handler(
|
||||
functools.partial(handlers.cancel, bot), commands=["cancel"]
|
||||
)
|
||||
return bot
|
||||
|
@ -32,20 +32,38 @@ def get_accounts(
|
||||
)
|
||||
|
||||
|
||||
def delete_all(
|
||||
bot: telebot.TeleBot, engine: Engine, mes: telebot.types.Message
|
||||
) -> None:
|
||||
database.delete.purge_accounts(engine, mes.from_user.id)
|
||||
database.delete.delete_master_pass(engine, mes.from_user.id)
|
||||
bot.send_message(mes.chat.id, "Все ваши данные удалены из базы данных")
|
||||
|
||||
|
||||
def _base(bot: telebot.TeleBot, mes: Message, prev_mes: Message | None = None) -> None:
|
||||
bot.delete_message(mes.chat.id, mes.id)
|
||||
if prev_mes is not None:
|
||||
bot.delete_message(prev_mes.chat.id, prev_mes.id)
|
||||
|
||||
|
||||
def delete_all(
|
||||
bot: telebot.TeleBot, engine: Engine, mes: telebot.types.Message
|
||||
) -> None:
|
||||
_base(bot, mes)
|
||||
bot_mes = bot.send_message(
|
||||
mes.chat.id,
|
||||
"Вы действительно хотите удалить все ваши аккаунты? Это действие нельзя отменить. Отправьте YES для подтверждения",
|
||||
)
|
||||
bot.register_next_step_handler(
|
||||
mes, functools.partial(_delete_all, bot, engine, bot_mes)
|
||||
)
|
||||
|
||||
|
||||
def _delete_all(
|
||||
bot: telebot.TeleBot, engine: Engine, prev_mes: Message, mes: Message
|
||||
) -> None:
|
||||
_base(bot, mes, prev_mes)
|
||||
text = mes.text.strip()
|
||||
if text == "YES":
|
||||
database.delete.purge_accounts(engine, mes.from_user.id)
|
||||
database.delete.delete_master_pass(engine, mes.from_user.id)
|
||||
_send_tmp_message(bot, mes.chat.id, "Всё успешно удалено", timeout=10)
|
||||
else:
|
||||
_send_tmp_message(bot, mes.chat.id, "Вы отправили не YES, ничего не удалено")
|
||||
|
||||
|
||||
def set_master_password(bot: telebot.TeleBot, engine: Engine, mes: Message) -> None:
|
||||
_base(bot, mes, None)
|
||||
if database.get.get_master_pass(engine, mes.from_user.id) is not None:
|
||||
@ -298,3 +316,7 @@ def help(bot: telebot.TeleBot, mes: telebot.types.Message) -> None:
|
||||
/reset_master_pass - удалить все аккаунты и изменить мастер пароль
|
||||
/cancel - отмена текущего действия"""
|
||||
bot.send_message(mes.chat.id, message)
|
||||
|
||||
|
||||
def cancel(bot: telebot.TeleBot, mes: Message) -> None:
|
||||
_send_tmp_message(bot, mes.chat.id, "Нет активного действия")
|
||||
|
Reference in New Issue
Block a user