private async Task <UpdateInfoData> Do(GetUpdateInfo request) { var r = new UpdateInfoData() { LoadedVersion = Assembly.GetExecutingAssembly().GetName().Version.ToString(), PendingLoadVersion = GetPendingLoadVersion(), }; try { var resp = await client.GetAsync("https://api.github.com/repos/JavScraper/Emby.Plugins.JavScraper/releases/latest"); if (resp.StatusCode == System.Net.HttpStatusCode.OK) { var data = jsonSerializer.DeserializeFromStream <Rootobject>(await resp.Content.ReadAsStreamAsync()); r.UpdateMessage = data.body; foreach (var v in data.assets.Where(o => o.name.IndexOf("JavScraper", StringComparison.OrdinalIgnoreCase) >= 0 && o.name.EndsWith(".zip", StringComparison.OrdinalIgnoreCase))) { var m = regexVersion.Match(v.name); if (m.Success) { r.LatestVersion = m.ToString(); r.LatestUrl = v.browser_download_url; break; } } } else { r.ErrorMessage = "获取新版下失败。"; return(r); } } catch (Exception ex) { r.ErrorMessage = ex.Message; return(r); } //r.PendingLoadVersion = "1.0.0"; if (request.update == true && r.HasNewVersion) { try { var ms = await client.GetStreamAsync(r.LatestUrl); zipClient.ExtractAllFromZip(ms, appPaths.PluginsPath, true); r.PendingLoadVersion = GetPendingLoadVersion(); } catch (Exception ex) { r.ErrorMessage = $"更新失败:{ex.Message}"; } } return(r); }
public object Get(GetUpdateInfo request) { return(Task.Run(() => Do(request)).GetAwaiter().GetResult()); }