Added cancel command

This commit is contained in:
StNicolay 2022-10-30 16:16:04 +03:00
parent 689de06782
commit 731893ad33
2 changed files with 38 additions and 12 deletions

View File

@ -31,3 +31,4 @@
- DB_PASS - пароль пользователя базы данных - DB_PASS - пароль пользователя базы данных
- DB_NAME - название базы данных - DB_NAME - название базы данных
- TG_TOKEN - токен телеграма, его следует указать в файле .env в формате TG_TOKEN={токен} - TG_TOKEN - токен телеграма, его следует указать в файле .env в формате TG_TOKEN={токен}
- /cancel - отмена текущего действия

View File

@ -60,10 +60,14 @@ def _set_master_pass2(
bot: telebot.TeleBot, engine: Engine, prev_mes: Message, mes: Message bot: telebot.TeleBot, engine: Engine, prev_mes: Message, mes: Message
) -> None: ) -> None:
_base(bot, mes, prev_mes) _base(bot, mes, prev_mes)
hash_, salt = cryptography.master_pass.encrypt_master_pass(mes.text.strip()) text = mes.text.strip()
if text == "/cancel":
return _send_tmp_message(bot, mes.chat.id, "Успешная отмена")
hash_, salt = cryptography.master_pass.encrypt_master_pass(text)
database.add.add_master_pass(engine, mes.from_user.id, salt, hash_) database.add.add_master_pass(engine, mes.from_user.id, salt, hash_)
_send_tmp_message(bot, mes.chat.id, "Успех") _send_tmp_message(bot, mes.chat.id, "Успех")
del mes del mes, text
gc.collect() gc.collect()
@ -81,13 +85,17 @@ def _reset_master_pass2(
bot: telebot.TeleBot, engine: Engine, prev_mes: Message, mes: Message bot: telebot.TeleBot, engine: Engine, prev_mes: Message, mes: Message
) -> None: ) -> None:
_base(bot, mes, prev_mes) _base(bot, mes, prev_mes)
hash_, salt = cryptography.master_pass.encrypt_master_pass(mes.text.strip()) text = mes.text.strip()
if text == "/cancel":
return _send_tmp_message(bot, mes.chat.id, "Успешная отмена")
hash_, salt = cryptography.master_pass.encrypt_master_pass(text)
database.delete.purge_accounts(engine, mes.from_user.id) database.delete.purge_accounts(engine, mes.from_user.id)
database.change.change_master_pass(engine, mes.from_user.id, salt, hash_) database.change.change_master_pass(engine, mes.from_user.id, salt, hash_)
_send_tmp_message( _send_tmp_message(
bot, mes.chat.id, "Все ваши аккаунты удалены, а мастер пароль изменён" bot, mes.chat.id, "Все ваши аккаунты удалены, а мастер пароль изменён"
) )
del mes del mes, text
gc.collect() gc.collect()
@ -109,17 +117,17 @@ def _add_account2(
bot: telebot.TeleBot, engine: Engine, prev_mes: Message, mes: Message bot: telebot.TeleBot, engine: Engine, prev_mes: Message, mes: Message
) -> None: ) -> None:
_base(bot, mes, prev_mes) _base(bot, mes, prev_mes)
text = mes.text.strip()
if text == "/cancel":
return _send_tmp_message(bot, mes.chat.id, "Успешная отмена")
if ( if text in database.get.get_accounts(engine, mes.from_user.id):
database.get.get_account_info(engine, mes.from_user.id, mes.text.strip())
is not None
):
return _send_tmp_message( return _send_tmp_message(
bot, mes.chat.id, "Аккаунт с таким именем уже существует" bot, mes.chat.id, "Аккаунт с таким именем уже существует"
) )
bot_mes = bot.send_message(mes.chat.id, "Отправьте логин") bot_mes = bot.send_message(mes.chat.id, "Отправьте логин")
data = {"name": mes.text.strip()} data = {"name": text}
bot.register_next_step_handler( bot.register_next_step_handler(
mes, functools.partial(_add_account3, bot, engine, bot_mes, data) mes, functools.partial(_add_account3, bot, engine, bot_mes, data)
@ -134,7 +142,11 @@ def _add_account3(
mes: Message, mes: Message,
) -> None: ) -> None:
_base(bot, mes, prev_mes) _base(bot, mes, prev_mes)
data["login"] = mes.text.strip() text = mes.text.strip()
if text == "/cancel":
return _send_tmp_message(bot, mes.chat.id, "Успешная отмена")
data["login"] = text
bot_mes = bot.send_message(mes.chat.id, "Отправьте пароль от аккаунта") bot_mes = bot.send_message(mes.chat.id, "Отправьте пароль от аккаунта")
@ -151,7 +163,11 @@ def _add_account4(
mes: Message, mes: Message,
) -> None: ) -> None:
_base(bot, mes, prev_mes) _base(bot, mes, prev_mes)
data["passwd"] = mes.text.strip() text = mes.text.strip()
if text == "/cancel":
return _send_tmp_message(bot, mes.chat.id, "Успешная отмена")
data["passwd"] = text
bot_mes = bot.send_message(mes.chat.id, "Отправьте мастер пароль") bot_mes = bot.send_message(mes.chat.id, "Отправьте мастер пароль")
@ -169,6 +185,8 @@ def _add_account5(
) -> None: ) -> None:
_base(bot, mes, prev_mes) _base(bot, mes, prev_mes)
text = mes.text.strip() text = mes.text.strip()
if text == "/cancel":
return _send_tmp_message(bot, mes.chat.id, "Успешная отмена")
salt, hash_ = database.get.get_master_pass(engine, mes.from_user.id) salt, hash_ = database.get.get_master_pass(engine, mes.from_user.id)
if cryptography.master_pass.encrypt_master_pass(text, salt) != hash_: if cryptography.master_pass.encrypt_master_pass(text, salt) != hash_:
@ -202,6 +220,8 @@ def _get_account2(
) -> None: ) -> None:
_base(bot, mes, prev_mes) _base(bot, mes, prev_mes)
text = mes.text.strip() text = mes.text.strip()
if text == "/cancel":
return _send_tmp_message(bot, mes.chat.id, "Успешная отмена")
if text not in database.get.get_accounts(engine, mes.from_user.id): if text not in database.get.get_accounts(engine, mes.from_user.id):
return _send_tmp_message(bot, mes.chat.id, "Нет такого аккаунта") return _send_tmp_message(bot, mes.chat.id, "Нет такого аккаунта")
@ -217,6 +237,8 @@ def _get_account3(
) -> None: ) -> None:
_base(bot, mes, prev_mes) _base(bot, mes, prev_mes)
text = mes.text.strip() text = mes.text.strip()
if text == "/cancel":
return _send_tmp_message(bot, mes.chat.id, "Успешная отмена")
master_pass = database.get.get_master_pass(engine, mes.from_user.id) master_pass = database.get.get_master_pass(engine, mes.from_user.id)
if master_pass is None: if master_pass is None:
@ -255,6 +277,8 @@ def _delete_account2(
) -> None: ) -> None:
_base(bot, mes, prev_mes) _base(bot, mes, prev_mes)
text = mes.text.strip() text = mes.text.strip()
if text == "/cancel":
return _send_tmp_message(bot, mes.chat.id, "Успешная отмена")
if text not in database.get.get_accounts(engine, mes.from_user.id): if text not in database.get.get_accounts(engine, mes.from_user.id):
return _send_tmp_message(bot, mes.chat.id, "Нет такого аккаунта") return _send_tmp_message(bot, mes.chat.id, "Нет такого аккаунта")
@ -271,5 +295,6 @@ def help(bot: telebot.TeleBot, mes: telebot.types.Message) -> None:
/get_account - получить логин и пароль аккаунта /get_account - получить логин и пароль аккаунта
/delete_account - удалить аккаунт /delete_account - удалить аккаунт
/delete_all - удалить все аккаунты и мастер пароль (Спать хочу -> подтверждения нету) /delete_all - удалить все аккаунты и мастер пароль (Спать хочу -> подтверждения нету)
/reset_master_pass- удалить все аккаунты и изменить мастер пароль""" /reset_master_pass - удалить все аккаунты и изменить мастер пароль
/cancel - отмена текущего действия"""
bot.send_message(mes.chat.id, message) bot.send_message(mes.chat.id, message)