122 lines
3.4 KiB
Python
122 lines
3.4 KiB
Python
import os
|
|
import sys
|
|
scriptdir=os.path.abspath(__file__)
|
|
try:
|
|
paths=scriptdir.removesuffix('\logics.py')
|
|
credpath=paths+"\credentials"
|
|
credpathenc=paths+'\credentials.aes'
|
|
assert os.path.isdir(direct), 'You fucked bro'
|
|
|
|
|
|
except:
|
|
paths=scriptdir.removesuffix('/logics.py')
|
|
credpath=paths+"/credentials"
|
|
credpathenc=paths+'/credentials.aes'
|
|
|
|
sys.path.append(paths)
|
|
|
|
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(credpath, credpathenc, fpassword)
|
|
import os
|
|
os.remove(credpath)
|
|
def decrypt(fpassword):
|
|
import pyAesCrypt
|
|
pyAesCrypt.decryptFile(credpathenc, credpath, fpassword)
|
|
import os
|
|
os.remove(credpathenc)
|
|
|
|
|
|
def read_info_file(fpassword):
|
|
info_list = []
|
|
try:
|
|
decrypt(fpassword)
|
|
with open('credentials', 'r',encoding="utf-8") 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(credpath, '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(credpath, '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)
|
|
|
|
def importcsv(file,fpassword):
|
|
import csv
|
|
from datetime import datetime
|
|
with open(file, newline='') as csvfile:
|
|
reader = csv.DictReader(csvfile)
|
|
for row in reader:
|
|
site,login,password=row['url'], row['username'], row['password']
|
|
try:
|
|
time=int(row["timeCreated"][:-3:])
|
|
time=datetime.utcfromtimestamp(time).strftime("%Y-%m-%d %H:%M:%S").replace(" ","_")
|
|
write_to_file(site,login, password,fpassword,cur_time=time)
|
|
except:
|
|
write_to_file(site,login,password,fpassword)
|
|
|
|
def exportFF(fpassword):
|
|
|
|
lst=read_info_file(fpassword)
|
|
lst=list(map(list, lst))
|
|
import csv
|
|
with open('logins.csv', 'w', newline='') as csvfile:
|
|
fieldnames = ['url', 'username','password']
|
|
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
|
|
writer.writeheader()
|
|
for i in lst:
|
|
writer.writerow({'url': "https://"+i[0], 'username': i[1],"password": i[2]})
|
|
|