@ -7,7 +7,7 @@ import telebot
from sqlalchemy . future import Engine
from telebot . async_telebot import AsyncTeleBot
from . . import database , encryption , generate_password
from . . import db , encryption , generate_password
from . . account_checks import (
check_account ,
check_account_name ,
@ -20,7 +20,6 @@ from . import markups
from . helper_functions import (
base_handler ,
delete_message ,
escape ,
get_state ,
register_state ,
send_deleteable_message ,
@ -36,7 +35,7 @@ async def get_accounts(
mes : Message ,
) - > None :
await base_handler ( bot , mes )
accounts = database . get . get_accounts (
accounts = db . get . get_account_name s (
engine ,
mes . from_user . id ,
to_sort = True ,
@ -73,8 +72,8 @@ async def _delete_all2(
await base_handler ( 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 )
db . delete . purge_accounts ( engine , mes . from_user . id )
db . delete . delete_master_pass ( engine , mes . from_user . id )
await send_tmp_message (
bot ,
mes . chat . id ,
@ -95,7 +94,7 @@ async def set_master_password(
mes : Message ,
) - > None :
await base_handler ( bot , mes , None )
if database . get . get_master_pass ( engine , mes . from_user . id ) is not None :
if db . get . get_master_pass ( engine , mes . from_user . id ) is not None :
return await send_tmp_message (
bot ,
mes . chat . id ,
@ -120,7 +119,7 @@ async def _set_master_pass2(
mes . from_user . id ,
text ,
)
database . add . add_master_pass ( engine , master_password )
db . add . add_master_pass ( engine , master_password )
await send_tmp_message ( bot , mes . chat . id , " Успех " )
del mes , text
@ -134,7 +133,7 @@ async def reset_master_pass(
) - > None :
await base_handler ( bot , mes )
if database . get . get_master_pass ( engine , mes . from_user . id ) is None :
if db . get . get_master_pass ( engine , mes . from_user . id ) is None :
return await send_tmp_message (
bot ,
mes . chat . id ,
@ -165,8 +164,8 @@ async def _reset_master_pass2(
mes . from_user . id ,
text ,
)
database . delete . purge_accounts ( engine , mes . from_user . id )
database . change . change_master_pass ( engine , master_password )
db . delete . purge_accounts ( engine , mes . from_user . id )
db . change . change_master_pass ( engine , master_password )
await send_tmp_message (
bot , mes . chat . id , " В с е ваши аккаунты удалены, а мастер пароль изменён"
@ -178,7 +177,7 @@ async def _reset_master_pass2(
async def add_account ( bot : AsyncTeleBot , engine : Engine , mes : Message ) - > None :
await base_handler ( bot , mes )
master_password_from_db = database . get . get_master_pass (
master_password_from_db = db . get . get_master_pass (
engine ,
mes . from_user . id ,
)
@ -210,7 +209,7 @@ async def _add_account2(
mes . chat . id ,
" Н е корректное название аккаунта" ,
)
if text in database . get . get_accounts ( engine , mes . from_user . id ) :
if text in db . get . get_account_name s ( engine , mes . from_user . id ) :
return await send_tmp_message (
bot , mes . chat . id , " Аккаунт с таким именем уже существует "
)
@ -291,7 +290,7 @@ async def _add_account5(
if text == " /cancel " :
return await send_tmp_message ( bot , mes . chat . id , " Успешная отмена " )
master_password = database . get . get_master_pass ( engine , mes . from_user . id )
master_password = db . get . get_master_pass ( engine , mes . from_user . id )
if not encryption . master_pass . check_master_pass ( text , master_password ) :
return await send_tmp_message (
bot ,
@ -307,12 +306,9 @@ async def _add_account5(
password = data [ " passwd " ] ,
)
encrypted_account = encryption . accounts . encrypt (
account ,
text ,
)
encrypted_account = encryption . accounts . encrypt ( account , text )
result = database . add . add_account (
result = db . add . add_account (
engine ,
encrypted_account ,
)
@ -331,11 +327,11 @@ async def _add_account5(
async def get_account ( bot : AsyncTeleBot , engine : Engine , mes : Message ) - > None :
await base_handler ( bot , mes )
master_pass = database . get . get_master_pass ( engine , mes . from_user . id )
master_pass = db . get . get_master_pass ( engine , mes . from_user . id )
if master_pass is None :
return await send_tmp_message ( bot , mes . chat . id , " Нет мастер пароля " )
accounts = database . get . get_accounts (
accounts = db . get . get_account_name s (
engine ,
mes . from_user . id ,
to_sort = True ,
@ -358,7 +354,7 @@ async def _get_account2(
if text == " /cancel " :
return await send_tmp_message ( bot , mes . chat . id , " Успешная отмена " )
if text not in database . get . get_accounts ( engine , mes . from_user . id ) :
if text not in db . get . get_account_name s ( engine , mes . from_user . id ) :
return await send_tmp_message ( bot , mes . chat . id , " Нет такого аккаунта " )
bot_mes = await bot . send_message ( mes . chat . id , " Отправьте мастер пароль " )
@ -380,7 +376,7 @@ async def _get_account3(
if text == " /cancel " :
return await send_tmp_message ( bot , mes . chat . id , " Успешная отмена " )
master_password = database . get . get_master_pass (
master_password = db . get . get_master_pass (
engine ,
mes . from_user . id ,
)
@ -392,17 +388,14 @@ async def _get_account3(
" Н е подходит мастер пароль" ,
)
account = database . get . get_account_info ( engine , mes . from_user . id , name )
account = encryption . accounts . decrypt (
account ,
text ,
)
account = db . get . get_account_info ( engine , mes . from_user . id , name )
account = encryption . accounts . decrypt ( account , text )
await send_deleteable_message (
bot ,
mes . chat . id ,
f " Название: \n {escape ( account . name ) } \n "
f " Название: \n ` { account . name }` \n "
f " Логин: \n ` { account . login } ` \n Пароль: \n ` { account . password } ` \n Нажмите "
" на логин или пароль, чтобы скопировать " ,
" на название, логин или пароль, чтобы скопировать " ,
)
del text , mes
@ -416,11 +409,11 @@ async def delete_account(
) - > None :
await base_handler ( bot , mes )
master_pass = database . get . get_master_pass ( engine , mes . from_user . id )
master_pass = db . get . get_master_pass ( engine , mes . from_user . id )
if master_pass is None :
return await send_tmp_message ( bot , mes . chat . id , " Нет мастер пароля " )
accounts = database . get . get_accounts (
accounts = db . get . get_account_name s (
engine ,
mes . from_user . id ,
to_sort = True ,
@ -449,7 +442,7 @@ async def _delete_account2(
if text == " /cancel " :
return await send_tmp_message ( bot , mes . chat . id , " Успешная отмена " )
if text not in database . get . get_accounts ( engine , mes . from_user . id ) :
if text not in db . get . get_account_name s ( engine , mes . from_user . id ) :
return await send_tmp_message ( bot , mes . chat . id , " Нет такого аккаунта " )
bot_mes = await bot . send_message (
@ -476,7 +469,7 @@ async def _delete_account3(
if text != " YES " :
return await send_tmp_message ( bot , mes . chat . id , " Успешная отмена " )
database . delete . delete_account ( engine , mes . from_user . id , account_name )
db . delete . delete_account ( engine , mes . from_user . id , account_name )
await send_tmp_message ( bot , mes . chat . id , " Аккаунт удалён " )
@ -500,7 +493,7 @@ async def help_command(bot: AsyncTeleBot, mes: Message) -> None:
async def export ( bot : AsyncTeleBot , engine : Engine , mes : Message ) - > None :
await base_handler ( bot , mes )
master_password_from_db = database . get . get_master_pass (
master_password_from_db = db . get . get_master_pass (
engine ,
mes . from_user . id ,
)
@ -508,7 +501,7 @@ async def export(bot: AsyncTeleBot, engine: Engine, mes: Message) -> None:
if master_password_from_db is None :
return await send_tmp_message ( bot , mes . chat . id , " Нет мастер пароля " )
if not database . get . get_accounts ( engine , mes . from_user . id ) :
if not db . get . get_account_name s ( engine , mes . from_user . id ) :
return await send_tmp_message ( bot , mes . chat . id , " Нет аккаунтов " )
bot_mes = await bot . send_message ( mes . chat . id , " Отправьте мастер пароль " )
@ -524,7 +517,7 @@ async def _export2(
if text == " /cancel " :
return await send_tmp_message ( bot , mes . chat . id , " Успешная отмена " )
master_password = database . get . get_master_pass (
master_password = db . get . get_master_pass (
engine ,
mes . from_user . id ,
)
@ -535,7 +528,7 @@ async def _export2(
" Н е подходит мастер пароль" ,
)
accounts = database . get . get_all_ accounts ( engine , mes . from_user . id )
accounts = db . get . get_accounts ( engine , mes . from_user . id )
with ProcessPoolExecutor ( ) as pool :
loop = asyncio . get_running_loop ( )
tasks = [ ]
@ -565,7 +558,7 @@ async def import_accounts(
mes : Message ,
) - > None :
await base_handler ( bot , mes )
master_password_from_db = database . get . get_master_pass (
master_password_from_db = db . get . get_master_pass (
engine ,
mes . from_user . id ,
)
@ -633,7 +626,7 @@ async def _import3(
if text == " /cancel " :
return await send_tmp_message ( bot , mes . chat . id , " Успешная отмена " )
master_password = database . get . get_master_pass (
master_password = db . get . get_master_pass (
engine ,
mes . from_user . id ,
)
@ -651,20 +644,18 @@ async def _import3(
if not check_account ( account ) :
failed . append ( account . name )
continue
account = encryption . accounts . encrypt (
account ,
text ,
)
result = database . add . add_account ( engine , account )
account = encryption . accounts . encrypt ( account , text )
result = db . add . add_account ( engine , account )
if not result :
failed . append ( account . name )
if failed :
mes_text = " Н е удалось добавить:\n " + " \n " . join ( failed )
await send_deleteable_message (
bot , mes . chat . id , " Н е удалось добавить:\n " + " \n " . join ( failed )
)
else :
mes_text = " Успех "
await send_tmp_message ( bot , mes . chat . id , " Успех " )
await send_tmp_message ( bot , mes . chat . id , mes_text , 10 )
del text , mes , accounts
gc . collect ( )