Deduplicate code in keyctl.py and add comments

This commit is contained in:
BBaoVanC 2020-09-04 19:44:46 -05:00
parent 9a117817f7
commit 805e545b39
No known key found for this signature in database
GPG Key ID: 6D74C8B0E7D791C2

View File

@ -12,34 +12,39 @@ import secrets
import string import string
def read_keyfile():
with open("uploadkeys", "r") as keyfile: # open uploadkeys
keys = keyfile.readlines() # read all the keys
logging.debug("Read uploadkeys")
keys = [x.strip("\n") for x in keys] # strip newlines from keys
logging.debug("Stripped newlines from keys")
return keys
def genkey(length): def genkey(length):
key = ''.join(secrets.choice(string.ascii_letters + string.digits) for x in range(length)) key = ''.join(secrets.choice(string.ascii_letters + string.digits) for x in range(length))
return key return key
def savekey(key): def savekey(key):
if not Path("uploadkeys").is_file(): if not Path("uploadkeys").is_file(): # if uploadkeys doesn't exist, log an info message
logging.info("uploadkeys file doesn't exist, it will be created.") logging.info("uploadkeys file doesn't exist, it will be created.")
with open("uploadkeys", "a+") as keyfile: with open("uploadkeys", "a+") as keyfile:
keyfile.write(str(key) + "\n") keyfile.write(str(key) + "\n") # add the key
logging.debug("Saved a key to uploadkeys: {0}".format(key)) logging.debug("Saved a key to uploadkeys: {0}".format(key))
def rmkey(delkey): def rmkey(delkey):
removedkey = False removedkey = False
with open("uploadkeys", "r") as keyfile: allkeys = read_keyfile()
allkeys = keyfile.readlines() if delkey in allkeys: # if the key to remove exists
logging.debug("Loaded all upload keys") allkeys.remove(delkey) # remove the first instance of the key
allkeys = [x.strip("\n") for x in allkeys]
logging.debug("Stripped keys")
if delkey in allkeys:
allkeys.remove(delkey)
removedkey = True removedkey = True
logging.debug("Removed one instance of the key") logging.debug("Removed one instance of the key")
with open("uploadkeys", "w") as keyfile: with open("uploadkeys", "w") as keyfile:
for k in allkeys: for k in allkeys:
keyfile.write(k + "\n") keyfile.write(k + "\n") # write the remaining keys
if removedkey: if removedkey:
return True return True
@ -48,11 +53,8 @@ def rmkey(delkey):
def find_duplicates(): def find_duplicates():
with open("uploadkeys", "r") as keyfile: allkeys = read_keyfile()
allkeys = keyfile.readlines()
logging.debug("Read all keys")
allkeys = [x.strip("\n") for x in allkeys]
logging.debug("Stripped newlines")
seen = set() seen = set()
ukeys = [] ukeys = []
dupkeys = [] dupkeys = []
@ -66,11 +68,7 @@ def find_duplicates():
def get_keys(): def get_keys():
with open("uploadkeys", "r") as keyfile: # load valid keys validkeys = read_keyfile()
validkeys = keyfile.readlines()
logging.debug("Read uploadkeys")
validkeys = [x.strip("\n") for x in validkeys]
logging.debug("Stripped newlines from validkeys")
while "" in validkeys: while "" in validkeys:
validkeys.remove("") validkeys.remove("")
logging.debug("Removed blank keys") logging.debug("Removed blank keys")
@ -85,7 +83,7 @@ def cmd_list(args):
for i in range(len(validkeys)): for i in range(len(validkeys)):
showkey = validkeys[i][:6] showkey = validkeys[i][:6]
if len(validkeys[i]) > 6: if len(validkeys[i]) > 6:
showkey += "..." showkey += "..." # add ellipses since the key was shortened in list
print(" [{0}] {1}".format(i+1, showkey)) print(" [{0}] {1}".format(i+1, showkey))
@ -121,10 +119,12 @@ def cmd_remove(args):
logging.info("No key was removed.") logging.info("No key was removed.")
def cmd_dedupe(args): def cmd_dedupe(args):
for d in find_duplicates(): dupes = find_duplicates()
r = rmkey(d) if len(dupes) > 0:
logging.debug(r) for d in dupes:
logging.info("Removed duplicate key: {0}".format(d)) r = rmkey(d)
logging.debug(r)
logging.info("Removed duplicate key: {0}".format(d))
else: else:
logging.info("[" + u"\u2713" + "] No duplicate keys found!") logging.info("[" + u"\u2713" + "] No duplicate keys found!")