Added getLatestStable() to modrinth parser
This commit is contained in:
@@ -94,27 +94,51 @@ def determine(project, whatToDetermine):
|
||||
#print(str(item)+" "+str(determine[item]))
|
||||
return determine
|
||||
|
||||
def getLatestVersion(project):
|
||||
def getLatestVersion(project, **kwargs):
|
||||
print("Calling getLatestVersion()...")
|
||||
versions = getVersions(project)
|
||||
targetted_versions = kwargs.get('targetted_versions', None)
|
||||
if targetted_versions != None:
|
||||
versions = targetted_versions
|
||||
else:
|
||||
versions = getVersions(project)
|
||||
print(versions)
|
||||
publishDates = determine(project, "date_published")
|
||||
#print(publishDates)
|
||||
# Get current date
|
||||
currentDate = pytz.utc.localize(datetime.datetime.utcnow())
|
||||
#print(currentDate)
|
||||
convertedDates = {}
|
||||
numberOfDates = len(publishDates)
|
||||
for item in range(numberOfDates):
|
||||
numberOfVersions = len(versions)
|
||||
for item in range(numberOfVersions):
|
||||
convertTime = iso8601.parse_date(publishDates[item])
|
||||
convertedDates[versions[item]] = convertTime
|
||||
shortestDate = {}
|
||||
for item in range(numberOfDates):
|
||||
for item in range(numberOfVersions):
|
||||
shortestDate[versions[item]] = currentDate - convertedDates[versions[item]]
|
||||
#print(shortestDate)
|
||||
# Sort the dictionary to find the most recent version
|
||||
latest = {key: val for key, val in sorted(shortestDate.items(), key = lambda ele: ele[1])}
|
||||
return list(latest.keys())[0]
|
||||
|
||||
def getLatestStable(project):
|
||||
print("Calling getLatestStable()...")
|
||||
versions = getVersions(project)
|
||||
build_type = determine(project, "version_type")
|
||||
# Build a dictionary that ties the versions to the build type
|
||||
build_type_dict = {}
|
||||
number_of_versions = len(versions)
|
||||
for item in range(number_of_versions):
|
||||
build_type_dict[versions[item]] = build_type[item]
|
||||
print(build_type_dict)
|
||||
# Sort dictionary to filter out only the release builds
|
||||
stable = []
|
||||
for key, value in build_type_dict.items():
|
||||
if value == 'release':
|
||||
print(key)
|
||||
stable.append(key)
|
||||
# Call getLatestVersion, tell it to use our output
|
||||
return getLatestVersion(project, targetted_versions=stable)
|
||||
|
||||
def getDownloadURL(project, versionID):
|
||||
print("Calling getDownloadURL()...")
|
||||
versions = getVersions(project)
|
||||
|
Reference in New Issue
Block a user