Add support for modrinth
This commit is contained in:
@@ -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]]
|
||||
|
Reference in New Issue
Block a user