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);
                }
            }));
        }
示例#2
0
 public AircraftModuleLuaContext(InstallLocation install)
 {
     _autoUpdateModules.AddRange(install.AutoUpdateConfigModules);
     _aircraftFolder = Path.Combine(install.Directory, "Mods//aircraft");
     _version        = install.Version;
 }