diff --git a/parsers/paperMC.py b/parsers/paperMC.py index ef72a05..dc8cedf 100644 --- a/parsers/paperMC.py +++ b/parsers/paperMC.py @@ -15,12 +15,20 @@ def failCheck(response): print("Status Code is: "+str(response.status_code)) if response.status_code != 200: raise error +# Data Caching +dataCache = {} +def cacheData(function_name, cached_data): + print("Caching data!") + dataCache[function_name] = cached_data # This function returns the versions from a project from the Paper API. def getVersions(project): print("Calling getVersions()...") + if "getVersions" in dataCache: + return dataCache["getVersions"] response = requests.get(base_api_url+"/projects/"+project, timeout=timeoutTime) failCheck(response) api_response = response.json() + cacheData("getVersions", api_response['versions']) return api_response['versions'] def getLatest(project): @@ -30,18 +38,24 @@ def getLatest(project): def getBuildNumber(project, version): print("Calling getBuildNumber()...") + if "getBuildNumber" in dataCache: + return dataCache["getBuildNumber"] response = requests.get(base_api_url+"/projects/"+project+"/versions/"+version, timeout=timeoutTime) failCheck(response) api_response = response.json() + cacheData("getBuildNumber", api_response['builds']) return api_response['builds'] def getBuildInfo(project, version): print("Calling getBuildInfo()...") + if "getBuildInfo" in dataCache: + return dataCache["getBuildInfo"] buildID1 = getBuildNumber(project, version) buildID = str(buildID1[-1]) response = requests.get(base_api_url+"/projects/"+project+"/versions/"+version+"/builds/"+buildID, timeout=timeoutTime) failCheck(response) api_response = response.json() + cacheData("getBuildInfo", api_response) return api_response def getJarInfo(project, version):