Fixed big duplicate array issue for a plugin; Added seperate download path

Changes:
- Fixed big issue where two arrays would be created for a plugin and then everything else would fail
- added seperate location for downloaded files
This commit is contained in:
Neocky 2021-03-14 13:25:13 +01:00
parent 3e7beb477a
commit 7e9b5850be
4 changed files with 62 additions and 16 deletions

View File

@ -22,18 +22,32 @@ def checkConfig():
config.read("config.ini") config.read("config.ini")
localPluginFolder = config['General']['LocalPluginFolder'] localPluginFolder = config['General']['LocalPluginFolder']
pathToPluginFolder = config['General']['PathToPluginFolder'] pathToPluginFolder = config['General']['PathToPluginFolder']
seperateDownloadPath = config['General']['SeperateDownloadPath']
pathToSeperateDownloadPath = config['General']['PathToSeperateDownloadPath']
sftp_server = config['SFTP - Remote Server']['Server'] sftp_server = config['SFTP - Remote Server']['Server']
sftp_user = config['SFTP - Remote Server']['Username'] sftp_user = config['SFTP - Remote Server']['Username']
sftp_password = config['SFTP - Remote Server']['Password'] sftp_password = config['SFTP - Remote Server']['Password']
sftp_port = config['SFTP - Remote Server']['Port'] sftp_port = config['SFTP - Remote Server']['Port']
sftp_folderPath = config['SFTP - Remote Server']['PluginFolderForUpload'] sftp_folderPath = config['SFTP - Remote Server']['PluginFolderOnServer']
sftp_seperateDownloadPath = config['SFTP - Remote Server']['SeperateDownloadPath']
sftp_pathToSeperateDownloadPath = config['SFTP - Remote Server']['PathToSeperateDownloadPath']
sftp_port = int(sftp_port) sftp_port = int(sftp_port)
if localPluginFolder == 'True': if localPluginFolder == 'True':
localPluginFolder = True localPluginFolder = True
else: else:
localPluginFolder = False localPluginFolder = False
if seperateDownloadPath == 'True':
seperateDownloadPath = True
else:
seperateDownloadPath = False
if sftp_seperateDownloadPath == 'True':
sftp_seperateDownloadPath = True
else:
sftp_seperateDownloadPath = False
os.chdir(currentFolder) os.chdir(currentFolder)
return configValues return configValues
@ -45,13 +59,21 @@ def createConfig():
config['General'][';'] = 'If a local plugin folder exists (True/False): (If False SFTP will be used)' config['General'][';'] = 'If a local plugin folder exists (True/False): (If False SFTP will be used)'
config['General']['LocalPluginFolder'] = 'True' config['General']['LocalPluginFolder'] = 'True'
config['General']['PathToPluginFolder'] = 'C:\\Users\\USER\\Desktop\\plugins' config['General']['PathToPluginFolder'] = 'C:\\Users\\USER\\Desktop\\plugins'
config['General'][';_'] = 'If you want a different folder to store the updated plugins change to (True/False) and the path below'
config['General']['SeperateDownloadPath'] = 'False'
config['General']['PathToSeperateDownloadPath'] = 'C:\\Users\\USER\\Desktop\\plugins'
config['SFTP - Remote Server'] = {} config['SFTP - Remote Server'] = {}
config['SFTP - Remote Server']['Server'] = '0.0.0.0' config['SFTP - Remote Server']['Server'] = '0.0.0.0'
config['SFTP - Remote Server']['Username'] = 'user' config['SFTP - Remote Server']['Username'] = 'user'
config['SFTP - Remote Server']['Password'] = 'password' config['SFTP - Remote Server']['Password'] = 'password'
config['SFTP - Remote Server'][';'] = 'Normally you won*t need to change anything below this line' config['SFTP - Remote Server'][';'] = 'Normally you won*t need to change anything below this line'
config['SFTP - Remote Server']['Port'] = '22' config['SFTP - Remote Server']['Port'] = '22'
config['SFTP - Remote Server']['PluginFolderForUpload'] = '.\\plugins' config['SFTP - Remote Server']['PluginFolderOnServer'] = '.\\plugins'
config['SFTP - Remote Server'][';_'] = 'If you want a different folder to store the updated plugins 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: with open('./config.ini', 'w') as configfile:
config.write(configfile) config.write(configfile)

View File

@ -30,10 +30,18 @@ def handleInput(inputCommand, inputSelectedObject, inputParams):
if inputCommand == 'get': if inputCommand == 'get':
if inputSelectedObject.isdigit(): if inputSelectedObject.isdigit():
if not checkConfig().localPluginFolder: if not checkConfig().localPluginFolder:
getSpecificPackage(inputSelectedObject, checkConfig().sftp_folderPath, inputParams) if checkConfig().sftp_seperateDownloadPath is True:
pluginPath = checkConfig().sftp_pathToSeperateDownloadPath
else:
pluginPath = checkConfig().sftp_folderPath
getSpecificPackage(inputSelectedObject, pluginPath, inputParams)
break break
else: else:
getSpecificPackage(inputSelectedObject, checkConfig().pathToPluginFolder, inputParams) if checkConfig().seperateDownloadPath is True:
pluginPath = checkConfig().pathToSeperateDownloadPath
else:
pluginPath = checkConfig().pathToPluginFolder
getSpecificPackage(inputSelectedObject, pluginPath, inputParams)
break break
else: else:
searchPackage(inputSelectedObject) searchPackage(inputSelectedObject)

