passman/logics.py
2023-04-03 22:38:52 +04:00

78 lines
2.1 KiB
Python

def qr_share(site,login, password):
import qrcode
qr = qrcode.QRCode()
qr.add_data('site = '+site+' login = '+login+' password = '+password)
return(qr.print_ascii())
def qr_image(site,login, password,fg_color,bg_color):
import qrcode
qr = qrcode.QRCode()
qr.add_data('site = '+site+' login = '+login+' password = '+password)
try:
qr.make(fit=True)
except:
return False
img = qr.make_image(fill_color=fg_color, back_color=bg_color)
img.save("qr.png")
return True
def encrypt(fpassword):
import pyAesCrypt
pyAesCrypt.encryptFile('credentials', 'credentials.aes', fpassword)
import os
os.remove("./credentials")
def decrypt(fpassword):
import pyAesCrypt
pyAesCrypt.decryptFile('credentials.aes', 'credentials', fpassword)
import os
os.remove("./credentials.aes")
def read_info_file(fpassword):
info_list = []
try:
decrypt(fpassword)
with open('credentials', 'r') as f:
for string in f.readlines():
site = string.split('site: ')[1].split(' ')[0]
login = string.split('login: ')[1].split(' ')[0]
password = string.split('password: ')[1].split(' ')[0]
cur_time = string.split('date: ')[1].strip()
info_list.append((site, login, password, cur_time))
encrypt(fpassword)
except:
pass
return info_list
def write_to_file(site,login, password,fpassword):
try:
decrypt(fpassword)
except:
pass
from time import gmtime, strftime
cur_time=strftime("%Y-%m-%d %H:%M:%S", gmtime()).replace(" ","_")
with open('credentials', 'a') as f:
f.write('site: '+site+' login: '+login +' password: '+ password +' date: '+(cur_time) + "\n")
try:
encrypt(fpassword)
except:
pass
def rewrite_to_file(lst,fpassword):
try:
decrypt(fpassword)
with open('credentials', 'w') as f:
for i in lst:
f.write('site: '+i[0]+' login: '+i[1]+' password: '+i[2]+' date: '+i[3] + "\n")
encrypt(fpassword)
except:
pass
def edit_info_file(index,new_site,new_login,new_pas,fpassword):
lst=read_info_file(fpassword)
lst=list(map(list, lst))
lst[index][0]=new_site
lst[index][1]=new_login
lst[index][2]=new_pas
rewrite_to_file(lst,fpassword)