Add support for modrinth

This commit is contained in:
2021-12-19 23:42:31 -06:00
parent 0e578fd7d2
commit e350811b05
2 changed files with 87 additions and 9 deletions

View File

@@ -1,6 +1,10 @@
from os import error
from pytz.tzinfo import memorized_timedelta
import requests
debug = True
import datetime
import iso8601
import pytz
debug = False
if debug == True:
import logging
from requests import api
@@ -37,7 +41,7 @@ def getVersions(project):
return dataCache["getVersions"]
workingDict = modInfo(project)
versions = workingDict["versions"]
print(versions)
cacheData("getVersions", versions)
return versions
def getAllModVersionInfo(project):
@@ -54,10 +58,53 @@ def getAllModVersionInfo(project):
cacheData("getAllMinecraftVersionInfo", responseList)
return responseList
def determineLatestMinecraftVersion(project):
def determine(project, whatToDetermine):
modInfo = getAllModVersionInfo(project)
numberOfVersions = len(modInfo)
gameVersions = {}
#for item in range(numberOfVersions):
#gameVersions =
determine = []
for item in range(numberOfVersions):
workingDict = modInfo[item]
determine.append(workingDict[whatToDetermine])
#print(str(item)+" "+str(determine[item]))
return determine
def getLatestVersion(project):
versions = getVersions(project)
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):
convertTime = iso8601.parse_date(publishDates[item])
convertedDates[versions[item]] = convertTime
shortestDate = {}
for item in range(numberOfDates):
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 getDownloadURL(project, versionID):
versions = getVersions(project)
versionInfo = getAllModVersionInfo(project)
downloadURLs = {}
downloadSHA1 = {}
downloadFilenames = {}
# Iterate through the nested lists/dicts
for item in range(len(versions)):
workingDict = versionInfo[item]
#print("workingDict: "+str(workingDict))
workingList = workingDict["files"]
#print("workingList: "+str(workingList))
workingDict2 = workingList[0]
workingDict3 = workingDict2["hashes"]
#print(workingDict3)
downloadURLs[versions[item]] = workingDict2["url"]
downloadSHA1[versions[item]] = workingDict3["sha1"]
downloadFilenames[versions[item]] = workingDict2["filename"]
#print(downloadURLs)
return [downloadURLs[versionID], downloadSHA1[versionID], downloadFilenames[versionID]]