From 04dd202e1196678a0e36f75265e5e8650532b2cc Mon Sep 17 00:00:00 2001 From: Caleb Fontenot Date: Tue, 14 Dec 2021 18:09:16 -0600 Subject: [PATCH] WIP, API isn't fully implemented --- mcUp.py | 36 +++++++++++++++++++ parsers/__pycache__/paperMC.cpython-310.pyc | Bin 0 -> 1207 bytes parsers/paperMC.py | 38 ++++++++++++++++++++ 3 files changed, 74 insertions(+) create mode 100755 mcUp.py create mode 100644 parsers/__pycache__/paperMC.cpython-310.pyc create mode 100644 parsers/paperMC.py diff --git a/mcUp.py b/mcUp.py new file mode 100755 index 0000000..ae9d2c0 --- /dev/null +++ b/mcUp.py @@ -0,0 +1,36 @@ +#!/bin/python +# Setup Parser +import parsers.paperMC +import argparse +parser = argparse.ArgumentParser(description='A command-line tool to update a Minecraft Server.') +parser.add_argument('api', metavar='api', help='which API to use') +parser.add_argument('project', metavar='project', help='which project to query for') +parser.add_argument('action', metavar='action', help='what action to execute') +parser.add_argument('subAction', metavar='subAction', help='what sub action to execute') +args = parser.parse_args() +print("mcUp.py, written by Caleb Fontenot") + +# PaperMC command functions +def paperMC(project, action, subAction): + if action == "get": + if subAction == "versions": + print(parsers.paperMC.getVersions(project)) + elif subAction == "latest": + latestVersion = parsers.paperMC.getLatest(project) + buildNumber = parsers.paperMC.getBuildNumber(project, latestVersion) + print("Latest version of "+project+" is "+latestVersion+" build #"+str(buildNumber[-1])) + elif action == "download": + + + + + +#print(type(getVersionVelocity)) + +#print("Latest build of velocity is", parsers.paperMC.getLatest#("velocity")) + +# Determine which API to use: +if args.api == "paperMC": + paperMC(args.project, args.action, args.subAction) +else: + print("Error: Unknown API: "+args.api) \ No newline at end of file diff --git a/parsers/__pycache__/paperMC.cpython-310.pyc b/parsers/__pycache__/paperMC.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8b975d746f67b1935ef211b57c2121ec28952c4a GIT binary patch literal 1207 zcmZ8gOOMkq5cVT!(l%X|=du^H*B(eD;Diu@U0w&Mka!$?DQRp%O4(^p~nj|dD5*qsQQFtI@WAw8fADybup4NiVR>z`fjGmWQofPjIX z!4;S_ZFu}SL}n~LV^CZ7=oU;ed}Q5l=a2HwU}4FaS|&k9r#tEobITo>FVQ|2bPGVVMzf-nAgD%KbQhtG5FvyJJp^PJ1d$o8t~`yv;POxRUgga&w3`>GWFqsO~%o{DH)c|*7_+E7t-nqx`0JX}VofJWlo rv*)69aXY!fdy`7eN_8K9N^=7sB%Uji2yl~jXhd7ogD+%Z5P81=>(3PO literal 0 HcmV?d00001 diff --git a/parsers/paperMC.py b/parsers/paperMC.py new file mode 100644 index 0000000..1a6d241 --- /dev/null +++ b/parsers/paperMC.py @@ -0,0 +1,38 @@ +import requests +debug = False +if debug == True: + import logging + from requests import api + logging.basicConfig() + logging.getLogger().setLevel(logging.DEBUG) + requests_log = logging.getLogger("requests.packages.urllib3") + requests_log.setLevel(logging.DEBUG) + requests_log.propagate = True +timeoutTime = 1 +base_api_url = "https://papermc.io/api/v2" +# This function returns the versions from a project from the Paper API. +def getVersions(project): + print("Accessing "+base_api_url+"/projects/"+project+"...") + response = requests.get(base_api_url+"/projects/"+project, timeout=timeoutTime) + print("Status Code is: "+str(response.status_code)) + api_response = response.json() + return api_response['versions'] + +def getLatest(project): + versions = getVersions(project) + return versions[-1] + +def getBuildNumber(project, version): + response = requests.get(base_api_url+"/projects/"+project+"/versions/"+version, timeout=timeoutTime) + print("Status Code is: "+str(response.status_code)) + api_response = response.json() + return api_response['builds'] + +def getJarName(project, version): + + +def downloadVersion(project, version): + jarName = getJarName(project, version) + buildID = getBuildNumber(project, version) + response = requests.get(base_api_url+"/projects/"+project+"/versions/"+version+"/builds/"+buildID+"/downloads/"+jarName, timeout=timeoutTime) +