Fixed TypeError while checking for updates & added update notes test

Changes:
- fixed TypeError when folder in plugin folder had .jar in name
- added update notes test to check all
This commit is contained in:
Neocky 2021-06-12 17:03:55 +02:00
parent 93818b90d7
commit 41527926b2
3 changed files with 30 additions and 11 deletions

View File

@ -101,8 +101,7 @@ def ftp_validateFileAttributes(ftp, pluginPath):
pluginFTPAttribute = ftp.lstat(pluginPath) pluginFTPAttribute = ftp.lstat(pluginPath)
if stat.S_ISDIR(pluginFTPAttribute.st_mode): if stat.S_ISDIR(pluginFTPAttribute.st_mode):
return False return False
if stat.S_ISDIR(pluginFTPAttribute.st_mode): elif re.search(r'.jar$', pluginPath):
if re.search(r'.jar$', pluginFTPAttribute.filename):
return True return True
else: else:
return False return False

View File

@ -97,8 +97,7 @@ def sftp_validateFileAttributes(sftp, pluginPath):
pluginSFTPAttribute = sftp.lstat(pluginPath) pluginSFTPAttribute = sftp.lstat(pluginPath)
if stat.S_ISDIR(pluginSFTPAttribute.st_mode): if stat.S_ISDIR(pluginSFTPAttribute.st_mode):
return False return False
if stat.S_ISDIR(pluginSFTPAttribute.st_mode): elif re.search(r'.jar$', pluginPath):
if re.search(r'.jar$', pluginSFTPAttribute.filename):
return True return True
else: else:
return False return False

View File

@ -3,6 +3,7 @@ import re
import io import io
import stat import stat
import pysftp import pysftp
import base64
from zipfile import ZipFile from zipfile import ZipFile
from urllib.error import HTTPError from urllib.error import HTTPError
from pathlib import Path from pathlib import Path
@ -114,6 +115,25 @@ def eggCrackingJar(localJarFileName, searchMode):
return pluginName return pluginName
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)
lines = versionLatestDescriptionText.split("\n")
non_empty_lines = [line for line in lines if line.strip() != ""]
string_without_empty_lines = ""
for line in non_empty_lines:
string_without_empty_lines += line + "\n"
return string_without_empty_lines
def checkInstalledPackage(inputSelectedObject="all"): def checkInstalledPackage(inputSelectedObject="all"):
configValues = configurationValues() configValues = configurationValues()
createPluginList() createPluginList()
@ -154,7 +174,6 @@ def checkInstalledPackage(inputSelectedObject="all"):
continue continue
if not re.search(r'.jar$', plugin): if not re.search(r'.jar$', plugin):
continue continue
try: try:
fileName = getFileName(plugin) fileName = getFileName(plugin)
fileVersion = getFileVersion(plugin) fileVersion = getFileVersion(plugin)
@ -209,6 +228,8 @@ def checkInstalledPackage(inputSelectedObject="all"):
print(f"{fileVersion}".ljust(15), end='') print(f"{fileVersion}".ljust(15), end='')
print(f"{pluginLatestVersion}".ljust(15), end='') print(f"{pluginLatestVersion}".ljust(15), end='')
print(f"{pluginIsOutdated}".ljust(5) + oColors.standardWhite) print(f"{pluginIsOutdated}".ljust(5) + oColors.standardWhite)
description = getUpdateDescription(pluginId)
print(description)
i += 1 i += 1
except TypeError: except TypeError: