mirror of
https://github.com/ClaytonWWilson/Scraper-for-theTVDB.com.git
synced 2025-12-15 17:28:46 +00:00
Moved some methods to action.py and created refreshToken()
This commit is contained in:
parent
2c86a7ce8d
commit
96870d4198
@ -5,51 +5,6 @@ import os.path
|
|||||||
import shutil
|
import shutil
|
||||||
# import login
|
# import login
|
||||||
|
|
||||||
def getImages(idNum, keyType, authHeaders):
|
|
||||||
imageUrl = "https://api.thetvdb.com/series/" + str(idNum) + "/images/query" + keyType
|
|
||||||
response = requests.get(imageUrl, headers=authHeaders)
|
|
||||||
if (checkStatus(response, True)):
|
|
||||||
return response
|
|
||||||
else:
|
|
||||||
quit()
|
|
||||||
|
|
||||||
def downloadImages(imageType, respObj, idNum):# TODO some images arent grabbed through the api. save the image number and make a try catch to get any missing images
|
|
||||||
if (os.path.exists(imageType)):#TODO add try catch here
|
|
||||||
print("\nClearing /%s/" % imageType)
|
|
||||||
shutil.rmtree(imageType)
|
|
||||||
os.makedirs(imageType)
|
|
||||||
|
|
||||||
parsed_respObj = json.loads(respObj.content)
|
|
||||||
|
|
||||||
saveNameList = download(imageType, parsed_respObj)
|
|
||||||
|
|
||||||
searchRemainder(imageType, saveNameList, idNum)
|
|
||||||
|
|
||||||
def download(imageType, parsed_respObj):
|
|
||||||
counter = 0
|
|
||||||
saveNameList = []
|
|
||||||
for imageObj in parsed_respObj["data"]:
|
|
||||||
fileName = parsed_respObj["data"][counter]["fileName"]#TODO the download method should start here, move everything else up to downloadImages
|
|
||||||
counter = counter + 1
|
|
||||||
|
|
||||||
slashIndex = fileName.rfind("/")
|
|
||||||
saveName = fileName[slashIndex + 1:]
|
|
||||||
|
|
||||||
saveNameList.append(saveName)
|
|
||||||
|
|
||||||
print("Downloading... " + fileName)
|
|
||||||
dlUrl = "https://www.thetvdb.com/banners/" + fileName
|
|
||||||
response = requests.get(dlUrl)# TODO getting errors when checking 'new game'. Check to see if those images actually exist
|
|
||||||
|
|
||||||
if (checkStatus(response, True)):
|
|
||||||
path = os.path.join(imageType + "\\", saveName)
|
|
||||||
obj = open(path, "wb")
|
|
||||||
obj.write(response.content)
|
|
||||||
obj.close()
|
|
||||||
else:
|
|
||||||
quit()
|
|
||||||
return saveNameList
|
|
||||||
|
|
||||||
def searchRemainder(imageType, saveNameList, idNum):#Finds any images missing from the api call in getImages
|
def searchRemainder(imageType, saveNameList, idNum):#Finds any images missing from the api call in getImages
|
||||||
numbers = []
|
numbers = []
|
||||||
print("Checking for missing images...")#TODO implement this method
|
print("Checking for missing images...")#TODO implement this method
|
||||||
|
|||||||
47
actions.py
Normal file
47
actions.py
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
def refreshToken():
|
||||||
|
print("Not implemented yet")
|
||||||
|
|
||||||
|
def getImages(idNum, keyType, authHeaders):
|
||||||
|
imageUrl = "https://api.thetvdb.com/series/" + str(idNum) + "/images/query" + keyType
|
||||||
|
response = requests.get(imageUrl, headers=authHeaders)
|
||||||
|
if (checkStatus(response, True)):
|
||||||
|
return response
|
||||||
|
else:
|
||||||
|
quit()
|
||||||
|
|
||||||
|
def downloadImages(imageType, respObj, idNum):# TODO some images arent grabbed through the api. save the image number and make a try catch to get any missing images
|
||||||
|
if (os.path.exists(imageType)):#TODO add try catch here
|
||||||
|
print("\nClearing /%s/" % imageType)
|
||||||
|
shutil.rmtree(imageType)
|
||||||
|
os.makedirs(imageType)
|
||||||
|
|
||||||
|
parsed_respObj = json.loads(respObj.content)
|
||||||
|
|
||||||
|
saveNameList = download(imageType, parsed_respObj)
|
||||||
|
|
||||||
|
searchRemainder(imageType, saveNameList, idNum)
|
||||||
|
|
||||||
|
def download(imageType, parsed_respObj):
|
||||||
|
counter = 0
|
||||||
|
saveNameList = []
|
||||||
|
for imageObj in parsed_respObj["data"]:
|
||||||
|
fileName = parsed_respObj["data"][counter]["fileName"]#TODO the download method should start here, move everything else up to downloadImages
|
||||||
|
counter = counter + 1
|
||||||
|
|
||||||
|
slashIndex = fileName.rfind("/")
|
||||||
|
saveName = fileName[slashIndex + 1:]
|
||||||
|
|
||||||
|
saveNameList.append(saveName)
|
||||||
|
|
||||||
|
print("Downloading... " + fileName)
|
||||||
|
dlUrl = "https://www.thetvdb.com/banners/" + fileName
|
||||||
|
response = requests.get(dlUrl)# TODO getting errors when checking 'new game'. Check to see if those images actually exist
|
||||||
|
|
||||||
|
if (checkStatus(response, True)):
|
||||||
|
path = os.path.join(imageType + "\\", saveName)
|
||||||
|
obj = open(path, "wb")
|
||||||
|
obj.write(response.content)
|
||||||
|
obj.close()
|
||||||
|
else:
|
||||||
|
quit()
|
||||||
|
return saveNameList
|
||||||
3
login.py
3
login.py
@ -1,6 +1,7 @@
|
|||||||
import json
|
import json
|
||||||
import os.path
|
import os.path
|
||||||
from checks import *
|
from checks import *
|
||||||
|
from actions import *
|
||||||
import datetime
|
import datetime
|
||||||
import dateutil.parser
|
import dateutil.parser
|
||||||
|
|
||||||
@ -60,6 +61,6 @@ def login():
|
|||||||
if checkTimestamp(saveTime, curTime):# token does not need refreshed
|
if checkTimestamp(saveTime, curTime):# token does not need refreshed
|
||||||
print("token is good")
|
print("token is good")
|
||||||
else:
|
else:
|
||||||
print("token needs refreshed")
|
refreshToken()
|
||||||
# TODO try to get token, if token fails, ask for login info again, if it passes save login details to login.py and save token with timestamp.
|
# TODO try to get token, if token fails, ask for login info again, if it passes save login details to login.py and save token with timestamp.
|
||||||
# TODO at startup, check token for validity and remove it if it is expired
|
# TODO at startup, check token for validity and remove it if it is expired
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user