mirror of
https://github.com/Neocky/pluGET.git
synced 2024-04-29 16:12:30 +00:00
Compare commits
4 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
cd4a66002c | ||
![]() |
0d709cfb6f | ||
![]() |
edc300a33d | ||
![]() |
6e980a1580 |
10
README.md
10
README.md
@@ -69,7 +69,7 @@ pluGET can:
|
||||
- update every installed/one specific plugin
|
||||
- check for an update of every installed/one specific plugin
|
||||
- remove a plugin from the plugin folder
|
||||
- manager server software:
|
||||
- manage server software:
|
||||
- download a specific server software version
|
||||
- check installed server software for update
|
||||
- update installed server software to a specific version
|
||||
@@ -88,7 +88,7 @@ If you feel like showing your love and/or appreciation for this project then how
|
||||
|
||||
|
||||
## Need help?
|
||||
[<img src="https://i.imgur.com/D5vyVzC.png" alt="Discord" width="272"/>](https://discord.gg/475Uf4NBPF)
|
||||
[<img src="https://i.ibb.co/CMKbT0L/rsz-1rsz-discord.png" alt="Discord" width="272"/>](https://discord.gg/475Uf4NBPF)
|
||||
|
||||
|
||||
## Installation
|
||||
@@ -104,7 +104,7 @@ py -m pip install -r requirements.txt
|
||||
|
||||
|
||||
### Edit the Config
|
||||
When run the first time, the `config.ini` file will be created in the `\src`folder and the program will close.
|
||||
When run the first time, the `config.ini` file will be created in the `\src` folder and the program will close.
|
||||
Edit the config to your needs and relaunch pluGET.
|
||||
**Now you are good to go!**
|
||||
|
||||
@@ -112,6 +112,10 @@ Edit the config to your needs and relaunch pluGET.
|
||||
### Windows:
|
||||
Execute the `launcher.bat` in the `\pluGET` folder.
|
||||
This will launch pluGET correctly.
|
||||
Sometimes the security warning `Windows protected your PC` comes when launching the `launcher.bat` file.
|
||||
This is a normal behaviour from the windows defender because this is a unknown `.bat` file.
|
||||
To run the `launcher.bat` anyway, click `More Info` and then `Run anyway` when the message pops up.
|
||||
|
||||
### Linux:
|
||||
Use `cd` to change into the `/pluGET` directory and change the permission of the `launcher.sh` to make it executeable:
|
||||
```
|
||||
|
@@ -46,7 +46,7 @@ def getFileVersion(pluginName):
|
||||
if pluginVersionString.endswith('.'):
|
||||
pluginVersionString = ''
|
||||
if pluginVersionString == '':
|
||||
pluginVersionString = eggCrackingJar(pluginNameFull)
|
||||
pluginVersionString = eggCrackingJar(pluginNameFull, 'version')
|
||||
return pluginVersionString
|
||||
|
||||
|
||||
@@ -65,7 +65,7 @@ def compareVersions(plugin_latest_version, pluginVersion):
|
||||
return plugin_is_outdated
|
||||
|
||||
|
||||
def eggCrackingJar(localJarFileName):
|
||||
def eggCrackingJar(localJarFileName, searchMode):
|
||||
configValues = configurationValues()
|
||||
if not configValues.localPluginFolder:
|
||||
if configValues.sftp_useSftp:
|
||||
@@ -82,21 +82,34 @@ def eggCrackingJar(localJarFileName):
|
||||
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 "version: " in line:
|
||||
pluginVersion = line.replace('version: ', '')
|
||||
pluginVersion = pluginVersion.replace('\n', '')
|
||||
break
|
||||
if searchMode == 'version':
|
||||
if re.match(r'^version: ', line):
|
||||
pluginVersion = line.replace('version: ', '')
|
||||
pluginVersion = pluginVersion.replace('\n', '')
|
||||
pluginVersion = pluginVersion.replace("'", '')
|
||||
pluginVersion = pluginVersion.replace('"', '')
|
||||
elif searchMode == 'name':
|
||||
if re.match(r'^name: ', line):
|
||||
pluginName = line.replace('name: ', '')
|
||||
pluginName = pluginName.replace('\n', '')
|
||||
pluginName = pluginName.replace("'", '')
|
||||
pluginName = pluginName.replace('"', '')
|
||||
|
||||
except FileNotFoundError:
|
||||
pluginVersion = ''
|
||||
pluginName = ''
|
||||
if not configValues.localPluginFolder:
|
||||
deleteTempPluginFolder(tempPluginFolderPath)
|
||||
return pluginVersion
|
||||
if searchMode == 'version':
|
||||
return pluginVersion
|
||||
if searchMode == 'name':
|
||||
return pluginName
|
||||
|
||||
|
||||
def checkInstalledPackage(inputSelectedObject="all"):
|
||||
@@ -122,7 +135,7 @@ def checkInstalledPackage(inputSelectedObject="all"):
|
||||
try:
|
||||
fileName = getFileName(plugin)
|
||||
fileVersion = getFileVersion(plugin)
|
||||
pluginId = getInstalledPlugin(fileName, fileVersion)
|
||||
pluginId = getInstalledPlugin(fileName, fileVersion, plugin)
|
||||
except TypeError:
|
||||
continue
|
||||
pluginIdStr = str(pluginId)
|
||||
@@ -200,7 +213,7 @@ def updateInstalledPackage(inputSelectedObject='all'):
|
||||
try:
|
||||
fileName = getFileName(plugin)
|
||||
fileVersion = getFileVersion(plugin)
|
||||
pluginId = getInstalledPlugin(fileName, fileVersion)
|
||||
pluginId = getInstalledPlugin(fileName, fileVersion, plugin)
|
||||
latestVersion = getLatestPluginVersion(pluginId)
|
||||
except TypeError:
|
||||
continue
|
||||
@@ -331,27 +344,40 @@ def updateInstalledPackage(inputSelectedObject='all'):
|
||||
print(oColors.brightGreen + "All found plugins are on the latest version!" + oColors.standardWhite)
|
||||
|
||||
|
||||
def getInstalledPlugin(localFileName, localFileVersion):
|
||||
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
|
||||
for ressource in packageName:
|
||||
localFileVersionNew = localFileVersion
|
||||
i = 0
|
||||
for i in range(0, 3):
|
||||
if plugin_match_found == True:
|
||||
break
|
||||
pID = ressource["id"]
|
||||
url2 = f"https://api.spiget.org/v2/resources/{pID}/versions?size=100&sort=-name"
|
||||
packageVersions = doAPIRequest(url2)
|
||||
for updates in packageVersions:
|
||||
updateVersion = updates["name"]
|
||||
if localFileVersion 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(pID, updateId, plugin_latest_version , plugin_is_outdated)
|
||||
return pluginID
|
||||
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"
|
||||
packageName = doAPIRequest(url)
|
||||
localFileVersion = localFileVersionNew
|
||||
|
||||
for ressource in packageName:
|
||||
if plugin_match_found == True:
|
||||
break
|
||||
pID = ressource["id"]
|
||||
url2 = f"https://api.spiget.org/v2/resources/{pID}/versions?size=100&sort=-name"
|
||||
packageVersions = doAPIRequest(url2)
|
||||
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(pID, updateId, plugin_latest_version , plugin_is_outdated)
|
||||
return pluginID
|
||||
|
||||
else:
|
||||
if plugin_match_found != True:
|
||||
|
Reference in New Issue
Block a user