public Task <ReadOnlyDictionary <string, DcsVersion> > GetLatestVersionsAsync() { return(Task.Run(async() => { using (var client = new HttpClient()) { Tracer.Info("Retrieving latest verions from http://updates.digitalcombatsimulator.com/"); var html = await client.GetStringAsync("http://updates.digitalcombatsimulator.com/"); var doc = new HtmlDocument(); doc.LoadHtml(html); var nodes = doc.DocumentNode.SelectNodes("//*[contains(@class,'well')]").ToArray(); var node = nodes.FirstOrDefault(); var versions = new Dictionary <string, DcsVersion>(); if (node != null) { foreach (var h2 in node.SelectNodes("h2")) { var innerText = h2.InnerText; var split = innerText.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); var version = DcsVersion.Parse(split.LastOrDefault() ?? string.Empty); var branch = innerText.ToLower().Contains("stable") ? "stable" : "openbeta"; Tracer.Info($"Found {branch} {version}"); versions.Add(branch, version); } } return new ReadOnlyDictionary <string, DcsVersion>(versions); } })); }
public AircraftModuleLuaContext(InstallLocation install) { _autoUpdateModules.AddRange(install.AutoUpdateConfigModules); _aircraftFolder = Path.Combine(install.Directory, "Mods//aircraft"); _version = install.Version; }