patch: listplugs, plugin version system and progress bar
This commit is contained in:
@@ -9,7 +9,7 @@ namespace PluginManager.Online.Helpers
|
||||
{
|
||||
public class VersionString
|
||||
{
|
||||
public int PackageID;
|
||||
public int PackageVersionID;
|
||||
public int PackageMainVersion;
|
||||
public int PackageCheckVersion;
|
||||
|
||||
@@ -18,7 +18,7 @@ namespace PluginManager.Online.Helpers
|
||||
string[] data = version.Split('.');
|
||||
try
|
||||
{
|
||||
PackageID = int.Parse(data[0]);
|
||||
PackageVersionID = int.Parse(data[0]);
|
||||
PackageMainVersion = int.Parse(data[1]);
|
||||
PackageCheckVersion = int.Parse(data[2]);
|
||||
}
|
||||
@@ -28,21 +28,25 @@ namespace PluginManager.Online.Helpers
|
||||
}
|
||||
}
|
||||
|
||||
public static bool operator >(VersionString s1, VersionString s2)
|
||||
{
|
||||
if (s1.PackageID != s2.PackageID) throw new Exception("Can not compare two different paks");
|
||||
if (s1.PackageMainVersion > s2.PackageMainVersion) return true;
|
||||
if (s1.PackageMainVersion == s2.PackageMainVersion && s1.PackageCheckVersion > s2.PackageCheckVersion) return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
#region operators
|
||||
public static bool operator >(VersionString s1, VersionString s2)
|
||||
{
|
||||
if (s1.PackageVersionID > s2.PackageVersionID) return true;
|
||||
if (s1.PackageVersionID == s2.PackageVersionID)
|
||||
{
|
||||
if (s1.PackageMainVersion > s2.PackageMainVersion) return true;
|
||||
if (s1.PackageMainVersion == s2.PackageMainVersion && s1.PackageCheckVersion > s2.PackageCheckVersion) return true;
|
||||
|
||||
}
|
||||
return false;
|
||||
}
|
||||
public static bool operator <(VersionString s1, VersionString s2) => !(s1 > s2) && s1 != s2;
|
||||
|
||||
public static bool operator ==(VersionString s1, VersionString s2)
|
||||
{
|
||||
if (s1.PackageID == s2.PackageID && s1.PackageMainVersion == s2.PackageMainVersion && s1.PackageCheckVersion == s2.PackageCheckVersion) return true;
|
||||
if (s1.PackageVersionID == s2.PackageVersionID && s1.PackageMainVersion == s2.PackageMainVersion && s1.PackageCheckVersion == s2.PackageCheckVersion) return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -55,12 +59,14 @@ namespace PluginManager.Online.Helpers
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return "{PackageID: " + PackageID + ", PackageVersion: " + PackageMainVersion + ", PackageCheckVersion: " + PackageCheckVersion + "}";
|
||||
return "{PackageID: " + PackageVersionID + ", PackageVersion: " + PackageMainVersion + ", PackageCheckVersion: " + PackageCheckVersion + "}";
|
||||
}
|
||||
|
||||
public string ToShortString()
|
||||
{
|
||||
return $"{PackageID}.{PackageMainVersion}.{PackageCheckVersion}";
|
||||
if (PackageVersionID == 0 && PackageCheckVersion == 0 && PackageMainVersion == 0)
|
||||
return "Unknown";
|
||||
return $"{PackageVersionID}.{PackageMainVersion}.{PackageCheckVersion}";
|
||||
}
|
||||
|
||||
public static VersionString? GetVersionOfPackage(string pakName)
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
using PluginManager.Online.Helpers;
|
||||
using PluginManager.Others;
|
||||
|
||||
using OperatingSystem = PluginManager.Others.OperatingSystem;
|
||||
@@ -39,7 +40,7 @@ public class PluginsManager
|
||||
var op = Functions.GetOperatingSystem();
|
||||
|
||||
var len = lines.Length;
|
||||
string[] titles = { "Name", "Description", "Plugin Type", "Libraries", "Installed" };
|
||||
string[] titles = { "Name", "Description", "Type", "Version", "Installed" };
|
||||
data.Add(new[] { "-", "-", "-", "-", "-" });
|
||||
data.Add(titles);
|
||||
data.Add(new[] { "-", "-", "-", "-", "-" });
|
||||
@@ -56,11 +57,7 @@ public class PluginsManager
|
||||
display[0] = content[0];
|
||||
display[1] = content[1];
|
||||
display[2] = content[2];
|
||||
if (content.Length == 6 && (content[5] != null || content[5].Length > 2))
|
||||
display[3] = ((await ServerCom.ReadTextFromURL(content[5])).Count + 1).ToString();
|
||||
|
||||
else
|
||||
display[3] = "1";
|
||||
display[3] = (await VersionString.GetVersionOfPackageFromWeb(content[0]) ?? new VersionString("0.0.0")).ToShortString();
|
||||
if (Config.PluginConfig.Contains(content[0]) || Config.PluginConfig.Contains(content[0]))
|
||||
display[4] = "✓";
|
||||
else
|
||||
@@ -75,8 +72,7 @@ public class PluginsManager
|
||||
display[0] = content[0];
|
||||
display[1] = content[1];
|
||||
display[2] = content[2];
|
||||
if (content.Length == 6 && (content[5] != null || content[5].Length > 2))
|
||||
display[3] = ((await ServerCom.ReadTextFromURL(content[5])).Count + 1).ToString();
|
||||
display[3] = (await VersionString.GetVersionOfPackageFromWeb(content[0]) ?? new VersionString("0.0.0")).ToShortString();
|
||||
if (Config.PluginConfig.Contains(content[0]) || Config.PluginConfig.Contains(content[0]))
|
||||
display[4] = "✓";
|
||||
else
|
||||
|
||||
@@ -54,7 +54,7 @@ namespace PluginManager.Online
|
||||
bool isDownloading = true;
|
||||
float c_progress = 0;
|
||||
|
||||
Console_Utilities.ProgressBar pbar = new Console_Utilities.ProgressBar { Max = 100f, NoColor = true };
|
||||
Console_Utilities.ProgressBar pbar = new Console_Utilities.ProgressBar(ProgressBarType.NORMAL) { Max = 100f, NoColor = true };
|
||||
|
||||
IProgress<float> progress = new Progress<float>(percent => { c_progress = percent; });
|
||||
|
||||
@@ -63,7 +63,7 @@ namespace PluginManager.Online
|
||||
{
|
||||
while (isDownloading)
|
||||
{
|
||||
pbar.Update(ProgressBarType.NORMAL, c_progress);
|
||||
pbar.Update(c_progress);
|
||||
if (c_progress == 100f)
|
||||
break;
|
||||
Thread.Sleep(500);
|
||||
@@ -76,7 +76,7 @@ namespace PluginManager.Online
|
||||
|
||||
|
||||
c_progress = pbar.Max;
|
||||
pbar.Update(ProgressBarType.NORMAL, 100f);
|
||||
pbar.Update(100f);
|
||||
isDownloading = false;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user