Skip to content

Commit

Permalink
Files are being saved only to AppData\Local
Browse files Browse the repository at this point in the history
Removed "data" folder, it's not needed.
  • Loading branch information
AnonymousX86 committed May 15, 2020
1 parent a707e9d commit 3574d64
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 26 deletions.
8 changes: 4 additions & 4 deletions python_password/utils/crypto.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

from cryptography.fernet import Fernet

from utils.files import file, Files, generate_salt
from utils.files import appdata, Files, generate_salt


def encrypt(text):
Expand All @@ -14,16 +14,16 @@ def encrypt(text):
:return: Encrypted text.
"""
try:
open(file(Files.beta_key))
open(appdata(Files.beta_key))
except FileNotFoundError:
generate_salt()
finally:
try:
open(file(Files.alpha_key))
open(appdata(Files.alpha_key))
except FileNotFoundError:
return None
else:
with open(file(Files.alpha_key), 'rb') as f:
with open(appdata(Files.alpha_key), 'rb') as f:
key = f.read()
f = Fernet(key)
return f.encrypt(text.encode())
Expand Down
8 changes: 4 additions & 4 deletions python_password/utils/database.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,14 @@

from kivy import Logger

from utils.files import file, Files, generate_appdata
from utils.files import appdata, Files, generate_appdata


def generate_sqlite():
"""Creates SQLite database."""
try:
generate_appdata()
open(file(Files.sqlite), 'x')
open(appdata(Files.sqlite), 'x')
except FileExistsError:
pass
else:
Expand All @@ -31,11 +31,11 @@ def query(q_input: str, q_args=None):
if q_args is None:
q_args = []
try:
open(file(Files.sqlite))
open(appdata(Files.sqlite))
except FileNotFoundError:
generate_sqlite()
finally:
with sqlite3.connect(file(Files.sqlite)) as conn:
with sqlite3.connect(appdata(Files.sqlite)) as conn:
my_cursor = conn.cursor()
try:
my_cursor.execute(q_input, q_args)
Expand Down
25 changes: 7 additions & 18 deletions python_password/utils/files.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,26 +11,15 @@ class Files:
sqlite = 'Passwords.db'


def file(filename: str, file_type='u'):
def appdata(filename: str):
"""
Add absolute path to file name.
Linking to user data in ~/AppData/Local/PyPassword or
program data directory next to ``.exe`` file.
Linking to user data in ~/AppData/Local/PyPassword/.
:param filename: File to access name.
:param file_type: Is file program or user related.
:return: Absolute path to file with specified name.
"""
Logger.trace(f'Files: Accessing {filename} file ({file_type} type)')

# Program files
if file_type == 'p':
return os.path.join(os.path.dirname(__file__), f'../PyPassword_data/{filename}')
# User files
elif file_type == 'u':
return os.path.join(os.path.dirname(__file__), f'{os.getenv("LOCALAPPDATA")}/PyPassword/{filename}')
else:
Logger.critical(f'Files: Tried to access file of unknown type')
raise NameError('That kind of files does not exist')
Logger.trace(f'Files: Accessing {filename} file')
return os.path.join(os.path.dirname(__file__),
f'{os.getenv("LOCALAPPDATA")}{os.sep}PyPassword{os.sep}{filename}')


def generate_appdata():
Expand All @@ -43,13 +32,13 @@ def generate_salt(preset=None):
"""Generates salt - Beta.key file."""
try:
generate_appdata()
open(file(Files.beta_key), 'x')
open(appdata(Files.beta_key), 'x')
except FileExistsError:
pass
else:
Logger.info(f'Structure: {Files.beta_key} file not found, creating it.')
finally:
custom_salt = os.urandom(16) if preset is None else preset
with open(file(Files.beta_key), 'wb') as f:
with open(appdata(Files.beta_key), 'wb') as f:
f.write(custom_salt)
Logger.info('Structure: Beta password changed.')

0 comments on commit 3574d64

Please sign in to comment.