Enable plugin updating from website

This commit is contained in:
Brant Martin
2019-03-03 18:46:11 -05:00
parent 2a64151f67
commit 3d3769cf5a
2 changed files with 40 additions and 45 deletions

View File

@@ -79,21 +79,22 @@ namespace Torch.API.WebAPI
return response;
}
public async Task<bool> DownloadPlugin(Guid guid)
public async Task<bool> DownloadPlugin(Guid guid, string path = null)
{
return await DownloadPlugin(guid.ToString());
return await DownloadPlugin(guid.ToString(), path);
}
public async Task<bool> DownloadPlugin(string guid)
public async Task<bool> DownloadPlugin(string guid, string path = null)
{
var item = await QueryOne(guid);
return await DownloadPlugin(item);
return await DownloadPlugin(item, path);
}
public async Task<bool> DownloadPlugin(PluginFullItem item)
public async Task<bool> DownloadPlugin(PluginFullItem item, string path = null)
{
try
{
path = path ?? $"Plugins\\{item.Name}.zip";
var h = await _client.GetAsync(string.Format(PLUGIN_QUERY, item.ID));
string res = await h.Content.ReadAsStringAsync();
var response = JsonConvert.DeserializeObject<PluginFullItem>(res);
@@ -109,7 +110,7 @@ namespace Torch.API.WebAPI
return false;
}
var s = await _client.GetStreamAsync(version.URL);
using (var f = new FileStream($"Plugins\\{item.Name}.zip", FileMode.Create))
using (var f = new FileStream(path, FileMode.Create))
{
await s.CopyToAsync(f);
await f.FlushAsync();