2021-03-12 00:39:39 +00:00
|
|
|
import os
|
|
|
|
import re
|
2021-03-16 00:04:13 +00:00
|
|
|
from pathlib import Path
|
2021-03-12 00:39:39 +00:00
|
|
|
|
|
|
|
from utils.consoleoutput import oColors
|
|
|
|
from handlers.handle_config import checkConfig
|
|
|
|
from handlers.handle_sftp import createSFTPConnection, sftp_listAll
|
|
|
|
from plugin.plugin_updatechecker import getFileName, getFileVersion, getInstalledPlugin, createPluginList
|
|
|
|
|
|
|
|
|
|
|
|
def removePlugin(pluginToRemove):
|
|
|
|
createPluginList()
|
|
|
|
if not checkConfig().localPluginFolder:
|
|
|
|
sftp = createSFTPConnection()
|
|
|
|
pluginList = sftp_listAll(sftp)
|
|
|
|
else:
|
|
|
|
pluginList = os.listdir(checkConfig().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 checkConfig().localPluginFolder:
|
|
|
|
pluginPath = checkConfig().sftp_folderPath
|
2021-03-16 00:04:13 +00:00
|
|
|
pluginPath = f"{pluginPath}/{plugin}"
|
2021-03-12 00:39:39 +00:00
|
|
|
sftp = createSFTPConnection()
|
|
|
|
sftp.remove(pluginPath)
|
|
|
|
print(f"Removed: {fileName}")
|
|
|
|
i += 1
|
|
|
|
break
|
|
|
|
else:
|
|
|
|
pluginPath = checkConfig().pathToPluginFolder
|
2021-03-16 00:04:13 +00:00
|
|
|
pluginPath = Path(f"{pluginPath}/{plugin}")
|
2021-03-12 00:39:39 +00:00
|
|
|
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)
|