Streamlining the login and token fetching process

This commit is contained in:
ClaytonWWilson 2018-07-13 09:15:59 -04:00
parent 07d3f1f960
commit d31e4d563e
4 changed files with 37 additions and 56 deletions

View File

@ -65,12 +65,6 @@ def refreshToken():
else:
print("You need to log in first. Select Login/Change login.\n")
def clearLogin():
try:
os.remove("login.json")
except Exception as e:
pass
def clearFolders(): # TODO implement this
folders = ["banner", "fanart", "poster"]
del_count = 0

View File

@ -4,7 +4,6 @@ from login import login
from actions import wait
from actions import clear_screen
from actions import clearFolders
from actions import clearLogin
from actions import refreshToken
from actions import update
from search import search
@ -39,7 +38,7 @@ while True:
wait()
elif choice == "3": # TODO if already logged in, ask 'are you sure?'
clear_screen() # TODO wait to clear login and add a ctrl+c option to cancel
clearLogin()
# clearLogin()
login()
wait()
# elif choice == "4": # TODO need to perform this option automatically

View File

@ -5,6 +5,7 @@ import datetime
import dateutil.parser
from actions import refreshToken
from checks import checkTimestamp
from checks import getToken
@ -14,57 +15,46 @@ def login():
obj.write("")
obj.close()
if os.stat("login.json").st_size == 0:# Will only ask for credentials if the login file is empty
login = {
"API_KEY": "",
"USER_KEY": "",
"USER_NAME": "",
"TOKEN": "",
"TIMESTAMP": ""
}
login = {
"API_KEY": "",
"USER_KEY": "",
"USER_NAME": "",
"TOKEN": "",
"TIMESTAMP": ""
}
tmp_api_key = ""
tmp_user_key = ""
tmp_user_name = ""
tmp_api_key = ""
tmp_user_key = ""
tmp_user_name = ""
print("You can find your user key & request an API key while logged in at:\nhttps://www.thetvdb.com/?tab=userinfo\n")
print("You can find your user key & request an API key while logged in at:\nhttps://www.thetvdb.com/?tab=userinfo\n")
while tmp_api_key is "":
tmp_api_key = input("Enter your api key: ")
while tmp_user_key is "":
tmp_user_key = input("Enter your user key: ")
while tmp_user_name is "":
tmp_user_name = input("Enter your username: ")
while tmp_api_key is "":
tmp_api_key = input("Enter your api key: ")
while tmp_user_key is "":
tmp_user_key = input("Enter your user key: ")
while tmp_user_name is "":
tmp_user_name = input("Enter your username: ")
LOGIN_DATA = {
"apikey": tmp_api_key,
"userkey": tmp_user_key,
"username": tmp_user_name
}
LOGIN_DATA = {
"apikey": tmp_api_key,
"userkey": tmp_user_key,
"username": tmp_user_name
}
tmp_token = getToken(LOGIN_DATA)
tmp_token = getToken(LOGIN_DATA)
if tmp_token is "":
print("\nAuthentication failed. Please try again.")
else:
login["API_KEY"] = tmp_api_key
login["USER_KEY"] = tmp_user_key
login["USER_NAME"] = tmp_user_name
login["TOKEN"] = tmp_token
login["TIMESTAMP"] = str(datetime.datetime.now().replace(tzinfo=None))
obj = open("login.json", "w")
obj.write(json.dumps(login))
obj.close()
print("\nLogin successful!\n")
else:# if login.json already exists
with open("login.json") as json_data:# TODO add a check for a login file that is damaged/modified
login = json.load(json_data)
json_data.close()
saveTime = dateutil.parser.parse(login["TIMESTAMP"])
curTime = datetime.datetime.now().replace(tzinfo=None)# TODO use UTC time?
if tmp_token is "":
print("\nAuthentication failed. Please try again.")
else:
login["API_KEY"] = tmp_api_key
login["USER_KEY"] = tmp_user_key
login["USER_NAME"] = tmp_user_name
login["TOKEN"] = tmp_token
login["TIMESTAMP"] = str(datetime.datetime.now().replace(tzinfo=None))
obj = open("login.json", "w")
obj.write(json.dumps(login))
obj.close()
print("\nLogin successful!\n")
if checkTimestamp(saveTime, curTime):# token does not need refreshed
print("token is good")
else:
refreshToken()
# TODO at startup, check token for validity and remove it if it is expired

View File

@ -27,8 +27,6 @@ def search():
saveTime = dateutil.parser.parse(login["TIMESTAMP"])
curTime = datetime.datetime.now().replace(tzinfo=None) # TODO use UTC time?
if checkTimestamp(saveTime, curTime) == False:
# print("Your token has expired. Get a new one by choosing Refresh Token.")
# return None
refreshToken()
except Exception as ex:
print(ex)