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(
|
bot.register_message_handler(
|
||||||
functools.partial(handlers.help, bot), commands=["help", "start"]
|
functools.partial(handlers.help, bot), commands=["help", "start"]
|
||||||
)
|
)
|
||||||
|
bot.register_message_handler(
|
||||||
|
functools.partial(handlers.cancel, bot), commands=["cancel"]
|
||||||
|
)
|
||||||
return bot
|
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:
|
def _base(bot: telebot.TeleBot, mes: Message, prev_mes: Message | None = None) -> None:
|
||||||
bot.delete_message(mes.chat.id, mes.id)
|
bot.delete_message(mes.chat.id, mes.id)
|
||||||
if prev_mes is not None:
|
if prev_mes is not None:
|
||||||
bot.delete_message(prev_mes.chat.id, prev_mes.id)
|
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:
|
def set_master_password(bot: telebot.TeleBot, engine: Engine, mes: Message) -> None:
|
||||||
_base(bot, mes, None)
|
_base(bot, mes, None)
|
||||||
if database.get.get_master_pass(engine, mes.from_user.id) is not 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 - удалить все аккаунты и изменить мастер пароль
|
/reset_master_pass - удалить все аккаунты и изменить мастер пароль
|
||||||
/cancel - отмена текущего действия"""
|
/cancel - отмена текущего действия"""
|
||||||
bot.send_message(mes.chat.id, message)
|
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