From 0bac45d478976f97ffc0a973b3c6ae0853185f8c Mon Sep 17 00:00:00 2001 From: Neocky Date: Sat, 2 Jul 2022 19:21:14 +0200 Subject: [PATCH] Renamed main file and removed old src --- old_src/__init__.py | 0 old_src/__main__.py | 16 - old_src/config.ini | 26 -- old_src/handlers/__init__.py | 0 old_src/handlers/handle_config.py | 91 ----- old_src/handlers/handle_ftp.py | 117 ------ old_src/handlers/handle_input.py | 105 ------ old_src/handlers/handle_sftp.py | 107 ------ old_src/plugin/__init__.py | 0 old_src/plugin/plugin_downloader.py | 155 -------- old_src/plugin/plugin_remover.py | 59 --- old_src/plugin/plugin_updatechecker.py | 482 ------------------------- old_src/serverjar/__init__.py | 0 old_src/serverjar/serverjar_checker.py | 114 ------ old_src/serverjar/serverjar_paper.py | 218 ----------- old_src/utils/__init__.py | 0 old_src/utils/consoleoutput.py | 89 ----- old_src/utils/utilities.py | 175 --------- old_src/utils/web_request.py | 9 - src/plugin/plugin_updatechecker.py | 5 +- 20 files changed, 3 insertions(+), 1765 deletions(-) delete mode 100644 old_src/__init__.py delete mode 100644 old_src/__main__.py delete mode 100644 old_src/config.ini delete mode 100644 old_src/handlers/__init__.py delete mode 100644 old_src/handlers/handle_config.py delete mode 100644 old_src/handlers/handle_ftp.py delete mode 100644 old_src/handlers/handle_input.py delete mode 100644 old_src/handlers/handle_sftp.py delete mode 100644 old_src/plugin/__init__.py delete mode 100644 old_src/plugin/plugin_downloader.py delete mode 100644 old_src/plugin/plugin_remover.py delete mode 100644 old_src/plugin/plugin_updatechecker.py delete mode 100644 old_src/serverjar/__init__.py delete mode 100644 old_src/serverjar/serverjar_checker.py delete mode 100644 old_src/serverjar/serverjar_paper.py delete mode 100644 old_src/utils/__init__.py delete mode 100644 old_src/utils/consoleoutput.py delete mode 100644 old_src/utils/utilities.py delete mode 100644 old_src/utils/web_request.py diff --git a/old_src/__init__.py b/old_src/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/old_src/__main__.py b/old_src/__main__.py deleted file mode 100644 index 77a4580..0000000 --- a/old_src/__main__.py +++ /dev/null @@ -1,16 +0,0 @@ -from utils.consoleoutput import consoleTitle, clearConsole, printMainMenu -from utils.utilities import check_requirements -from handlers.handle_input import createInputLists, getInput -from handlers.handle_config import checkConfig - - -def mainFunction(): - consoleTitle() - clearConsole() - checkConfig() - check_requirements() - createInputLists() - printMainMenu() - getInput() - -mainFunction() diff --git a/old_src/config.ini b/old_src/config.ini deleted file mode 100644 index 3446c0b..0000000 --- a/old_src/config.ini +++ /dev/null @@ -1,26 +0,0 @@ -[General] -; = If a local plugin folder exists (True/False) (If False SFTP/FTP will be used): -uselocalpluginfolder = True - -[Local - This Machine] -pathtopluginfolder = C:/Users/USER/Desktop/plugins -; = For a different folder to store the updated plugins change to (True/False) and the path below -seperatedownloadpath = False -pathtoseperatedownloadpath = C:/Users/USER/Desktop/plugins - -[SFTP - Remote Server] -server = 0.0.0.0 -username = user -password = password -; = If a different Port for SFTP needs to be used (Default: 22) -sftpport = 22 -;_ = If a different Port for FTP needs to be used (Default: 21) -ftpport = 21 -;__ = Change the path below if the plugin folder path is different on the SFTP/FTP server (Change only if you know what you are doing) -pluginfolderonserver = /plugins -;___ = If you want to use FTP instead of SFTP change to (False) else use (True) -use_sftp = True -;____ = For a different folder to store the updated plugins (Only with the update command!) change to (True/False) and the path below -seperatedownloadpath = False -pathtoseperatedownloadpath = /plugins - diff --git a/old_src/handlers/__init__.py b/old_src/handlers/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/old_src/handlers/handle_config.py b/old_src/handlers/handle_config.py deleted file mode 100644 index b9a959b..0000000 --- a/old_src/handlers/handle_config.py +++ /dev/null @@ -1,91 +0,0 @@ -import os -import sys -import configparser -from pathlib import Path - -from utils.consoleoutput import oColors - - -class configurationValues: - def __init__(self): - config = configparser.ConfigParser() - config.sections() - config.read("config.ini") - localPluginFolder = config['General']['UseLocalPluginFolder'] - self.pathToPluginFolder = Path(config['Local - This Machine']['PathToPluginFolder']) - seperateDownloadPath = config['Local - This Machine']['SeperateDownloadPath'] - self.pathToSeperateDownloadPath = Path(config['Local - This Machine']['PathToSeperateDownloadPath']) - - self.sftp_server = config['SFTP - Remote Server']['Server'] - self.sftp_user = config['SFTP - Remote Server']['Username'] - self.sftp_password = config['SFTP - Remote Server']['Password'] - sftp_port = config['SFTP - Remote Server']['SFTPPort'] - ftp_port = config['SFTP - Remote Server']['FTPPort'] - self.sftp_folderPath = config['SFTP - Remote Server']['PluginFolderOnServer'] - sftp_useSftp = config['SFTP - Remote Server']['USE_SFTP'] - sftp_seperateDownloadPath = config['SFTP - Remote Server']['SeperateDownloadPath'] - self.sftp_pathToSeperateDownloadPath = config['SFTP - Remote Server']['PathToSeperateDownloadPath'] - - self.sftp_port = int(sftp_port) - self.ftp_port = int(ftp_port) - if localPluginFolder == 'True': - self.localPluginFolder = True - else: - self.localPluginFolder = False - - if seperateDownloadPath == 'True': - self.seperateDownloadPath = True - else: - self.seperateDownloadPath = False - - if sftp_seperateDownloadPath == 'True': - self.sftp_seperateDownloadPath = True - else: - self.sftp_seperateDownloadPath = False - - if sftp_useSftp == 'True': - self.sftp_useSftp = True - else: - self.sftp_useSftp = False - - -def checkConfig(): - configAvailable = os.path.isfile("config.ini") - if not configAvailable: - createConfig() - print(oColors.brightRed + "Config created. Edit config before executing again!" + oColors.standardWhite) - input("Press any key + enter to exit...") - sys.exit() - - -def createConfig(): - config = configparser.ConfigParser(allow_no_value=True) - config['General'] = {} - config['General'][';'] = 'If a local plugin folder exists (True/False) (If False SFTP/FTP will be used):' - config['General']['UseLocalPluginFolder'] = 'True' - - config['Local - This Machine'] = {} - config['Local - This Machine']['PathToPluginFolder'] = 'C:/Users/USER/Desktop/plugins' - config['Local - This Machine'][';'] = 'For a different folder to store the updated plugins change to (True/False) and the path below' - config['Local - This Machine']['SeperateDownloadPath'] = 'False' - config['Local - This Machine']['PathToSeperateDownloadPath'] = 'C:/Users/USER/Desktop/plugins' - - config['SFTP - Remote Server'] = {} - config['SFTP - Remote Server']['Server'] = '0.0.0.0' - config['SFTP - Remote Server']['Username'] = 'user' - config['SFTP - Remote Server']['Password'] = 'password' - config['SFTP - Remote Server'][';'] = 'If a different Port for SFTP needs to be used (Default: 22)' - config['SFTP - Remote Server']['SFTPPort'] = '22' - config['SFTP - Remote Server'][';_'] = 'If a different Port for FTP needs to be used (Default: 21)' - config['SFTP - Remote Server']['FTPPort'] = '21' - config['SFTP - Remote Server'][';__'] = 'Change the path below if the plugin folder path is different on the SFTP/FTP server (Change only if you know what you are doing)' - config['SFTP - Remote Server']['PluginFolderOnServer'] = '/plugins' - config['SFTP - Remote Server'][';___'] = 'If you want to use FTP instead of SFTP change to (False) else use (True)' - config['SFTP - Remote Server']['USE_SFTP'] = 'True' - config['SFTP - Remote Server'][';____'] = 'For a different folder to store the updated plugins (Only with the update command!) change to (True/False) and the path below' - config['SFTP - Remote Server']['SeperateDownloadPath'] = 'False' - config['SFTP - Remote Server']['PathToSeperateDownloadPath'] = '/plugins' - - - with open('config.ini', 'w') as configfile: - config.write(configfile) diff --git a/old_src/handlers/handle_ftp.py b/old_src/handlers/handle_ftp.py deleted file mode 100644 index f1ab4cf..0000000 --- a/old_src/handlers/handle_ftp.py +++ /dev/null @@ -1,117 +0,0 @@ -import os -import sys -import ftplib -import stat -import re - -from utils.consoleoutput import oColors -from handlers.handle_config import configurationValues - - -def createFTPConnection(): - configValues = configurationValues() - try: - ftp = ftplib.FTP() - ftp.connect(configValues.sftp_server, configValues.ftp_port) - ftp.login(configValues.sftp_user, configValues.sftp_password) - return ftp - except UnboundLocalError: - print(oColors.brightRed + "[FTP]: Check your config.ini!" + oColors.standardWhite) - print(oColors.brightRed + "Exiting program..." + oColors.standardWhite) - sys.exit() - - -def ftp_showPlugins(ftp): - configValues = configurationValues() - ftp.cwd(configValues.sftp_folderPath) - for attr in ftp.dir(): - print(attr.filename, attr) - - -def ftp_upload_file(ftp, itemPath): - configValues = configurationValues() - if configValues.sftp_seperateDownloadPath is True: - uploadFolderPath = configValues.sftp_pathToSeperateDownloadPath - else: - uploadFolderPath = configValues.sftp_folderPath - try: - ftp.cwd(uploadFolderPath) - itemPath = os.path.relpath(itemPath, 'TempSFTPFolder/') - itemPath = str(itemPath) - currentDirectory = os.getcwd() - os.chdir('TempSFTPFolder') - with open (itemPath, 'rb') as plugin_file: - ftp.storbinary('STOR '+ str(itemPath), plugin_file) - except FileNotFoundError: - print(oColors.brightRed + "[FTP]: The 'plugins' folder couldn*t be found on the remote host!" + oColors.standardWhite) - print(oColors.brightRed + "[FTP]: Aborting uploading." + oColors.standardWhite) - os.chdir(currentDirectory) - ftp.close() - - -def ftp_upload_server_jar(ftp, itemPath): - try: - ftp.cwd('.') - itemPath = os.path.relpath(itemPath, 'TempSFTPFolder/') - itemPath = str(itemPath) - currentDirectory = os.getcwd() - os.chdir('TempSFTPFolder') - with open (itemPath, 'rb') as server_jar: - ftp.storbinary('STOR '+ str(itemPath), server_jar) - except FileNotFoundError: - print(oColors.brightRed + "[FTP]: The 'root' folder couldn*t be found on the remote host!" + oColors.standardWhite) - print(oColors.brightRed + "[FTP]: Aborting uploading." + oColors.standardWhite) - os.chdir(currentDirectory) - ftp.close() - - -def ftp_listAll(ftp): - configValues = configurationValues() - try: - ftp.cwd(configValues.sftp_folderPath) - installedPlugins = ftp.nlst() - except FileNotFoundError: - print(oColors.brightRed + "[FTP]: The 'plugins' folder couldn*t be found on the remote host!" + oColors.standardWhite) - - try: - return installedPlugins - except UnboundLocalError: - print(oColors.brightRed + "[FTP]: No plugins were found." + oColors.standardWhite) - - -def ftp_listFilesInServerRoot(ftp): - try: - ftp.cwd('.') - filesInServerRoot = ftp.nlst() - except FileNotFoundError: - print(oColors.brightRed + "[FTP]: The 'root' folder couldn*t be found on the remote host!" + oColors.standardWhite) - - try: - return filesInServerRoot - except UnboundLocalError: - print(oColors.brightRed + "[FTP]: No Serverjar was found." + oColors.standardWhite) - - -def ftp_downloadFile(ftp, downloadPath, fileToDownload): - configValues = configurationValues() - ftp.cwd(configValues.sftp_folderPath) - filedata = open(downloadPath,'wb') - ftp.retrbinary('RETR '+fileToDownload, filedata.write) - filedata.close() - ftp.quit() - - -def ftp_is_file(ftp, pluginPath): - if ftp.nlst(pluginPath) == [pluginPath]: - return True - else: - return False - - -def ftp_validateFileAttributes(ftp, pluginPath): - if ftp_is_file(ftp, pluginPath) is False: - return False - if re.search(r'.jar$', pluginPath): - return True - else: - return False diff --git a/old_src/handlers/handle_input.py b/old_src/handlers/handle_input.py deleted file mode 100644 index 3dc5af3..0000000 --- a/old_src/handlers/handle_input.py +++ /dev/null @@ -1,105 +0,0 @@ -import sys - -from utils.consoleoutput import oColors -from utils.utilities import getHelp, getCommandHelp -from handlers.handle_config import configurationValues -from plugin.plugin_downloader import searchPackage, getSpecificPackage -from plugin.plugin_updatechecker import updateInstalledPackage, checkInstalledPackage -from plugin.plugin_remover import removePlugin -from serverjar.serverjar_checker import checkInstalledServerjar, updateServerjar -from serverjar.serverjar_paper import papermc_downloader - - -def createInputLists(): - global COMMANDLIST - COMMANDLIST = [ - 'get', - 'update', - 'check', - 'search', - 'exit', - 'help', - 'remove', - 'get-paper' - ] - global INPUTSELECTEDOBJECT - INPUTSELECTEDOBJECT = [ - 'all', - '*' - ] - - -def handleInput(inputCommand, inputSelectedObject, inputParams): - configValues = configurationValues() - while True: - if inputCommand == 'get': - if inputSelectedObject.isdigit(): - if not configValues.localPluginFolder: - if configValues.sftp_seperateDownloadPath is True: - pluginPath = configValues.sftp_pathToSeperateDownloadPath - else: - pluginPath = configValues.sftp_folderPath - getSpecificPackage(inputSelectedObject, pluginPath, inputParams) - break - else: - if configValues.seperateDownloadPath is True: - pluginPath = configValues.pathToSeperateDownloadPath - else: - pluginPath = configValues.pathToPluginFolder - getSpecificPackage(inputSelectedObject, pluginPath, inputParams) - break - else: - searchPackage(inputSelectedObject) - break - if inputCommand == 'update': - if inputSelectedObject == 'serverjar': - updateServerjar(inputParams) - else: - updateInstalledPackage(inputSelectedObject) - break - if inputCommand == 'check': - if inputSelectedObject == 'serverjar': - checkInstalledServerjar() - else: - checkInstalledPackage(inputSelectedObject, inputParams) - break - if inputCommand == 'search': - searchPackage(inputSelectedObject) - break - if inputCommand == 'exit': - sys.exit() - if inputCommand == 'help': - if inputSelectedObject == 'command' or inputSelectedObject == 'commands': - getCommandHelp(inputParams) - else: - getHelp() - break - if inputCommand == 'remove': - removePlugin(inputSelectedObject) - break - if inputCommand == 'get-paper': - papermc_downloader(inputSelectedObject, inputParams) - break - else: - print(oColors.brightRed + "Error: Command not found. Please try again. :(" + oColors.standardWhite) - print(oColors.brightRed + "Use: '" + oColors.standardWhite +"help command" + oColors.brightRed +"' to get all available commands" + oColors.standardWhite) - getInput() - getInput() - - -def getInput(): - inputCommand = None - while True: - try: - inputCommand, inputSelectedObject, *inputParams = input("pluGET >> ").split() - break - except ValueError: - if inputCommand == None: - continue - else: - print(oColors.brightRed + "Wrong input! Use: > 'command' 'selectedObject' [optionalParams]" + oColors.standardWhite) - print(oColors.brightRed + "Use: '" + oColors.standardWhite +"help command" + oColors.brightRed +"' to get all available commands" + oColors.standardWhite) - except KeyboardInterrupt: - sys.exit() - inputParams = inputParams[0] if inputParams else None - handleInput(inputCommand, inputSelectedObject, inputParams) diff --git a/old_src/handlers/handle_sftp.py b/old_src/handlers/handle_sftp.py deleted file mode 100644 index 1af2eec..0000000 --- a/old_src/handlers/handle_sftp.py +++ /dev/null @@ -1,107 +0,0 @@ -import sys -import os -import pysftp -import paramiko -import stat -import re - -from utils.consoleoutput import oColors -from handlers.handle_config import configurationValues - - -def createSFTPConnection(): - configValues = configurationValues() - cnopts = pysftp.CnOpts() - cnopts.hostkeys = None # TODO fix this - try: - sftp = pysftp.Connection(configValues.sftp_server, username=configValues.sftp_user, \ - password=configValues.sftp_password, port=configValues.sftp_port, cnopts=cnopts) - except paramiko.ssh_exception.AuthenticationException: - print(oColors.brightRed + "[SFTP]: Wrong Username/Password" + oColors.standardWhite) - except paramiko.ssh_exception.SSHException: - print(oColors.brightRed + "[SFTP]: The SFTP server isn't available." + oColors.standardWhite) - try: - return sftp - except UnboundLocalError: - print(oColors.brightRed + "[SFTP]: Check your config.ini!" + oColors.standardWhite) - print(oColors.brightRed + "Exiting program..." + oColors.standardWhite) - sys.exit() - - -def sftp_showPlugins(sftp): - configValues = configurationValues() - sftp.cd(configValues.sftp_folderPath) - for attr in sftp.listdir_attr(): - print(attr.filename, attr) - - -def sftp_upload_file(sftp, itemPath): - configValues = configurationValues() - if configValues.sftp_seperateDownloadPath is True: - uploadFolderPath = configValues.sftp_pathToSeperateDownloadPath - else: - uploadFolderPath = configValues.sftp_folderPath - try: - sftp.chdir(uploadFolderPath) - sftp.put(itemPath) - - except FileNotFoundError: - print(oColors.brightRed + "[SFTP]: The 'plugins' folder couldn*t be found on the remote host!" + oColors.standardWhite) - print(oColors.brightRed + "[SFTP]: Aborting uploading." + oColors.standardWhite) - sftp.close() - - -def sftp_upload_server_jar(sftp, itemPath): - try: - sftp.chdir('.') - sftp.put(itemPath) - except FileNotFoundError: - print(oColors.brightRed + "[SFTP]: The 'root' folder couldn*t be found on the remote host!" + oColors.standardWhite) - print(oColors.brightRed + "[SFTP]: Aborting uploading." + oColors.standardWhite) - sftp.close() - - -def sftp_listAll(sftp): - configValues = configurationValues() - try: - sftp.chdir(configValues.sftp_folderPath) - installedPlugins = sftp.listdir() - except FileNotFoundError: - print(oColors.brightRed + "[SFTP]: The 'plugins' folder couldn*t be found on the remote host!" + oColors.standardWhite) - - try: - return installedPlugins - except UnboundLocalError: - print(oColors.brightRed + "[SFTP]: No plugins were found." + oColors.standardWhite) - - -def sftp_listFilesInServerRoot(sftp): - try: - filesInServerRoot = sftp.listdir() - except FileNotFoundError: - print(oColors.brightRed + "[SFTP]: The 'root' folder couldn*t be found on the remote host!" + oColors.standardWhite) - - try: - return filesInServerRoot - except UnboundLocalError: - print(oColors.brightRed + "[SFTP]: No Serverjar was found." + oColors.standardWhite) - - -def sftp_downloadFile(sftp, downloadPath, fileToDownload): - configValues = configurationValues() - sftp.cwd(configValues.sftp_folderPath) - currentDirectory = os.getcwd() - os.chdir('TempSFTPFolder') - sftp.get(fileToDownload) - sftp.close() - os.chdir(currentDirectory) - - -def sftp_validateFileAttributes(sftp, pluginPath): - pluginSFTPAttribute = sftp.lstat(pluginPath) - if stat.S_ISDIR(pluginSFTPAttribute.st_mode): - return False - elif re.search(r'.jar$', pluginPath): - return True - else: - return False diff --git a/old_src/plugin/__init__.py b/old_src/plugin/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/old_src/plugin/plugin_downloader.py b/old_src/plugin/plugin_downloader.py deleted file mode 100644 index 246bc4a..0000000 --- a/old_src/plugin/plugin_downloader.py +++ /dev/null @@ -1,155 +0,0 @@ -import re -import urllib.request -from urllib.error import HTTPError -from pathlib import Path - -from utils.consoleoutput import oColors -from utils.web_request import doAPIRequest -from utils.utilities import createTempPluginFolder, deleteTempPluginFolder, calculateFileSizeKb, calculateFileSizeMb -from handlers.handle_config import configurationValues -from handlers.handle_sftp import sftp_upload_file, createSFTPConnection -from handlers.handle_ftp import ftp_upload_file, createFTPConnection - - -def handleRegexPackageName(packageNameFull): - packageNameFull2 = packageNameFull - # trims the part of the package that has for example "[1.1 Off]" in it - unwantedpackageName = re.search(r'(^\[+[a-zA-Z0-9\s\W*\.*\-*\+*\%*\,]*\]+)', packageNameFull) - unwantedpackageNamematch = bool(unwantedpackageName) - if unwantedpackageNamematch: - unwantedpackageNameString = unwantedpackageName.group() - packageNameFull2 = packageNameFull.replace(unwantedpackageNameString, '') - # gets the real packagename "word1 & word2" is not supported only gets word 1 - packageName = re.search(r'([a-zA-Z]\d*)+(\s?\-*\_*[a-zA-Z]\d*\+*\-*\'*)+', packageNameFull2) - try: - packageNameFullString = packageName.group() - packageNameOnly = packageNameFullString.replace(' ', '') - except AttributeError: - packageNameOnly = unwantedpackageNameString - return packageNameOnly - - -def getVersionID(packageId, packageVersion): - if packageVersion == None or packageVersion == 'latest': - url = f"https://api.spiget.org/v2/resources/{packageId}/versions/latest" - response = doAPIRequest(url) - versionId = response["id"] - return versionId - - url = f"https://api.spiget.org/v2/resources/{packageId}/versions?size=100&sort=-name" - versionList = doAPIRequest(url) - - for packages in versionList: - packageUpdate = packages["name"] - versionId = packages["id"] - if packageUpdate == packageVersion: - return versionId - return versionList[0]["id"] - - -def getVersionName(packageId, versionId): - url = f"https://api.spiget.org/v2/resources/{packageId}/versions/{versionId}" - response = doAPIRequest(url) - versionName = response["name"] - return versionName - - -def searchPackage(resourceName): - configValues = configurationValues() - url = f"https://api.spiget.org/v2/search/resources/{resourceName}?field=name&sort=-downloads" - packageName = doAPIRequest(url) - i = 1 - print(oColors.brightBlack + f"Searching: {resourceName}" + oColors.standardWhite) - print("┌─────┬─────────────────────────────┬───────────┬──────────────────────────────────────────────────────────────────────┐") - print("│ No. │ Name │ Downloads │ Description │") - print("└─────┴─────────────────────────────┴───────────┴──────────────────────────────────────────────────────────────────────┘") - for resource in packageName: - pName = resource["name"] - newName = handleRegexPackageName(pName) - pTag = resource["tag"] - pDownloads = resource["downloads"] - print(f" [{i}]".rjust(6), end='') - print(" ", end='') - print(f"{newName}".ljust(30), end='') - print(f"{pDownloads}".rjust(9), end='') - print(" ", end='') - print(f"{pTag}".ljust(120)) - i = i + 1 - - resourceSelected = int(input("Select your wanted resource (No.)(0 to exit): ")) - if resourceSelected != 0: - resourceSelected = resourceSelected - 1 - resourceId = packageName[resourceSelected]["id"] - if not configValues.localPluginFolder: - if configValues.sftp_seperateDownloadPath is True: - pluginDownloadPath = configValues.sftp_pathToSeperateDownloadPath - else: - pluginDownloadPath = configValues.sftp_folderPath - else: - if configValues.seperateDownloadPath is True: - pluginDownloadPath = configValues.pathToSeperateDownloadPath - else: - pluginDownloadPath = configValues.pathToPluginFolder - try: - getSpecificPackage(resourceId, pluginDownloadPath) - except HTTPError as err: - print(oColors.brightRed + f"Error: {err.code} - {err.reason}" + oColors.standardWhite) - - -def downloadSpecificVersion(resourceId, downloadPath, versionID='latest'): - configValues = configurationValues() - if versionID != 'latest': - #url = f"https://spigotmc.org/resources/{resourceId}/download?version={versionID}" - print(oColors.brightRed + "Sorry but specific version downloads aren't supported because of cloudflare protection. :(" + oColors.standardWhite) - print(oColors.brightRed + "Reverting to latest version." + oColors.standardWhite) - - url = f"https://api.spiget.org/v2/resources/{resourceId}/download" - #url = f"https://api.spiget.org/v2/resources/{resourceId}/versions/latest/download" #throws 403 forbidden error...cloudflare :( - - urrlib_opener = urllib.request.build_opener() - urrlib_opener.addheaders = [('User-agent', 'pluGET/1.0')] - urllib.request.install_opener(urrlib_opener) - - remotefile = urllib.request.urlopen(url) - filesize = remotefile.info()['Content-Length'] - urllib.request.urlretrieve(url, downloadPath) - filesize = int(filesize) - print(" ", end='') - if filesize >= 1000000: - filesizeData = calculateFileSizeMb(filesize) - print("Downloaded " + (str(filesizeData)).rjust(9) + f" MB here {downloadPath}") - else: - filesizeData = calculateFileSizeKb(filesize) - print("Downloaded " + (str(filesizeData)).rjust(9) + f" KB here {downloadPath}") - if not configValues.localPluginFolder: - if configValues.sftp_useSftp: - sftpSession = createSFTPConnection() - sftp_upload_file(sftpSession, downloadPath) - else: - ftpSession = createFTPConnection() - ftp_upload_file(ftpSession, downloadPath) - - -def getSpecificPackage(resourceId, downloadPath, inputPackageVersion='latest'): - configValues = configurationValues() - if configValues.localPluginFolder == False: - downloadPath = createTempPluginFolder() - url = f"https://api.spiget.org/v2/resources/{resourceId}" - packageDetails = doAPIRequest(url) - try: - packageName = packageDetails["name"] - except KeyError: - print(oColors.brightRed + "Error: Plugin ID couldn't be found" + oColors.standardWhite) - return None - packageNameNew = handleRegexPackageName(packageName) - versionId = getVersionID(resourceId, inputPackageVersion) - packageVersion = getVersionName(resourceId, versionId) - packageDownloadName = f"{packageNameNew}-{packageVersion}.jar" - downloadPackagePath = Path(f"{downloadPath}/{packageDownloadName}") - if inputPackageVersion is None or inputPackageVersion == 'latest': - downloadSpecificVersion(resourceId=resourceId, downloadPath=downloadPackagePath) - else: - downloadSpecificVersion(resourceId, downloadPackagePath, versionId) - - if not configValues.localPluginFolder: - deleteTempPluginFolder(downloadPath) diff --git a/old_src/plugin/plugin_remover.py b/old_src/plugin/plugin_remover.py deleted file mode 100644 index 261cac5..0000000 --- a/old_src/plugin/plugin_remover.py +++ /dev/null @@ -1,59 +0,0 @@ -import os -import re -from pathlib import Path - -from utils.consoleoutput import oColors -from handlers.handle_config import configurationValues -from handlers.handle_sftp import createSFTPConnection, sftp_listAll -from handlers.handle_ftp import createFTPConnection, ftp_listAll -from plugin.plugin_updatechecker import getFileName, getFileVersion, getInstalledPlugin, createPluginList - - -def removePlugin(pluginToRemove): - configValues = configurationValues() - createPluginList() - if not configValues.localPluginFolder: - if not configValues.sftp_useSftp: - ftp = createFTPConnection() - pluginList = ftp_listAll(ftp) - else: - sftp = createSFTPConnection() - pluginList = sftp_listAll(sftp) - else: - pluginList = os.listdir(configValues.pathToPluginFolder) - i = 0 - try: - for plugin in pluginList: - try: - fileName = getFileName(plugin) - fileVersion = getFileVersion(plugin) - pluginId = getInstalledPlugin(fileName, fileVersion) - except TypeError: - continue - pluginIdStr = str(pluginId) - - if pluginToRemove == pluginIdStr or re.search(pluginToRemove, fileName, re.IGNORECASE): - print(f"Removing: {fileName}") - if not configValues.localPluginFolder: - pluginPath = configValues.sftp_folderPath - pluginPath = f"{pluginPath}/{plugin}" - if not configValues.sftp_useSftp: - ftp = createFTPConnection() - ftp.delete(pluginPath) - else: - sftp = createSFTPConnection() - sftp.remove(pluginPath) - print(f"Removed: {fileName}") - i += 1 - break - else: - pluginPath = configValues.pathToPluginFolder - pluginPath = Path(f"{pluginPath}/{plugin}") - os.remove(pluginPath) - print(f"Removed: {fileName}") - i += 1 - break - except TypeError: - print(oColors.brightRed + f"Aborted removing of: {pluginToRemove}." + oColors.standardWhite) - if i == 0: - print(oColors.brightRed + f"Couldn't remove plugin: {pluginToRemove}" + oColors.standardWhite) diff --git a/old_src/plugin/plugin_updatechecker.py b/old_src/plugin/plugin_updatechecker.py deleted file mode 100644 index 56c284a..0000000 --- a/old_src/plugin/plugin_updatechecker.py +++ /dev/null @@ -1,482 +0,0 @@ -import os -import re -import io -import base64 -from zipfile import ZipFile -from urllib.error import HTTPError -from pathlib import Path -from rich.progress import track - -from utils.consoleoutput import oColors -from utils.web_request import doAPIRequest -from handlers.handle_config import configurationValues -from handlers.handle_sftp import createSFTPConnection, sftp_listAll, sftp_downloadFile, sftp_validateFileAttributes -from handlers.handle_ftp import createFTPConnection, ftp_listAll, ftp_downloadFile, ftp_validateFileAttributes -from plugin.plugin_downloader import getSpecificPackage -from utils.utilities import createTempPluginFolder, deleteTempPluginFolder - - -def createPluginList(): - global INSTALLEDPLUGINLIST - INSTALLEDPLUGINLIST = [] - return INSTALLEDPLUGINLIST - - -def addToPluginList(localFileName, pluginId, versionId, plugin_latest_version, plugin_is_outdated): - INSTALLEDPLUGINLIST.append([localFileName, pluginId, versionId, plugin_latest_version, plugin_is_outdated]) - - -def getFileName(pluginName): - pluginNameFull = pluginName - pluginVersion = re.search(r'([\d.]+[.jar]+)', pluginNameFull) - try: - pluginVersionFull = pluginVersion.group() - except AttributeError: - pluginVersionFull = pluginVersion - pluginNameOnlyy = pluginNameFull.replace(pluginVersionFull, '') - pluginNameOnly = re.sub(r'(\-$)', '', pluginNameOnlyy) - pluginNameOnlyy = re.sub(r'(\-v$)', '', pluginNameOnly) - return pluginNameOnlyy - - -def getFileVersion(pluginName): - pluginNameFull = pluginName - pluginVersion = re.search(r'([\d.]+[.jar]+)', pluginNameFull) - pluginVersionFull = pluginVersion.group() - pluginVersionString = pluginVersionFull.replace('.jar', '') - if pluginVersionString.endswith('.'): - pluginVersionString = '' - if pluginVersionString == '': - pluginVersionString = eggCrackingJar(pluginNameFull, 'version') - return pluginVersionString - - -def getLatestPluginVersion(pluginId): - url = f"https://api.spiget.org/v2/resources/{pluginId}/versions/latest" - latestUpdateSearch = doAPIRequest(url) - versionLatestUpdate = latestUpdateSearch["name"] - return versionLatestUpdate - - -def getUpdateDescription(pluginId): - url = f"https://api.spiget.org/v2/resources/{pluginId}/updates?size=1&sort=-date" - latestDescriptionSearch = doAPIRequest(url) - versionLatestDescription = latestDescriptionSearch[0]["description"] - versionLatestDescription = base64.b64decode(versionLatestDescription) - versionLatestDescriptionText =versionLatestDescription.decode('utf-8') - htmlRegex = re.compile('<.*?>') - versionLatestDescriptionText = re.sub(htmlRegex, '', versionLatestDescriptionText) - linesChangelogDescription = versionLatestDescriptionText.split("\n") - nonEmptyLines = [line for line in linesChangelogDescription if line.strip() != ""] - stringnonEmptyLines = "" - for line in nonEmptyLines: - stringnonEmptyLines += line + "\n" - stringnonEmptyLines = stringnonEmptyLines[:-1] - return stringnonEmptyLines - - -def versionTuple(versionString): - return tuple(map(int, (versionString.split(".")))) - - -def getVersionWithoutLetters(versionString): - return re.sub(r'([A-Za-z]*)', '', versionString) - - -def compareVersions(plugin_latest_version, pluginVersion): - try: - pluginVersionTuple = versionTuple(getVersionWithoutLetters(pluginVersion)) - plugin_latest_versionTuple = versionTuple(getVersionWithoutLetters(plugin_latest_version)) - except ValueError: - return False - if pluginVersionTuple < plugin_latest_versionTuple: - return True - else: - return False - - -def eggCrackingJar(localJarFileName, searchMode): - configValues = configurationValues() - if not configValues.localPluginFolder: - tempPluginFolderPath = createTempPluginFolder() - if configValues.sftp_useSftp: - sftp = createSFTPConnection() - pathToPluginJar = Path(f"{tempPluginFolderPath}/{localJarFileName}") - sftp_downloadFile(sftp, pathToPluginJar, localJarFileName) - else: - ftp = createFTPConnection() - pathToPluginJar = Path(f"{tempPluginFolderPath}/{localJarFileName}") - ftp_downloadFile(ftp, pathToPluginJar, localJarFileName) - else: - pluginPath = configValues.pathToPluginFolder - pathToPluginJar = Path(f"{pluginPath}/{localJarFileName}") - pluginVersion = '' - pluginName = '' - with ZipFile(pathToPluginJar, 'r') as pluginJar: - try: - with io.TextIOWrapper(pluginJar.open('plugin.yml', 'r'), encoding="utf-8") as pluginYml: - pluginYmlContentLine = pluginYml.readlines() - for line in pluginYmlContentLine: - if searchMode == 'version': - if re.match(r'^\s*?version: ', line): - pluginVersion = re.sub(r'^\s*?version: ', '', line) - pluginVersion = pluginVersion.replace('\n', '') - pluginVersion = pluginVersion.replace("'", '') - pluginVersion = pluginVersion.replace('"', '') - elif searchMode == 'name': - if re.match(r'^\s*?name: ', line): - pluginName = re.sub(r'^\s*?name: ', '', line) - pluginName = pluginName.replace('\n', '') - pluginName = pluginName.replace("'", '') - pluginName = pluginName.replace('"', '') - - except FileNotFoundError: - pluginVersion = '' - pluginName = '' - except KeyError: - pluginVersion = '' - pluginName = '' - if not configValues.localPluginFolder: - deleteTempPluginFolder(tempPluginFolderPath) - if searchMode == 'version': - return pluginVersion - if searchMode == 'name': - return pluginName - - -def checkInstalledPackage(inputSelectedObject="all", inputOptionalParam=None): - configValues = configurationValues() - createPluginList() - pluginFolderPath = configValues.pathToPluginFolder - if not configValues.localPluginFolder: - if configValues.sftp_useSftp: - connection = createSFTPConnection() - pluginList = sftp_listAll(connection) - else: - connection = createFTPConnection() - pluginList = ftp_listAll(connection) - else: - pluginList = os.listdir(pluginFolderPath) - - i = 0 - oldPlugins = 0 - print(oColors.brightBlack + f"Checking: {inputSelectedObject}" + oColors.standardWhite) - if inputOptionalParam != "changelog": - print(oColors.brightBlack + f"Use 'check {inputSelectedObject} changelog' to get the latest changelog from plugins" + oColors.standardWhite) - print("┌─────┬────────────────────────────────┬──────────────┬──────────────┐") - print("│ No. │ Name │ Installed V. │ Latest V. │") - print("└─────┴────────────────────────────────┴──────────────┴──────────────┘") - try: - for plugin in track(pluginList, description="Checking for updates" ,transient=True, complete_style="bright_yellow"): - if not configValues.localPluginFolder: - pluginFile = f"{configValues.sftp_folderPath}/{plugin}" - if configValues.sftp_useSftp: - pluginAttributes = sftp_validateFileAttributes(connection, pluginFile) - if pluginAttributes == False: - continue - else: - pluginAttributes = ftp_validateFileAttributes(connection, pluginFile) - if pluginAttributes == False: - continue - else: - if not os.path.isfile(Path(f"{pluginFolderPath}/{plugin}")): - continue - if not re.search(r'.jar$', plugin): - continue - try: - fileName = getFileName(plugin) - fileVersion = getFileVersion(plugin) - pluginId = getInstalledPlugin(fileName, fileVersion, plugin) - except TypeError: - continue - - pluginIdStr = str(pluginId) - if fileVersion == '': - fileVersion = 'N/A' - try: - pluginLatestVersion = INSTALLEDPLUGINLIST[i][3] - except IndexError: - pluginLatestVersion = 'N/A' - - if pluginLatestVersion == None: - pluginLatestVersion = 'N/A' - - try: - pluginIsOutdated = INSTALLEDPLUGINLIST[i][4] - except IndexError: - pluginIsOutdated = 'N/A' - - if pluginIsOutdated == None: - pluginIsOutdated = 'N/A' - - if pluginIsOutdated == True: - oldPlugins = oldPlugins + 1 - - if re.search(r'.jar$', fileName): - fileName = eggCrackingJar(plugin, "name") - - if inputSelectedObject != "all" and inputSelectedObject != "*": - if inputSelectedObject != pluginIdStr or not re.search(inputSelectedObject, fileName, re.IGNORECASE): - i += 1 - continue - - if inputSelectedObject == "all" or inputSelectedObject != "*" or inputSelectedObject != "all": - if inputSelectedObject == pluginIdStr or re.search(inputSelectedObject, fileName, re.IGNORECASE): - if pluginLatestVersion == 'N/A': - print(oColors.brightBlack + f" [{1}]".rjust(6), end='') - else: - print(f" [{1}]".rjust(6), end='') - else: - if pluginLatestVersion == 'N/A': - print(oColors.brightBlack + f" [{i+1}]".rjust(6), end='') - else: - print(f" [{i+1}]".rjust(6), end='') - print(" ", end='') - if pluginIsOutdated == True: - print(oColors.brightRed + f"{fileName}".ljust(33) + oColors.standardWhite, end='') - elif pluginIsOutdated == False: - print(oColors.brightGreen + f"{fileName}".ljust(33) + oColors.standardWhite, end='') - else: - print(f"{fileName}".ljust(33), end='') - - print(f"{fileVersion}".ljust(15), end='') - print(f"{pluginLatestVersion}".ljust(15)) - if (inputOptionalParam == "changelog" and pluginLatestVersion != 'N/A'): - print(oColors.brightYellow + f"CHANGELOG {fileName}:" + oColors.standardWhite) - description = getUpdateDescription(pluginId) - print(description) - print() - if inputSelectedObject == pluginIdStr or re.search(inputSelectedObject, fileName, re.IGNORECASE): - break - else: - print(oColors.brightRed + "Wrong input! Use 'check all' to check every plugin for updates!" + oColors.standardWhite) - break - - i += 1 - except TypeError: - print(oColors.brightRed + "Error occured: Aborted checking for updates." + oColors.standardWhite) - print(oColors.brightYellow + f"Outdated plugins: [{oldPlugins}/{i}]" + oColors.standardWhite) - - -def updateInstalledPackage(inputSelectedObject='all'): - configValues = configurationValues() - if not configValues.localPluginFolder: - if configValues.sftp_useSftp: - connection = createSFTPConnection() - else: - connection = createFTPConnection() - - try: - print(oColors.brightBlack + "Selected plugins with available Updates:" + oColors.standardWhite) - if inputSelectedObject == "all" or inputSelectedObject == "*": - for pluginIndex in range(len(INSTALLEDPLUGINLIST)): - if INSTALLEDPLUGINLIST[pluginIndex][4] == True: - fileName = getFileName(INSTALLEDPLUGINLIST[pluginIndex][0]) - print(fileName, end=' ') - else: - print(inputSelectedObject, end=' ') - - print() - updateConfirmation = input("Update these plugins [y/n] ? ") - if str.lower(updateConfirmation) != "y": - print(oColors.brightRed + "Aborting the update process."+ oColors.standardWhite) - return False - - except NameError: - print(oColors.brightRed + "Check for updates before updating plugins with: 'check all'" + oColors.standardWhite) - print(oColors.brightRed + "Started checking for updates..." + oColors.standardWhite) - checkInstalledPackage() - print(oColors.brightRed + f"Please input 'update {inputSelectedObject}' again!" + oColors.standardWhite) - return False - - i = 0 - pluginsUpdated = 0 - indexNumberUpdated = 0 - print(oColors.brightBlack + f"Updating: {inputSelectedObject}" + oColors.standardWhite) - print("┌─────┬────────────────────────────────┬────────────┬──────────┐") - print("│ No. │ Name │ Old V. │ New V. │") - print("└─────┴────────────────────────────────┴────────────┴──────────┘") - try: - for pluginArray in track(INSTALLEDPLUGINLIST, description="Updating" ,transient=True, complete_style="bright_magenta", ): - plugin = INSTALLEDPLUGINLIST[i][0] - if not configValues.localPluginFolder: - pluginFile = f"{configValues.sftp_folderPath}/{plugin}" - if configValues.sftp_useSftp: - pluginAttributes = sftp_validateFileAttributes(connection, pluginFile) - if pluginAttributes == False: - i += 1 - continue - else: - pluginAttributes = ftp_validateFileAttributes(connection, pluginFile) - if pluginAttributes == False: - i += 1 - continue - else: - pluginFolderPath = configValues.pathToPluginFolder - if not os.path.isfile(Path(f"{pluginFolderPath}/{plugin}")): - i += 1 - continue - if not re.search(r'.jar$', plugin): - i += 1 - continue - - try: - fileName = getFileName(plugin) - fileVersion = getFileVersion(plugin) - pluginId = INSTALLEDPLUGINLIST[i][1] - latestVersion = INSTALLEDPLUGINLIST[i][3] - except (TypeError, ValueError): - i += 1 - continue - - if re.search(r'.jar$', fileName): - fileName = eggCrackingJar(plugin, "name") - - pluginIdStr = str(pluginId) - if pluginId == None or pluginId == '': - i += 1 - continue - - if inputSelectedObject != 'all' and inputSelectedObject != pluginIdStr and not re.search(inputSelectedObject, fileName, re.IGNORECASE): - i += 1 - continue - if INSTALLEDPLUGINLIST[i][4] != True: - i += 1 - continue - if INSTALLEDPLUGINLIST[i][4] == False and inputSelectedObject != 'all': - print(oColors.brightGreen + f"{fileName} is already on {latestVersion}" + oColors.standardWhite) - print(oColors.brightRed + "Aborting the update process."+ oColors.standardWhite) - break - - print(f" [{indexNumberUpdated+1}]".rjust(6), end='') - print(" ", end='') - print(f"{fileName}".ljust(33), end='') - print(f"{fileVersion}".ljust(13), end='') - print(f"{latestVersion}".ljust(13)) - if not configValues.localPluginFolder: - if configValues.sftp_seperateDownloadPath is True: - pluginPath = configValues.sftp_pathToSeperateDownloadPath - else: - pluginPath = configValues.sftp_folderPath - pluginPath = f"{pluginPath}/{plugin}" - indexNumberUpdated += 1 - pluginsUpdated += 1 - if configValues.sftp_useSftp: - sftp = createSFTPConnection() - try: - getSpecificPackage(pluginId, pluginPath) - if configValues.sftp_seperateDownloadPath is False: - sftp.remove(pluginPath) - except HTTPError as err: - print(oColors.brightRed + f"HTTPError: {err.code} - {err.reason}" + oColors.standardWhite) - pluginsUpdated -= 1 - except TypeError: - print(oColors.brightRed + f"TypeError: Couldn't download new version. Is the file available on spigotmc?" + oColors.standardWhite) - pluginsUpdated -= 1 - except FileNotFoundError: - print(oColors.brightRed + f"FileNotFoundError: Old plugin file coulnd't be deleted" + oColors.standardWhite) - - else: - ftp = createFTPConnection() - try: - getSpecificPackage(pluginId, pluginPath) - if configValues.sftp_seperateDownloadPath is False: - ftp.delete(pluginPath) - except HTTPError as err: - print(oColors.brightRed + f"HTTPError: {err.code} - {err.reason}" + oColors.standardWhite) - pluginsUpdated -= 1 - except TypeError: - print(oColors.brightRed + f"TypeError: Couldn't download new version. Is the file available on spigotmc?" + oColors.standardWhite) - pluginsUpdated -= 1 - except FileNotFoundError: - print(oColors.brightRed + f"FileNotFoundError: Old plugin file coulnd't be deleted" + oColors.standardWhite) - - else: - if configValues.seperateDownloadPath is True: - pluginPath = configValues.pathToSeperateDownloadPath - else: - pluginPath = configValues.pathToPluginFolder - indexNumberUpdated += 1 - pluginsUpdated += 1 - try: - getSpecificPackage(pluginId, pluginPath) - if configValues.seperateDownloadPath is False: - pluginPath = f"{pluginPath}/{plugin}" - os.remove(pluginPath) - except HTTPError as err: - print(oColors.brightRed + f"HTTPError: {err.code} - {err.reason}" + oColors.standardWhite) - pluginsUpdated -= 1 - except TypeError: - print(oColors.brightRed + f"TypeError: Couldn't download new version. Is the file available on spigotmc?" + oColors.standardWhite) - pluginsUpdated -= 1 - except FileNotFoundError: - print(oColors.brightRed + f"FileNotFoundError: Old plugin file coulnd't be deleted" + oColors.standardWhite) - if inputSelectedObject != 'all': - break - elif inputSelectedObject != 'all': - print(oColors.brightGreen + f"{fileName} is already on {latestVersion}" + oColors.standardWhite) - print(oColors.brightRed + "Aborting the update process."+ oColors.standardWhite) - break - - i += 1 - except TypeError: - print(oColors.brightRed + "Error occured: Aborted updating plugins." + oColors.standardWhite) - except NameError: - print(oColors.brightRed + "Check for updates before updating plugins with: 'check all'" + oColors.standardWhite) - print(oColors.brightRed + "Started checking for updates..." + oColors.standardWhite) - checkInstalledPackage() - print(oColors.brightRed + f"Please input 'update {inputSelectedObject}' again!" + oColors.standardWhite) - if i != 0: - print(oColors.brightYellow + f"Plugins updated: [{pluginsUpdated}/{i}]" + oColors.standardWhite) - if inputSelectedObject =='all' and pluginsUpdated == 0 and i != 0: - print(oColors.brightGreen + "All found plugins are on the latest version!" + oColors.standardWhite) - - -def getInstalledPlugin(localFileName, localFileVersion, localPluginFullName): - url = "https://api.spiget.org/v2/search/resources/" + localFileName + "?field=name&sort=-downloads" - packageName = doAPIRequest(url) - plugin_match_found = False - pluginID = None - localFileVersionNew = localFileVersion - i = 0 - for i in range(0, 3): - if plugin_match_found == True: - break - if i == 1: - localFileVersionNew = re.sub(r'(\-\w*)', '', localFileVersion) - if i == 2: - pluginNameinYML = eggCrackingJar(localPluginFullName, 'name') - url = "https://api.spiget.org/v2/search/resources/" + pluginNameinYML + "?field=name&sort=-downloads" - try: - packageName = doAPIRequest(url) - except ValueError: - continue - - localFileVersion = localFileVersionNew - - for resource in packageName: - if plugin_match_found == True: - continue - pID = resource["id"] - url2 = f"https://api.spiget.org/v2/resources/{pID}/versions?size=100&sort=-name" - try: - packageVersions = doAPIRequest(url2) - except ValueError: - continue - for updates in packageVersions: - updateVersion = updates["name"] - if localFileVersionNew in updateVersion: - plugin_match_found = True - pluginID = pID - updateId = updates["id"] - plugin_latest_version = getLatestPluginVersion(pID) - plugin_is_outdated = compareVersions(plugin_latest_version, updateVersion) - addToPluginList(localPluginFullName, pID, updateId, plugin_latest_version , plugin_is_outdated) - return pluginID - - else: - if plugin_match_found != True: - pID = updateId = plugin_latest_version = plugin_is_outdated = None - addToPluginList(localPluginFullName, pID, updateId, plugin_latest_version , plugin_is_outdated) - - return pluginID diff --git a/old_src/serverjar/__init__.py b/old_src/serverjar/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/old_src/serverjar/serverjar_checker.py b/old_src/serverjar/serverjar_checker.py deleted file mode 100644 index f08ec00..0000000 --- a/old_src/serverjar/serverjar_checker.py +++ /dev/null @@ -1,114 +0,0 @@ -import os -import sys -from urllib.error import HTTPError -from pathlib import Path - -from handlers.handle_sftp import createSFTPConnection, sftp_listFilesInServerRoot -from handlers.handle_ftp import createFTPConnection, ftp_listFilesInServerRoot -from handlers.handle_config import configurationValues -from utils.consoleoutput import oColors -from serverjar.serverjar_paper import paperCheckForUpdate, papermc_downloader - - -def checkInstalledServerjar(): - configValues = configurationValues() - if not configValues.localPluginFolder: - if not configValues.sftp_useSftp: - ftp = createFTPConnection() - serverRootList = ftp_listFilesInServerRoot(ftp) - else: - sftp = createSFTPConnection() - serverRootList = sftp_listFilesInServerRoot(sftp) - else: - serverRootList = os.path.dirname(configValues.pathToPluginFolder) - serverRootList = os.listdir(serverRootList) - installedServerjarFullName = None - try: - for files in serverRootList: - try: - if '.jar' in files: - installedServerjarFullName = files - break - except TypeError: - continue - except TypeError: - print(oColors.brightRed + "Serverjar couldn't be found." + oColors.standardWhite) - print(oColors.brightRed + "Aborting the process." + oColors.standardWhite) - - if installedServerjarFullName == None: - print(oColors.brightRed + "Serverjar couldn't be found." + oColors.standardWhite) - print(oColors.brightRed + "Aborting the process." + oColors.standardWhite) - input("Press any key + enter to exit...") - sys.exit() - print(oColors.brightBlack + f"Checking: {installedServerjarFullName}" + oColors.standardWhite) - if 'paper' in installedServerjarFullName: - paperCheckForUpdate(installedServerjarFullName) - - else: - print(oColors.brightRed + f"{installedServerjarFullName} isn't supported.") - print(oColors.brightRed + "Aborting the process." + oColors.standardWhite) - - -def updateServerjar(serverJarBuild='latest'): - configValues = configurationValues() - try: - if serverJarBuild == None: - serverJarBuild = 'latest' - if not configValues.localPluginFolder: - sftp = createSFTPConnection() - serverRootPath = configValues.sftp_folderPath - serverRootPath = Path(str(serverRootPath).replace(r'/plugins', '')) - serverRootList = sftp_listFilesInServerRoot(sftp) - - else: - serverRoot = os.path.dirname(configValues.pathToPluginFolder) - serverRootList = os.listdir(serverRoot) - serverRootPath = configValues.pathToPluginFolder - helpPath = Path('/plugins') - helpPathstr = str(helpPath) - serverRootPath = Path(str(serverRootPath).replace(helpPathstr, '')) - installedServerjarFullName = None - - except FileNotFoundError: - print(oColors.brightRed + "Path couldn't be found!" + oColors.standardWhite) - print(oColors.brightRed + "Check your config!" + oColors.standardWhite) - print(oColors.brightRed + "Aborting the process." + oColors.standardWhite) - input("Press any key + enter to exit...") - sys.exit() - - try: - for files in serverRootList: - try: - if '.jar' in files: - installedServerjarFullName = files - break - except TypeError: - continue - except TypeError: - print(oColors.brightRed + "Serverjar couldn't be found." + oColors.standardWhite) - print(oColors.brightRed + "Aborting the process." + oColors.standardWhite) - - if installedServerjarFullName == None: - print(oColors.brightRed + "Serverjar couldn't be found." + oColors.standardWhite) - print(oColors.brightRed + "Aborting the process." + oColors.standardWhite) - input("Press any key + enter to exit...") - sys.exit() - - serverJarPath = Path(f"{serverRootPath}/{installedServerjarFullName}") - - if 'paper' in installedServerjarFullName: - print(oColors.brightBlack + f"Updating Paper to build: {serverJarBuild}" + oColors.standardWhite) - try: - papermc_downloader(serverJarBuild, None, installedServerjarFullName) - if not configValues.localPluginFolder: - sftp.remove(serverJarPath) - else: - os.remove(serverJarPath) - except HTTPError as err: - print(oColors.brightRed + f"Error: {err.code} - {err.reason}" + oColors.standardWhite) - except FileNotFoundError: - print(oColors.brightRed + "Error: Old serverjar file coulnd't be deleted" + oColors.standardWhite) - else: - print(oColors.brightRed + f"{installedServerjarFullName} isn't supported.") - print(oColors.brightRed + "Aborting the process." + oColors.standardWhite) - \ No newline at end of file diff --git a/old_src/serverjar/serverjar_paper.py b/old_src/serverjar/serverjar_paper.py deleted file mode 100644 index 99c6da6..0000000 --- a/old_src/serverjar/serverjar_paper.py +++ /dev/null @@ -1,218 +0,0 @@ -import re -import urllib.request -from pathlib import Path -from rich.console import Console - -from utils.consoleoutput import oColors -from utils.web_request import doAPIRequest -from handlers.handle_sftp import createSFTPConnection, sftp_upload_server_jar -from handlers.handle_ftp import createFTPConnection, ftp_upload_server_jar -from handlers.handle_config import configurationValues -from utils.utilities import createTempPluginFolder, deleteTempPluginFolder, calculateFileSizeMb - - -def getInstalledPaperMinecraftVersion(localPaperName): - if localPaperName is None: - return False - mcVersionFull = re.search(r'(\d*\.*\d)+', localPaperName) - try: - mcVersion = mcVersionFull.group() - except AttributeError: - mcVersion = mcVersionFull - return mcVersion - - -def getInstalledPaperVersion(localPaperName): - if localPaperName is None: - return False - paperBuildFull = re.search(r'([\d]*.jar)', localPaperName) - try: - paperBuild = paperBuildFull.group() - except AttributeError: - paperBuild = paperBuildFull - paperBuild = paperBuild.replace('.jar', '') - return paperBuild - - -def findVersionGroup(mcVersion): - versionGroups = ['1.17', '1.16', '1.15'] - if mcVersion is None: - return False - for versionGroup in versionGroups: - url = f"https://papermc.io/api/v2/projects/paper/version_group/{versionGroup}/builds" - papermcdetails = doAPIRequest(url) - papermcVersionForMc = papermcdetails["versions"] - for versions in papermcVersionForMc: - if versions == mcVersion: - paperVersionGroup = versionGroup - return paperVersionGroup - if versionGroup == mcVersion: - paperVersionGroup = versionGroup - return paperVersionGroup - return False # Not found - - -def findBuildVersion(wantedPaperBuild): - versionGroups = ['1.17', '1.16', '1.15'] - if wantedPaperBuild is None: - return False - for versionGroup in versionGroups: - url = f"https://papermc.io/api/v2/projects/paper/version_group/{versionGroup}/builds" - papermcdetails = doAPIRequest(url) - paperMcBuilds = papermcdetails["builds"] - for build in paperMcBuilds: - paperBuild = str(build["build"]) - if paperBuild == wantedPaperBuild: - paperVersionGroup = build["version"] - return paperVersionGroup - return False # Not found - - -def findLatestBuild(paperVersionGroup): - if paperVersionGroup is None: - return False - url = f"https://papermc.io/api/v2/projects/paper/version_group/{paperVersionGroup}/builds" - papermcbuilds = doAPIRequest(url) - if "status" in papermcbuilds: # Checks if the API returns a status. This means that there was an error. - return False - latestPaperBuild = papermcbuilds["builds"][-1]["build"] - return latestPaperBuild - - -def findLatestBuildForVersion(mcVersion): - if mcVersion is None: - return False - url = f"https://papermc.io/api/v2/projects/paper/versions/{mcVersion}" - papermcbuilds = doAPIRequest(url) - latestPaperBuild = papermcbuilds["builds"][-1] - return latestPaperBuild - - -def versionBehind(installedPaperBuild, latestPaperBuild): - if installedPaperBuild is None or latestPaperBuild is None: - return False - installedPaperBuildint = int(installedPaperBuild) - latestPaperBuildint = int(latestPaperBuild) - versionsBehind = latestPaperBuildint - installedPaperBuildint - return versionsBehind - - -def getDownloadFileName(paperMcVersion, paperBuild): - if paperMcVersion is None or paperBuild is None: - return False - url = f"https://papermc.io/api/v2/projects/paper/versions/{paperMcVersion}/builds/{paperBuild}" - buildDetails = doAPIRequest(url) - downloadName = buildDetails["downloads"]["application"]["name"] - return downloadName - - -def paperCheckForUpdate(installedServerjarFullName): - mcVersion = getInstalledPaperMinecraftVersion(installedServerjarFullName) - - # Report an error if getInstalledPaperMinecraftVersion encountered an issue. - if not mcVersion: - print(oColors.brightRed + "ERR: An error was encountered while detecting the server's Minecraft version." + - oColors.standardWhite) - return False - - paperInstalledBuild = getInstalledPaperVersion(installedServerjarFullName) - # Report an error if getInstalledPaperVersion encountered an issue. - if not paperInstalledBuild: - print(oColors.brightRed + "ERR: An error was encountered while detecting the server's Paper version." + - oColors.standardWhite) - return False - - versionGroup = findVersionGroup(mcVersion) - # Report an error if findVersionGroup encountered an issue. - if not versionGroup: - print(oColors.brightRed + "ERR: An error was encountered while fetching the server's version group." + - oColors.standardWhite) - return False - - paperLatestBuild = findLatestBuild(versionGroup) - # Report an error if findLatestBuild encountered an issue. - if not paperLatestBuild: - print(oColors.brightRed + "ERR: An error was encountered while fetching the latest version of PaperMC." + - oColors.standardWhite) - return False # Not currently handled, but can be at a later date. Currently just stops the following from - # being printed. - - paperVersionBehind = versionBehind(paperInstalledBuild, paperLatestBuild) - # Report an error if getInstalledPaperVersion encountered an issue. - if not paperVersionBehind: - print(oColors.brightRed + "ERR: An error was encountered while detecting how many versions behind you are. " - f"Will display as 'N/A'." + oColors.standardWhite) - paperVersionBehind = "N/A" # Sets paperVersionBehind to N/A while still letting the versionBehind check return - # False for error-handing reasons. - - # Does not return false as versions behind doesn't break things. It is just helpful information. - # paperVersionBehind will just display as "N/A" - print("┌─────┬────────────────────────────────┬──────────────┬──────────────┐") - print("│ No. │ Name │ Installed V. │ Latest V. │") - print("└─────┴────────────────────────────────┴──────────────┴──────────────┘") - print(" [1]".rjust(6), end='') - print(" ", end='') - if paperVersionBehind != 0: - print(oColors.brightRed + "paper".ljust(33) + oColors.standardWhite, end='') - else: - print(oColors.brightGreen + "paper".ljust(33) + oColors.standardWhite, end='') - print(f"{paperInstalledBuild}".ljust(15), end='') - print(f"{paperLatestBuild}".ljust(15)) - print(oColors.brightYellow + f"Versions behind: [{paperVersionBehind}]" + oColors.standardWhite) - - -# https://papermc.io/api/docs/swagger-ui/index.html?configUrl=/api/openapi/swagger-config#/ -def papermc_downloader(paperBuild='latest', mcVersion=None, installedServerjarName=None): - configValues = configurationValues() - if configValues.localPluginFolder == False: - downloadPath = createTempPluginFolder() - else: - downloadPath = configValues.pathToPluginFolder - helpPath = Path('/plugins') - helpPathstr = str(helpPath) - downloadPath = Path(str(downloadPath).replace(helpPathstr, '')) - - if mcVersion == None: - if paperBuild == 'latest': - mcVersion = '1.17.1' - else: - mcVersion = findBuildVersion(paperBuild) - - if installedServerjarName != None: - mcVersion = getInstalledPaperMinecraftVersion(installedServerjarName) - - if paperBuild == 'latest': - paperBuild = findLatestBuildForVersion(mcVersion) - try: - downloadFileName = getDownloadFileName(mcVersion, paperBuild) - except KeyError: - print(oColors.brightRed + f"This version wasn't found for {mcVersion}" + oColors.standardWhite) - print(oColors.brightRed + f"Reverting to latest version for {mcVersion}" + oColors.standardWhite) - paperBuild = findLatestBuildForVersion(mcVersion) - downloadFileName = getDownloadFileName(mcVersion, paperBuild) - - downloadPackagePath = Path(f"{downloadPath}/{downloadFileName}") - if configValues.localPluginFolder == False: - downloadPath = createTempPluginFolder() - - url = f"https://papermc.io/api/v2/projects/paper/versions/{mcVersion}/builds/{paperBuild}/downloads/{downloadFileName}" - remotefile = urllib.request.urlopen(url) - filesize = remotefile.info()['Content-Length'] - print(f"Getting Paper {paperBuild} for {mcVersion}") - console = Console() - with console.status("Downloading...", spinner='line', spinner_style='bright_magenta') as status: - urllib.request.urlretrieve(url, downloadPackagePath) - filesizeData = calculateFileSizeMb(filesize) - print("Downloaded " + (str(filesizeData)).rjust(9) + f" MB here {downloadPackagePath}") - if not configValues.localPluginFolder: - if not configValues.sftp_useSftp: - ftpSession = createFTPConnection() - ftp_upload_server_jar(ftpSession, downloadPackagePath) - else: - sftpSession = createSFTPConnection() - sftp_upload_server_jar(sftpSession, downloadPackagePath) - - deleteTempPluginFolder(downloadPath) - - print(oColors.brightGreen + "Downloaded successfully " + oColors.standardWhite + f"Paper {paperBuild}" + \ - oColors.brightGreen + " for " + oColors.standardWhite + f"{mcVersion}" + oColors.standardWhite) diff --git a/old_src/utils/__init__.py b/old_src/utils/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/old_src/utils/consoleoutput.py b/old_src/utils/consoleoutput.py deleted file mode 100644 index a7e6a46..0000000 --- a/old_src/utils/consoleoutput.py +++ /dev/null @@ -1,89 +0,0 @@ -from os import system -from os import name - - -def consoleTitle(): - system("title " + "pluGET │ By Neocky") - - -def clearConsole(): - system('cls' if name=='nt' else 'clear') - - -# https://docs.microsoft.com/en-us/windows/console/console-virtual-terminal-sequences -class oColors: - standardWhite = "\033[0m" - brightBlack = "\033[90m" - brightRed = "\033[91m" - brightGreen = "\033[92m" - brightYellow = "\033[93m" - brightMagenta = "\033[95m" - - -def printLogo(): - print() - print(oColors.brightYellow + r" ___ ___ ___ ___ ___ ___ ") - print(oColors.brightMagenta + r" /\ " + oColors.brightYellow + r"\ " + oColors.brightMagenta + r"/"'\\' + - oColors.brightYellow + r"__\ " + oColors.brightMagenta + r"/"'\\' + oColors.brightYellow + r"__\ " + - oColors.brightMagenta + r"/\ "+ oColors.brightYellow + r"\ " + oColors.brightMagenta + r"/\ "+ - oColors.brightYellow + r"\ " + oColors.brightMagenta + r"/\ "+ oColors.brightYellow + r""'\\ ') - print(oColors.brightMagenta + r" /::\ "+ oColors.brightYellow + r"\ " + oColors.brightMagenta + r"/:/ " + - oColors.brightYellow + r"/ " + oColors.brightMagenta + r"/:/ "+ oColors.brightYellow + r"/ " + - oColors.brightMagenta + r"/::\ "+ oColors.brightYellow + r"\ " + oColors.brightMagenta + r"/::\ "+ - oColors.brightYellow + r"\ " + oColors.brightMagenta + r"\:\ "+ oColors.brightYellow + r""'\\ ') - print(oColors.brightMagenta + r" /:/\:\ "+ oColors.brightYellow + r"\ " + oColors.brightMagenta + r"/:/ "+ - oColors.brightYellow + r"/ " + oColors.brightMagenta + r"/:/ "+ oColors.brightYellow + r"/ " + - oColors.brightMagenta + r"/:/\:\ "+ oColors.brightYellow + r"\ " + oColors.brightMagenta + r"/:/\:\ "+ - oColors.brightYellow + r"\ " + oColors.brightMagenta + r"\:\ "+ oColors.brightYellow + r""'\\ ') - print(oColors.brightMagenta + r" /::"'\\' + oColors.brightYellow + r"~" + oColors.brightMagenta + r"\:\ "+ - oColors.brightYellow + r"\ " + oColors.brightMagenta + r"/:/ "+ oColors.brightYellow + r"/ " + - oColors.brightMagenta + r"/:/ "+ oColors.brightYellow + r"/ ___ " + oColors.brightMagenta + r"/:/ \:\ "+ - oColors.brightYellow + r"\ " + oColors.brightMagenta + r"/::"'\\'+ oColors.brightYellow + r"~" + - oColors.brightMagenta + r"\:\ "+ oColors.brightYellow + r"\ " + oColors.brightMagenta + r"/::\ "+ - oColors.brightYellow + r""'\\') - print(oColors.brightMagenta + r" /:/\:\ \:"'\\'+ oColors.brightYellow + r"__\ " + oColors.brightMagenta + r"/:/"+ - oColors.brightYellow + r"__/ " + oColors.brightMagenta + r"/:/"+ oColors.brightYellow + r"__/ " + - oColors.brightMagenta + r"/"'\\'+ oColors.brightYellow + r"__\ " + oColors.brightMagenta + r"/:/"+ - oColors.brightYellow + r"__/_" + oColors.brightMagenta + r"\:"'\\'+ oColors.brightYellow + r"__\ " + - oColors.brightMagenta + r"/:/\:\ \:"'\\' + oColors.brightYellow + r"__\ " + - oColors.brightMagenta + r"/:/\:"'\\'+ oColors.brightYellow + r"__\ ") - print(oColors.brightMagenta + r" " + oColors.brightMagenta + r"\/"+ oColors.brightYellow + r"__" + - oColors.brightMagenta + r"\:\/:/"+ oColors.brightYellow + r" / " + oColors.brightMagenta + r"\:"'\\'+ - oColors.brightYellow + r" \ " + oColors.brightMagenta + r"\:"'\\' + oColors.brightYellow + r" \ " + - oColors.brightMagenta + r"/:/ "+ oColors.brightYellow + r"/ " + oColors.brightMagenta + r"\:\ /\ \/" + - oColors.brightYellow + r"__/ " + oColors.brightMagenta + r"\:"'\\' + oColors.brightYellow + r"~" + - oColors.brightMagenta + r"\:\ \/" + oColors.brightYellow + r"__/ " + oColors.brightMagenta + r"/:/ \/"+ - oColors.brightYellow + r"__/") - print(oColors.brightMagenta + r" \::/ "+ oColors.brightYellow + r"/ " + oColors.brightMagenta + r"\:\ "+ - oColors.brightYellow + r"\ " + oColors.brightMagenta + r"\:\ /:/ "+ oColors.brightYellow + r"/ " + - oColors.brightMagenta + r"\:\ \:"'\\'+ oColors.brightYellow + r"__\ " + oColors.brightMagenta + r"\:\ \:"'\\'+ - oColors.brightYellow + r"__\ " + oColors.brightMagenta + r"/:/ "+ oColors.brightYellow + r"/ ") - print(oColors.brightMagenta + r" \/"+ oColors.brightYellow + r"__/ " + - oColors.brightMagenta + r"\:\ " + oColors.brightYellow + r"\ " + oColors.brightMagenta + r"\:\/:/ "+ - oColors.brightYellow + r"/ " + oColors.brightMagenta + r"\:\/:/ "+ oColors.brightYellow + r"/ " + - oColors.brightMagenta + r"\:\ \/"+ oColors.brightYellow + r"__/ " + oColors.brightMagenta + r"\/"+ - oColors.brightYellow + r"__/ ") - print(oColors.brightMagenta + r" \:"'\\' + oColors.brightYellow + r"__\ " + - oColors.brightMagenta + r"\::/ " + oColors.brightYellow + r"/ " + oColors.brightMagenta + r"\::/ " + - oColors.brightYellow + r"/ " + oColors.brightMagenta + r"\:"'\\' + oColors.brightYellow + r"__\ ") - print(oColors.brightMagenta + r" \/" + oColors.brightYellow + r"__/ " + - oColors.brightMagenta + r"\/" + oColors.brightYellow + r"__/ " + oColors.brightMagenta + r"\/" + - oColors.brightYellow + r"__/ " + oColors.brightMagenta + r"\/" + oColors.brightYellow + r"__/ " + - oColors.standardWhite) - print() - print() - print(oColors.brightBlack + " ┌────────────────────────────────────┐" + oColors.standardWhite) - print(oColors.brightBlack + " │ [" + oColors.brightMagenta + "By Neocky" +oColors.brightBlack + - "] │ " + oColors.standardWhite) - print(oColors.brightBlack + " │ " + oColors.brightMagenta + "https://github.com/Neocky/pluGET" + oColors.brightBlack + - " │ " + oColors.standardWhite) - print(oColors.brightBlack + " └────────────────────────────────────┘" + oColors.standardWhite) - - -def printHorizontalLine(): - print(" ─────────────────────────────────────────────────────────────────────────────────") - - -def printMainMenu(): - printLogo() - printHorizontalLine() diff --git a/old_src/utils/utilities.py b/old_src/utils/utilities.py deleted file mode 100644 index 52eb6f6..0000000 --- a/old_src/utils/utilities.py +++ /dev/null @@ -1,175 +0,0 @@ -# misc functions -import os -import sys -import shutil -import requests -from pathlib import Path - -from utils.consoleoutput import oColors -from handlers.handle_config import configurationValues -from handlers.handle_sftp import createSFTPConnection -from handlers.handle_ftp import createFTPConnection - - -def getHelp(): - print(oColors.brightYellow+ "Need help?" + oColors.standardWhite) - print("For a list of all commands: 'help command'") - print("Or check the docs here:") - print("https://github.com/Neocky/pluGET") - print("Or go to the official discord.") - print("The link for discord can also be found on Github!") - - -def getCommandHelp(optionalParams): - if optionalParams == None: - optionalParams = 'all' - print(oColors.brightBlack + f"Help for command: {optionalParams}" +oColors.standardWhite) - print("┌────────────────┬─────────────────┬─────────────────┬────────────────────────────────────────────────────────┐") - print("│ Command │ Selected Object │ Optional Params │ Function │") - print("└────────────────┴─────────────────┴─────────────────┴────────────────────────────────────────────────────────┘") - while True: - if optionalParams == 'all': - print(oColors.brightBlack + " GENERAL:" + oColors.standardWhite) - print(" exit ./anything Exit pluGET") - print(" help ./anything Get general help") - print(" help command all/command Get specific help to the commands of pluGET") - print(oColors.brightBlack + " PLUGIN MANAGEMENT:" + oColors.standardWhite) - print(" get Name/ID Version Downloads the latest version of a plugin") - print(" check Name/ID/all changelog Check for an update of an installed plugin") - print(" update Name/ID/all Update installed plugins to the latest version") - print(" search Name Search for a plugin and download the latest version") - print(" remove Name/ID Delete an installed plugin") - print(oColors.brightBlack + " SERVER SOFTWARE MANAGEMENT:" + oColors.standardWhite) - print(" check serverjar Check installed server software for an update") - print(" update serverjar Version/Latest Update installed server software to a specific version") - print(" get-paper PaperVersion McVersion Downloads a specific PaperMc version") - break - - if optionalParams == 'exit': - print(oColors.brightBlack + " GENERAL:" + oColors.standardWhite) - print(" exit ./anything Exit pluGET") - break - - if optionalParams == 'help': - print(oColors.brightBlack + " GENERAL:" + oColors.standardWhite) - print(" help ./anything Get general help") - print(" help command all/command Get specific help to the commands of pluGET") - break - - if optionalParams == 'get': - print(oColors.brightBlack + " PLUGIN MANAGEMENT:" + oColors.standardWhite) - print(print(" get Name/ID Version Downloads the latest version of a plugin")) - break - - if optionalParams == 'check': - print(oColors.brightBlack + " PLUGIN MANAGEMENT:" + oColors.standardWhite) - print(" check Name/ID/all Check for an update of an installed plugin") - print(oColors.brightBlack + " SERVER SOFTWARE MANAGEMENT:" + oColors.standardWhite) - print(" check serverjar Check installed server software for an update") - break - - if optionalParams == 'update': - print(oColors.brightBlack + " PLUGIN MANAGEMENT:" + oColors.standardWhite) - print(" update Name/ID/all Update installed plugins to the latest version") - print(oColors.brightBlack + " SERVER SOFTWARE MANAGEMENT:" + oColors.standardWhite) - print(" update serverjar Version/Latest Update installed server software to a specific version") - break - - if optionalParams == 'search': - print(oColors.brightBlack + " PLUGIN MANAGEMENT:" + oColors.standardWhite) - print(" search Name Search for a plugin and download the latest version") - break - - if optionalParams == 'remove': - print(oColors.brightBlack + " PLUGIN MANAGEMENT:" + oColors.standardWhite) - print(" remove Name/ID Delete an installed plugin") - break - - if optionalParams == 'get-paper': - print(oColors.brightBlack + " SERVER SOFTWARE MANAGEMENT:" + oColors.standardWhite) - print(" get-paper PaperVersion McVersion Downloads a specific PaperMc version") - break - - else: - print(oColors.brightRed + "Error: Help for Command not found. Please try again. :(" + oColors.standardWhite) - break - - -def check_local_plugin_folder(): - configValues = configurationValues() - if configValues.localPluginFolder: - if configValues.seperateDownloadPath: - pluginFolderPath = configValues.pathToSeperateDownloadPath - else: - pluginFolderPath = configValues.pathToPluginFolder - - if not os.path.isdir(pluginFolderPath): - print(oColors.brightRed + "Plugin folder coulnd*t be found. Creating one..." + oColors.standardWhite) - try: - os.mkdir(pluginFolderPath) - except OSError: - print(oColors.brightRed + "Creation of directory %s failed" % pluginFolderPath) - print(oColors.brightRed + "Please check the config file!" + oColors.standardWhite) - input("Press any key + enter to exit...") - sys.exit() - else: - print("Created directory %s" % pluginFolderPath) - - -def apiTest(): - apiStatusUrl = 'https://api.spiget.org/v2/status' - try: - r = requests.get(apiStatusUrl) - except (requests.exceptions.HTTPError, requests.exceptions.ConnectionError): - print(oColors.brightRed + "Couldn't make a connection to the API. Check you connection to the internet!" + oColors.standardWhite) - input("Press any key + enter to exit...") - sys.exit() - if r.status_code != 200: - print(oColors.brightRed + "Problems with the API detected. Plese try it again later!" + oColors.standardWhite) - input("Press any key + enter to exit...") - sys.exit() - - -def check_requirements(): - configValues = configurationValues() - apiTest() - check_local_plugin_folder() - if not configValues.localPluginFolder: - if configValues.sftp_useSftp: - createSFTPConnection() - else: - createFTPConnection() - - -def createTempPluginFolder(): - configValues = configurationValues() - tempPluginFolder = Path("./TempSFTPFolder") - if not os.path.isdir(tempPluginFolder): - try: - os.mkdir(tempPluginFolder) - except OSError: - print(oColors.brightRed + "Creation of directory %s failed" % configValues.pathToPluginFolder) - print(oColors.brightRed + "Please check the config file!" + oColors.standardWhite) - input("Press any key + enter to exit...") - sys.exit() - return tempPluginFolder - - -def deleteTempPluginFolder(tempPluginFolder): - try: - shutil.rmtree(tempPluginFolder) - except OSError as e: - print ("Error: %s - %s." % (e.filename, e.strerror)) - - -def calculateFileSizeMb(downloadFileSize): - fileSizeDownload = int(downloadFileSize) - fileSizeMb = fileSizeDownload / 1024 / 1024 - roundedFileSize = round(fileSizeMb, 2) - return roundedFileSize - -def calculateFileSizeKb(downloadFileSize): - fileSizeDownload = int(downloadFileSize) - fileSizeKb = fileSizeDownload / 1024 - roundedFileSize = round(fileSizeKb, 2) - return roundedFileSize diff --git a/old_src/utils/web_request.py b/old_src/utils/web_request.py deleted file mode 100644 index e4e6652..0000000 --- a/old_src/utils/web_request.py +++ /dev/null @@ -1,9 +0,0 @@ -# Handles the web requests -import requests - - -def doAPIRequest(url): - headers = {'user-agent': 'pluGET/1.0'} - response = requests.get(url, headers=headers) - packageDetails = response.json() - return packageDetails diff --git a/src/plugin/plugin_updatechecker.py b/src/plugin/plugin_updatechecker.py index cdcf3b3..ceb3850 100644 --- a/src/plugin/plugin_updatechecker.py +++ b/src/plugin/plugin_updatechecker.py @@ -367,7 +367,7 @@ def check_installed_plugins(input_selected_object : str="all", input_parameter : if plugins_with_udpates != 0: rich_console.print( "[not bold][bright_yellow]Plugins with available updates: [bright_green]" + - f"{plugins_with_udpates}[bright_yellow]/[bright_magenta]{plugin_count}" + f"{plugins_with_udpates}[bright_yellow]/[green]{plugin_count}" ) else: rich_console.print(f"[bright_green]All found plugins are on the newest version!") @@ -423,7 +423,8 @@ def update_installed_plugins(input_selected_object : str="all", no_confirmation rich_console.print( "\n [not bold][bright_white]● [bright_magenta]" + - f"{plugin.plugin_name} [green]{plugin.plugin_file_version} [cyan]→ [bright_green]{plugin.plugin_latest_version}" + f"{plugin.plugin_name} [green]{plugin.plugin_file_version}" + \ + f" [cyan]→ [bright_green]{plugin.plugin_latest_version}" ) plugins_updated += 1