View File

@ -162,7 +162,10 @@ def updateInstalledPackage(inputSelectedObject='all'):
getSpecificPackage(pluginId, checkConfig().sftp_folderPath) getSpecificPackage(pluginId, checkConfig().sftp_folderPath)
pluginsUpdated += 1 pluginsUpdated += 1
else: else:
pluginPath = checkConfig().pathToPluginFolder if checkConfig().seperateDownloadPath is True:
pluginPath = checkConfig().pathToSeperateDownloadPath
else:
pluginPath = checkConfig().pathToPluginFolder
pluginPath = f"{pluginPath}\\{plugin}" pluginPath = f"{pluginPath}\\{plugin}"
os.remove(pluginPath) os.remove(pluginPath)
getSpecificPackage(pluginId, checkConfig().pathToPluginFolder) getSpecificPackage(pluginId, checkConfig().pathToPluginFolder)
@ -182,6 +185,10 @@ def updateInstalledPackage(inputSelectedObject='all'):
print(f"{latestVersion}".ljust(8)) print(f"{latestVersion}".ljust(8))
if not checkConfig().localPluginFolder: if not checkConfig().localPluginFolder:
if checkConfig().sftp_seperateDownloadPath is True:
pluginPath = checkConfig().sftp_pathToSeperateDownloadPath
else:
pluginPath = checkConfig().sftp_folderPath
pluginPath = checkConfig().sftp_folderPath pluginPath = checkConfig().sftp_folderPath
pluginPath = f"{pluginPath}\\{plugin}" pluginPath = f"{pluginPath}\\{plugin}"
sftp = createSFTPConnection() sftp = createSFTPConnection()
@ -190,7 +197,10 @@ def updateInstalledPackage(inputSelectedObject='all'):
pluginsUpdated += 1 pluginsUpdated += 1
else: else:
pluginPath = checkConfig().pathToPluginFolder if checkConfig().seperateDownloadPath is True:
pluginPath = checkConfig().pathToSeperateDownloadPath
else:
pluginPath = checkConfig().pathToPluginFolder
pluginPath = f"{pluginPath}\\{plugin}" pluginPath = f"{pluginPath}\\{plugin}"
os.remove(pluginPath) os.remove(pluginPath)
getSpecificPackage(pluginId, checkConfig().pathToPluginFolder) getSpecificPackage(pluginId, checkConfig().pathToPluginFolder)
@ -226,14 +236,15 @@ def getInstalledPlugin(localFileName, localFileVersion):
plugin_is_outdated = compareVersions(plugin_latest_version, updateVersion) plugin_is_outdated = compareVersions(plugin_latest_version, updateVersion)
addToPluginList(pID, updateId, plugin_latest_version , plugin_is_outdated) addToPluginList(pID, updateId, plugin_latest_version , plugin_is_outdated)
break break
i = i + 1 i = i + 1
else: else:
pID = None if plugin_match_found != True:
updateId = None pID = None
plugin_latest_version = None updateId = None
plugin_is_outdated = None plugin_latest_version = None
addToPluginList(pID, updateId, plugin_latest_version , plugin_is_outdated) plugin_is_outdated = None
addToPluginList(pID, updateId, plugin_latest_version , plugin_is_outdated)
return pluginID return pluginID

View File

@ -19,17 +19,22 @@ def getHelp():
def check_local_plugin_folder(): def check_local_plugin_folder():
if checkConfig().localPluginFolder: if checkConfig().localPluginFolder:
if not os.path.isdir(checkConfig().pathToPluginFolder): if checkConfig().seperateDownloadPath:
pluginFolderPath = checkConfig().pathToSeperateDownloadPath
else:
pluginFolderPath = checkConfig().pathToPluginFolder
if not os.path.isdir(pluginFolderPath):
print(oColors.brightRed + "Plugin folder coulnd*t be found. Creating one..." + oColors.standardWhite) print(oColors.brightRed + "Plugin folder coulnd*t be found. Creating one..." + oColors.standardWhite)
try: try:
os.mkdir(checkConfig().pathToPluginFolder) os.mkdir(pluginFolderPath)
except OSError: except OSError:
print(oColors.brightRed + "Creation of directory %s failed" % checkConfig().pathToPluginFolder) print(oColors.brightRed + "Creation of directory %s failed" % pluginFolderPath)
print(oColors.brightRed + "Please check the config file!" + oColors.standardWhite) print(oColors.brightRed + "Please check the config file!" + oColors.standardWhite)
input("Press any key + enter to exit...") input("Press any key + enter to exit...")
sys.exit() sys.exit()
else: else:
print("Created directory %s" % checkConfig().pathToPluginFolder) print("Created directory %s" % pluginFolderPath)
def apiTest(): def apiTest():