Exemple #1
0
        public static void CheckChangelog()
        {
            if (!Functions.IsWindowsVistaOrNewer())
            {
                return;
            }

            bool internetok = IsInternetAvailable();

            if (internetok == false)
            {
                MessageBox.Show("There's no Internet connection.\n\nYou can't see the changelog without one.", String.Format("{0} - No Internet connection available", ProductName), MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else
            {
                try
                {
                    Octokit.Release Release = UpdateClient.Repository.Release.GetLatest("KeppySoftware", "OmniMIDI").Result;
                    Process.Start(String.Format(UpdatePage, Release.TagName));
                }
                catch (Exception ex)
                {
                    Functions.ShowErrorDialog(ErrorType.Error, System.Media.SystemSounds.Exclamation, "Unknown error", "An error has occurred while trying to show you the latest changelog.\nPlease try again later.\n\nPress OK to continue.", true, ex);
                }
            }
        }
 internal ReleaseItemViewModel(Octokit.Release release)
 {
     Id          = release.Id;
     Created     = (release.PublishedAt.HasValue ? release.PublishedAt.Value : release.CreatedAt).LocalDateTime;
     Name        = string.IsNullOrEmpty(release.Name) ? release.TagName : release.Name;
     GoToCommand = ReactiveCommand.Create();
 }
        private void Instance_OnUpdateChecked(Octokit.Release release)
        {
            if (UpdateManager.WaitingForRestart)
            {
                StatusBar.Text = "An update is already in progress, Please restart IRSE.";
                return;
            }

            if (!UpdateManager.HasUpdate)
            {
                StatusBar.Text = Program.Localization.Sentences["GuiRunningLatest"];
                return;
            }

            var result = MessageBox.Show(string.Format(
                                             Program.Localization.Sentences["GuiNewVersion"],
                                             UpdateManager.NewVersionNumber,
                                             release.Name,
                                             release.Assets.FirstOrDefault().DownloadCount,
                                             release.Assets.First().CreatedAt.ToLocalTime(),
                                             release.Body),
                                         Program.Localization.Sentences["GuiIRSEUpdater"],
                                         MessageBoxButtons.YesNo, MessageBoxIcon.Information);

            if (result == DialogResult.Yes)
            {
                ServerInstance.Instance.Handlers.UniverseHandler.ForceGalaxySave();
                UpdateManager.Instance.DownloadLatestRelease(Config.Instance.Settings.EnableDevelopmentVersion);
            }
            else
            {
                StatusBar.Text = Program.Localization.Sentences["GuiCanceledUpdate"];
            }
        }
        private void Instance_OnUpdateChecked(Octokit.Release release)
        {
            if (!UpdateManager.HasUpdate)
            {
                StatusBar.Text = $"You are running the latest version!";
                return;
            }

            ServerInstance.Instance.Save(true);

            var result = MessageBox.Show(
                $"A new version has been detected: { UpdateManager.NewVersionNumber }\r\n" +
                $"\r\n Release Information:\r\n" +
                $"Release Name: {release.Name}\r\n" +
                $"Download Count: {release.Assets.FirstOrDefault().DownloadCount}\r\n" +
                $"Release Published {release.Assets.First().CreatedAt.ToLocalTime()}\r\n" +
                $"Release Description:\r\n\r\n" +
                $"{release.Body}\r\n\r\n" +
                $"Would you like to update now?",
                "HES Updater",
                MessageBoxButtons.YesNo, MessageBoxIcon.Information);

            if (result == DialogResult.Yes)
            {
                UpdateManager.Instance.DownloadLatestRelease(Config.Instance.Settings.EnableDevelopmentVersion);
            }
            else
            {
                StatusBar.Text = "The Update has been canceled.";
            }
        }
        private async void CheckForUpdate()
        {
            // Only check if we haven't checked before
            if (latest_release != null)
            {
                return;
            }

            var client = new Octokit.GitHubClient(new Octokit.ProductHeaderValue("TurtleHub"));

            // Check to see if there is an update for TurtleHub
            Logger.LogMessageWithData("Checking for new TurtleHub release");
            var latest = await client.Repository.Release.GetLatest("dail8859", "TurtleHub");

            Logger.LogMessage("\tFound " + latest.TagName);

            var thatVersion = Version.Parse(latest.TagName.Substring(1)); // remove the v from e.g. v0.1.1
            var thisVersion = typeof(Plugin).Assembly.GetName().Version;

            Logger.LogMessage("\tThis " + thisVersion.ToString());
            Logger.LogMessage("\tThat " + thatVersion.ToString());
            if (thatVersion > thisVersion)
            {
                updateNotifyIcon.BalloonTipText = string.Format(updateNotifyIcon.BalloonTipText, latest.TagName);
                updateNotifyIcon.Visible        = true;
                updateNotifyIcon.ShowBalloonTip(15 * 1000);
            }

            latest_release = latest;
        }
Exemple #6
0
        public async Task GetUpdate(string exe)
        {
            try
            {
                uDebugLogAdd("Starting GetUpdate task");
                var releases = await gitClient.Repository.Release.GetAll("rwobig93", "Panacea");

                Octokit.Release recentRelease = null;
                if (argBeta)
                {
                    recentRelease = releases.ToList().FindAll(x => x.Prerelease == true && x.Assets[0].Name.Contains("Panacea")).OrderBy(x => x.TagName).Last();
                }
                else
                {
                    recentRelease = releases.ToList().FindAll(x => x.Prerelease == false && x.Assets[0].Name.Contains("Panacea")).OrderBy(x => x.TagName).Last();
                }
                Version prodVersion = new Version(recentRelease.TagName);
                prodVer = prodVersion;
                uDebugLogAdd($"ProdVer: {prodVer}");
                productionURI = $@"{baseURI}/{recentRelease.TagName}/{exe}";
                uDebugLogAdd($"URI: {productionURI}");
                uDebugLogAdd($"Finished getting github recent version");
            }
            catch (InvalidOperationException ioe)
            {
                uDebugLogAdd($"Unable to get updates, reason: {ioe.Message}");
                uStatusUpdate("Unable to check for updates, couldn't find any versions in the repository");
                return;
            }
            catch (Exception ex)
            {
                LogException(ex);
            }
        }
 private void Instance_OnUpdateDownloaded(Octokit.Release release)
 {
     if (UpdateManager.GUIMode)
     {
         StatusBar.Text = Program.Localization.Sentences["GuiUpdateApply"];
         UpdateManager.Instance.ApplyUpdate();
     }
 }
 private void Instance_OnUpdateDownloaded(Octokit.Release release)
 {
     if (UpdateManager.GUIMode)
     {
         StatusBar.Text = "The Update is being applied..";
         UpdateManager.Instance.ApplyUpdate();
     }
 }
Exemple #9
0
        /// <summary>
        /// A generic update checker for github projects
        /// The tag text is used as version field from github releases, the description text should contain an installer link pointed at raw.githubusercontent.com
        /// </summary>
        /// <returns></returns>
        private static async Task UpdaterThreadAsync()
        {
retry:
            Octokit.GitHubClient client = new Octokit.GitHubClient(new Octokit.ProductHeaderValue(product_name));
            IReadOnlyList <Octokit.Release> rlsAll = await client.Repository.Release.GetAll(github_user, product_name);

            if (rlsAll != null && rlsAll.Count > 0)
            {
                Octokit.Release latest = rlsAll.OrderBy(r => r.CreatedAt).Last();

                Version latest_version = null;
                if (Version.TryParse(latest.TagName, out latest_version))
                {
                    if (Assembly.GetExecutingAssembly().GetName().Version < latest_version)
                    {
                        if (MessageBox.Show($"A New Version {latest.TagName} of {product_name} has been released, do you wish to update?", "New Version Available!", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes)
                        {
                            string[] body = latest.Body.Split(new[] { '"' }, StringSplitOptions.RemoveEmptyEntries);

                            string installerUrl = string.Empty;
                            foreach (var tmp in body)
                            {
                                if (tmp.Contains("raw.githubusercontent.com"))
                                {
                                    installerUrl = tmp;
                                    break;
                                }
                            }

                            if (installerUrl != string.Empty)
                            {
                                if (File.Exists("update.msi"))
                                {
                                    File.Delete("update.msi");
                                }

                                using (var _client = new WebClient())
                                {
                                    _client.DownloadFile(installerUrl, "update.msi");
                                }

                                Process.Start("update.msi");
                                Application.Exit();
                                Environment.Exit(Environment.ExitCode);
                            }
                            else
                            {
                                Process.Start($"https://github.com/{github_user}/{product_name}/releases");
                            }
                        }
                    }
                }
            }

            await Task.Delay(updatecheck_interval_mins * 60000);

            goto retry;
        }
Exemple #10
0
 internal GitHubRelease(Octokit.Release release, int index)
 {
     CreatedAt       = release.CreatedAt;
     Body            = release.Body;
     Name            = release.Name;
     TargetCommitish = release.TargetCommitish;
     TagName         = release.TagName;
     Id    = release.Id;
     Url   = release.Url;
     Index = index;
 }
Exemple #11
0
        /// <summary>
        /// Gets the download path of the latest release in GitHub.
        /// </summary>
        /// <returns>The download path of the latest release in GitHub.</returns>
        private async Task <string> GetLatestReleaseDownloadPathInGitHubAsync()
        {
            string downloadUrl = string.Empty;

            Octokit.GitHubClient client        = new Octokit.GitHubClient(new Octokit.ProductHeaderValue("searcher"));
            Octokit.Release      latestRelease = await client.Repository.Release.GetLatest("wizden", "searcher");

            if (latestRelease != null && latestRelease.Assets != null && latestRelease.Assets.Count > 0)
            {
                downloadUrl = latestRelease.Assets[0].BrowserDownloadUrl;
            }

            return(downloadUrl);
        }
Exemple #12
0
        private ReleaseItemViewModel CreateItemViewModel(Octokit.Release release)
        {
            var releaseItem = new ReleaseItemViewModel(release);

            releaseItem.GoToCommand.Subscribe(_ =>
            {
                var vm             = this.CreateViewModel <ReleaseViewModel>();
                vm.RepositoryName  = RepositoryName;
                vm.RepositoryOwner = RepositoryOwner;
                vm.ReleaseId       = release.Id;
                NavigateTo(vm);
            });

            return(releaseItem);
        }
        private void Instance_OnUpdateApplied(Octokit.Release release)
        {
            var result = MessageBox.Show(
                Program.Localization.Sentences["GuiDialogMustRestart"],
                Program.Localization.Sentences["GuiExtenderUpdater"],
                MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation);

            if (result == DialogResult.Yes)
            {
                Program.Restart();
            }
            else
            {
                StatusBar.Text = Program.Localization.Sentences["GuiNeedsRestart"];
            }
        }
Exemple #14
0
        private async void Window_Initialized(object sender, EventArgs e)
        {
            var gitHubClient = new Octokit.GitHubClient(new Octokit.ProductHeaderValue("TexPup"));

            try
            {
                Octokit.Release release = await gitHubClient.Repository.Release.GetLatest("JKAnderson", "TexPup");

                if (SemVersion.Parse(release.TagName) > System.Windows.Forms.Application.ProductVersion)
                {
                    UpdateHyperlink.NavigateUri    = new Uri(release.HtmlUrl);
                    UpdateStatusBarItem.Visibility = Visibility.Visible;
                }
            }
            catch { }
        }
Exemple #15
0
        private async void FormMain_Load(object sender, EventArgs e)
        {
            Text = "U3M " + Application.ProductVersion;
            enableControls(true);

            Location = settings.WindowLocation;
            if (settings.WindowSize.Width >= MinimumSize.Width && settings.WindowSize.Height >= MinimumSize.Height)
            {
                Size = settings.WindowSize;
            }
            if (settings.WindowMaximized)
            {
                WindowState = FormWindowState.Maximized;
            }

            txtGameDir.Text  = settings.GameDir;
            cbxData1.Checked = settings.Data1Checked;
            cbxData2.Checked = settings.Data2Checked;
            cbxData3.Checked = settings.Data3Checked;
            cbxData4.Checked = settings.Data4Checked;
            cbxData5.Checked = settings.Data5Checked;
            cbxDLC1.Checked  = settings.DLC1Checked;
            cbxDLC2.Checked  = settings.DLC2Checked;

            Octokit.GitHubClient gitHubClient = new Octokit.GitHubClient(new Octokit.ProductHeaderValue("U3M"));
            try
            {
                Octokit.Release release = await gitHubClient.Repository.Release.GetLatest("JKAnderson", "U3M");

                if (SemVersion.Parse(release.TagName) > Application.ProductVersion)
                {
                    lblUpdate.Visible = false;
                    LinkLabel.Link link = new LinkLabel.Link();
                    link.LinkData = UPDATE_LINK;
                    llbUpdate.Links.Add(link);
                    llbUpdate.Visible = true;
                }
                else
                {
                    lblUpdate.Text = "App up to date";
                }
            }
            catch (Exception ex) when(ex is HttpRequestException || ex is Octokit.ApiException || ex is ArgumentException)
            {
                lblUpdate.Text = "Update status unknown";
            }
        }
        private void Instance_OnUpdateApplied(Octokit.Release release)
        {
            var result = MessageBox.Show(
                $"You must restart before the update can be completed!\r\n\r\n" +
                $"Would you like to restart now?\r\n" +
                $"Note: The server was saved after downloading this release.",
                "HES Updater",
                MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation);

            if (result == DialogResult.Yes)
            {
                HES.Restart();
            }
            else
            {
                StatusBar.Text = "HES needs to be restarted before you can use the new features!";
            }
        }
Exemple #17
0
        public async void CheckForUpdates(Version currentVersion)
        {
            try
            {
                var             client        = new Octokit.GitHubClient(new Octokit.ProductHeaderValue("GamePipe"));
                var             releases      = client.Repository.Release.GetAll("DjScribbles", "GamePipe");
                Version         latestVersion = null;
                Octokit.Release latestRelease = null;
                foreach (var item in await releases)
                {
                    try
                    {
                        var thisVersion = new Version(item.TagName);
                        if (thisVersion.CompareTo(latestVersion) > 0)
                        {
                            latestVersion = thisVersion;
                            latestRelease = item;
                        }
                    }
                    catch
                    {
                    }
                }

                if ((currentVersion.CompareTo(latestVersion) < 0) && (latestRelease != null))
                {
                    var mw = (MainWindow as MainWindow);
                    if (mw != null)
                    {
                        mw.UpdateVm.IsNewVersionAvailable = true;
                        mw.UpdateVm.NewVersionUrl         = latestRelease.HtmlUrl;
                    }
                    //var result = MessageBox.Show("A new version of Game Pipe is available, do you want to take a look?", "New Version Available", MessageBoxButton.YesNo, MessageBoxImage.Question);
                    //if (result == MessageBoxResult.Yes)
                    //{
                    //    System.Diagnostics.Process.Start(latestRelease.HtmlUrl);
                    //}
                }
            }
            catch (Exception ex)
            {
                GamePipeLib.Utils.Logging.Logger.Error("Failed to check for updates due to exception:", ex);
            }
        }
Exemple #18
0
 private void ChangelogLatest_Click(object sender, EventArgs e)
 {
     try
     {
         Octokit.Release Release = UpdateSystem.UpdateClient.Repository.Release.GetLatest("KeppySoftware", "OmniMIDI").Result;
         Version         x       = null;
         Version.TryParse(Release.TagName, out x);
         new ChangelogWindow(x.ToString(), false).ShowDialog();
     }
     catch (Exception ex)
     {
         Program.ShowError(
             4,
             "Error",
             "An error has occured while interrogating GitHub for the latest release.\n" +
             "This is not a serious error, it might mean that your IP has reached the maximum requests allowed to the GitHub servers.",
             ex);
     }
 }
Exemple #19
0
        public AppRelease(Octokit.Release release)
        {
            const string versionRegex = @"(\d+(?:\.\d+){1,3})";

            var match = Regex.Match(release.Name, versionRegex);

            if (match.Success)
            {
                Version = Version.Parse(match.Groups[1].Value);
            }

            Name        = release.Name;
            Tag         = release.TagName;
            Description = release.Body;
            ReleaseDate = release.PublishedAt;
            DetailsUrl  = release.HtmlUrl;

            var asset = release.Assets.OrderByDescending(a => a.Size)
                        .FirstOrDefault(a => a.Name.ToLower().EndsWith(".exe") || a.Name.ToLower().EndsWith(".msi"));

            DownloadUrl  = asset?.BrowserDownloadUrl;
            DownloadSize = asset?.Size ?? 0;
        }
Exemple #20
0
        private async void FormMain_Load(object sender, EventArgs e)
        {
            Text     = "Irregulator " + Application.ProductVersion;
            Location = settings.WindowLocation;
            if (settings.WindowSize.Width >= MinimumSize.Width && settings.WindowSize.Height >= MinimumSize.Height)
            {
                Size = settings.WindowSize;
            }
            if (settings.WindowMaximized)
            {
                WindowState = FormWindowState.Maximized;
            }

            Octokit.GitHubClient gitHubClient = new Octokit.GitHubClient(new Octokit.ProductHeaderValue("Irregulator"));
            gitHubClient.SetRequestTimeout(new TimeSpan(0, 2, 0));
            try
            {
                Octokit.Release release = await gitHubClient.Repository.Release.GetLatest("JKAnderson", "Irregulator");

                if (SemVersion.Parse(release.TagName) > Application.ProductVersion)
                {
                    lblUpdate.Visible = false;
                    LinkLabel.Link link = new LinkLabel.Link();
                    link.LinkData = UPDATE_LINK;
                    llbUpdate.Links.Add(link);
                    llbUpdate.Visible = true;
                }
                else
                {
                    lblUpdate.Text = "App up to date";
                }
            }
            catch (Exception ex) when(ex is HttpRequestException || ex is Octokit.ApiException || ex is ArgumentException)
            {
                lblUpdate.Text = "Update status unknown";
            }
        }
Exemple #21
0
        public static void CheckChangelog()
        {
            bool internetok = IsInternetAvailable();

            if (internetok == false)
            {
                MessageBox.Show("There's no Internet connection.\n\nYou can't see the changelog without one.", String.Format("{0} - No Internet connection available", ProductName), MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else
            {
                try
                {
                    Octokit.Release Release = UpdateClient.Repository.Release.GetLatest("KeppySoftware", "OmniConverter").Result;
                    Process.Start(String.Format(UpdatePage, Release.TagName));
                }
                catch (Exception ex)
                {
                    Debug.ShowMsgBox(
                        "Unknown error",
                        "An error has occurred while trying to show you the latest changelog.\nPlease try again later.",
                        ex.ToString(), MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }
Exemple #22
0
 public UpdateForm(Octokit.Release release)
 {
     InitializeComponent();
     rel = release;
 }
Exemple #23
0
        internal Release(OctokitRelease release)
        {
            OctokitRelease = release;

            _assets.AddRange(release.Assets.Select(asset => new ReleaseAsset(asset)));
        }
Exemple #24
0
        public (DateTime created, int pullRequest) ParseReleaseHtmlToCountPullRequests(string patternUrl, Octokit.Release release)
        {
            var created      = DateTime.MinValue;
            var pullRequests = 0;

            try
            {
                var htmlUrl = release.HtmlUrl;
                Console.WriteLine(htmlUrl);
                string         html    = string.Empty;
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(htmlUrl);
                request.Timeout   = Timeout.Infinite;
                request.KeepAlive = true;
                request.AutomaticDecompression = DecompressionMethods.GZip;
                using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
                    using (Stream stream = response.GetResponseStream())
                        using (StreamReader reader = new StreamReader(stream))
                        {
                            html = reader.ReadToEnd();
                            // find commit url from the html
                            string pattern = @"href=" + '\"' + patternUrl;
                            string input   = html;

                            created = ScrapCreatedDate(input);
                            var m = Regex.Matches(input, pattern, RegexOptions.IgnoreCase);

                            if (m.Count > 0)
                            {
                                Parallel.ForEach(m.OfType <Match>(), (match) =>
                                {
                                    var pullUrl = input.Substring(match.Index, input.IndexOf('"', match.Index + 6) - match.Index);
                                    var pullId  = Convert.ToInt32(!pullUrl.Split('/')[6].Contains('#') ? pullUrl.Split('/')[6] : pullUrl.Split('/')[6].Split('#')[0]);
                                    Console.WriteLine(pullId);
                                    // rel.NumberofPullRequests += 1;
                                    pullRequests++;
                                });
                            }
                        }
            }
            catch (Exception ex)
            {
            }
            return(created, pullRequests);
        }
Exemple #25
0
        public static void CheckForUpdates(bool forced, bool startup, bool isitfromthechangelogwindow)
        {
            bool internetok = IsInternetAvailable();

            if (internetok == false)
            {
                NoUpdates(startup, false);
            }
            else
            {
                try
                {
                    Octokit.Release Release = UpdateClient.Repository.Release.GetLatest("KeppySoftware", "OmniConverter").Result;

                    Version DriverOnline = null;
                    Version.TryParse(Release.TagName, out DriverOnline);
                    Version DriverCurrent = Assembly.GetExecutingAssembly().GetName().Version;;

                    if (Properties.Settings.Default.UpdateBranch == "canary")
                    {
                        if (DriverCurrent.Major < DriverOnline.Major || DriverCurrent.Minor < DriverOnline.Minor)
                        {
                            if ((DriverCurrent.Build >= DriverOnline.Build || DriverCurrent.Build < DriverOnline.Build))
                            {
                                TriggerUpdateWindow(DriverCurrent, DriverOnline, Release.TagName, forced, startup, isitfromthechangelogwindow);
                            }
                            else
                            {
                                if (forced)
                                {
                                    TriggerUpdateWindow(DriverCurrent, DriverOnline, DriverCurrent.ToString(), forced, startup, isitfromthechangelogwindow);
                                }
                                else
                                {
                                    NoUpdates(startup, internetok);
                                }
                            }
                        }
                        else
                        {
                            if (forced)
                            {
                                TriggerUpdateWindow(DriverCurrent, DriverOnline, DriverCurrent.ToString(), forced, startup, isitfromthechangelogwindow);
                            }
                            else
                            {
                                NoUpdates(startup, internetok);
                            }
                        }
                    }
                    else if (Properties.Settings.Default.UpdateBranch == "normal")
                    {
                        if (DriverCurrent.Major < DriverOnline.Major)
                        {
                            if ((DriverCurrent.Minor >= DriverOnline.Minor || DriverCurrent.Minor < DriverOnline.Minor))
                            {
                                TriggerUpdateWindow(DriverCurrent, DriverOnline, Release.TagName, forced, startup, isitfromthechangelogwindow);
                            }
                            else
                            {
                                if (forced)
                                {
                                    TriggerUpdateWindow(DriverCurrent, DriverOnline, DriverCurrent.ToString(), forced, startup, isitfromthechangelogwindow);
                                }
                                else
                                {
                                    NoUpdates(startup, internetok);
                                }
                            }
                        }
                        else
                        {
                            if (forced)
                            {
                                TriggerUpdateWindow(DriverCurrent, DriverOnline, DriverCurrent.ToString(), forced, startup, isitfromthechangelogwindow);
                            }
                            else
                            {
                                NoUpdates(startup, internetok);
                            }
                        }
                    }
                    else if (Properties.Settings.Default.UpdateBranch == "delay")
                    {
                        if (DriverCurrent.Major < DriverOnline.Major)
                        {
                            TriggerUpdateWindow(DriverCurrent, DriverOnline, Release.TagName, forced, startup, isitfromthechangelogwindow);
                        }
                        else
                        {
                            if (forced)
                            {
                                TriggerUpdateWindow(DriverCurrent, DriverOnline, DriverCurrent.ToString(), forced, startup, isitfromthechangelogwindow);
                            }
                            else
                            {
                                NoUpdates(startup, internetok);
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    Debug.ShowMsgBox(
                        "Unknown error",
                        "An error has occurred while checking for updates.\nPlease try again later.",
                        ex.ToString(), MessageBoxButtons.OK, MessageBoxIcon.Error);
                    NoUpdates(startup, internetok);
                }
            }
        }
Exemple #26
0
        private void mnuCheckForUpdates_Click(object sender, EventArgs e)
        {
            System.Threading.Tasks.Task <IReadOnlyList <Octokit.Release> > releases;
            Octokit.Release latest = null;

            ProgressDialog progressDownload = new ProgressDialog();

            Thread thread = new Thread(() =>
            {
                Octokit.GitHubClient client = new Octokit.GitHubClient(new Octokit.ProductHeaderValue("alexgracianoarj"));
                releases = client.Repository.Release.GetAll("alexgracianoarj", "nclass");
                latest   = releases.Result[0];
                Console.Write(latest.Name);

                if (progressDownload.InvokeRequired)
                {
                    progressDownload.BeginInvoke(new Action(() => progressDownload.Close()));
                }
            });

            thread.Start();

            progressDownload.Text = "Update";
            progressDownload.lblPleaseWait.Text = "Checking...";
            progressDownload.SetIndeterminate(true);

            progressDownload.ShowDialog();

            double latestVersion  = Convert.ToDouble(latest.TagName.Replace("v", ""), System.Globalization.CultureInfo.InvariantCulture);
            double programVersion = Convert.ToDouble(Program.GetVersionString().Split(' ')[1], System.Globalization.CultureInfo.InvariantCulture);

            if (latestVersion > programVersion)
            {
                if (MessageBox.Show("There is a new version of NClass.\n\nDo you want download the new version and install it now?", "NClass", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == System.Windows.Forms.DialogResult.Yes)
                {
                    thread = new Thread(() =>
                    {
                        WebClient wc = new WebClient();

                        wc.DownloadProgressChanged += new DownloadProgressChangedEventHandler((sen, env) =>
                        {
                            double bytesIn    = double.Parse(env.BytesReceived.ToString());
                            double totalBytes = double.Parse(env.TotalBytesToReceive.ToString());
                            double percentage = bytesIn / totalBytes * 100;

                            if (progressDownload.InvokeRequired)
                            {
                                progressDownload.BeginInvoke(new Action(() => progressDownload.lblPleaseWait.Text = "Downloaded " + Convert.ToInt32(percentage) + "% - " + (env.BytesReceived / 1024) + " KB of " + (env.TotalBytesToReceive / 1024) + " KB"));
                            }

                            if (progressDownload.InvokeRequired)
                            {
                                progressDownload.BeginInvoke(new Action(() => progressDownload.progressBar1.Value = Convert.ToInt32(percentage)));
                            }
                        });

                        wc.DownloadFileCompleted += new AsyncCompletedEventHandler((sen, env) =>
                        {
                            // Close the dialog if it hasn't been already
                            if (progressDownload.InvokeRequired)
                            {
                                progressDownload.BeginInvoke(new Action(() => progressDownload.Close()));
                            }

                            System.Diagnostics.Process.Start(Path.GetTempPath() + "NClass_Update.exe");

                            Application.Exit();
                        });

                        wc.DownloadFileAsync(new Uri(latest.Assets[0].BrowserDownloadUrl), Path.GetTempPath() + "NClass_Update.exe");
                    });

                    thread.Start();

                    progressDownload.Text = "Update";
                    progressDownload.lblPleaseWait.Text = "Downloading...";
                    progressDownload.SetIndeterminate(false);

                    progressDownload.ShowDialog();
                }
            }
            else
            {
                MessageBox.Show("NClass already is updated.", "NClass", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
Exemple #27
0
        public Form1()
        {
            try
            {
                Octokit.GitHubClient github = new Octokit.GitHubClient(new Octokit.ProductHeaderValue("NoodleManager"));
                Octokit.Release      latest = github.Repository.Release.GetLatest("tommaier123", "NoodleManager").Result;

                if (Int32.Parse(GlobalVariables.TagName.Substring(1).Replace(".", "")) < Int32.Parse(latest.TagName.Substring(1).Replace(".", "")))
                {
                    ErrorDialog  errorDialog = new ErrorDialog("New Update to " + latest.TagName + " available:" + Environment.NewLine + Environment.NewLine + latest.Body + Environment.NewLine + Environment.NewLine + "Do you want to Download it?");
                    DialogResult result      = errorDialog.ShowDialog();

                    if (result == DialogResult.OK)
                    {
#if DEBUG
#else
                        UpdateFiles();
#endif
                    }
                }
            }
            catch (Exception e)
            {
                using (StreamWriter sw = new StreamWriter(Path.Combine(Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location), "Log.txt"), true))
                {
                    sw.WriteLine(e.ToString());
                }
            }

#if DEBUG
#else
            RegisterUriScheme();
#endif


            InitializeComponent();

            this.labelNM1.Text = GlobalVariables.TagName;

            Label te = new Label();
            te.Text      = "Mods Coming Soon";
            te.Size      = new Size(600, 300);
            te.Font      = new System.Drawing.Font("Microsoft Sans Serif", 30F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
            te.ForeColor = System.Drawing.Color.White;
            modMenu.Controls.Add(te);

            this.pictureBoxNM1.SendToBack();

            this.FormBorderStyle = FormBorderStyle.None;
            this.DoubleBuffered  = true;
            this.SetStyle(ControlStyles.ResizeRedraw, true);

            this.searchMode.DataSource  = new string[] { "All", "Title", "Mapper", "Artist" };
            this.displayMode.DataSource = new string[] { "All", "Available", "Installed" };

            this.FormClosing += FormclosingCallback;

            this.searchText.KeyDown += new KeyEventHandler(this.SearchKeyDownCallback);

            if (!settingsMenu.Check())
            {
                ShowSettings();
            }
            else
            {
                if (File.Exists("ToDownload.txt"))
                {
                    watcher = new FileSystemWatcher();
                    string applicationLocation = System.Reflection.Assembly.GetEntryAssembly().Location;
                    watcher.Path                = "./";
                    watcher.NotifyFilter        = NotifyFilters.LastWrite;
                    watcher.Filter              = "ToDownload.txt";
                    watcher.Changed            += OnFileChanged;
                    watcher.EnableRaisingEvents = true;
                }

                this.songMenu.Focus();
                if (ReadDownloadFile() == false)
                {
                    Search();
                }
            }
        }
Exemple #28
0
        public Form1()
        {
            try
            {
                Octokit.GitHubClient github = new Octokit.GitHubClient(new Octokit.ProductHeaderValue("NoodleManager"));
                Octokit.Release      latest = github.Repository.Release.GetLatest("tommaier123", "NoodleManager").Result;

                if (GlobalVariables.TagName != latest.TagName)
                {
                    ErrorDialog  errorDialog = new ErrorDialog("New Update to " + latest.TagName + " available:" + Environment.NewLine + Environment.NewLine + latest.Body + Environment.NewLine + Environment.NewLine + "Do you want to Download it?");
                    DialogResult result      = errorDialog.ShowDialog();

                    if (result == DialogResult.OK)
                    {
#if DEBUG
#else
                        UpdateFiles();
#endif
                    }
                }
            }
            catch (Exception e)
            {
                using (StreamWriter sw = new StreamWriter(Path.Combine(Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location), "Log.txt"), true))
                {
                    sw.WriteLine(e.ToString());
                }
            }

#if DEBUG
#else
            RegisterUriScheme();
#endif


            InitializeComponent();

            this.labelNM1.Text = GlobalVariables.TagName;

            Label te = new Label();
            te.Text      = "Mods Coming Soon";
            te.Size      = new Size(600, 300);
            te.Font      = new System.Drawing.Font("Microsoft Sans Serif", 30F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
            te.ForeColor = System.Drawing.Color.White;
            modMenu.Controls.Add(te);

            this.pictureBoxNM1.SendToBack();

            this.FormBorderStyle = FormBorderStyle.None;
            this.DoubleBuffered  = true;
            this.SetStyle(ControlStyles.ResizeRedraw, true);

            this.searchMode.DataSource  = new string[] { "All", "Title", "Mapper", "Artist" };
            this.displayMode.DataSource = new string[] { "All", "Available", "Installed" };

            this.FormClosing += FormclosingCallback;

            this.searchText.KeyDown += new KeyEventHandler(this.SearchKeyDownCallback);

            if (!Directory.Exists(Path.Combine(Properties.Settings.Default.path, @"CustomSongs\")))
            {
                string reg = Encoding.Default.GetString((byte[])Registry.GetValue(@"HKEY_CURRENT_USER\SOFTWARE\Kluge Interactive\SynthRiders", "com.synthriders.installpath_h4259148619", ""));
                Properties.Settings.Default.path = string.Concat(reg.Split(Path.GetInvalidPathChars()));
                Properties.Settings.Default.Save();
            }

            if (!Directory.Exists(Path.Combine(Properties.Settings.Default.path, @"CustomSongs\")))
            {
                ShowSettings();
            }
            else
            {
                watcher = new FileSystemWatcher();
                string applicationLocation = System.Reflection.Assembly.GetEntryAssembly().Location;
                watcher.Path                = "./";
                watcher.NotifyFilter        = NotifyFilters.LastWrite;
                watcher.Filter              = "ToDownload.txt";
                watcher.Changed            += OnFileChanged;
                watcher.EnableRaisingEvents = true;

                this.songMenu.Focus();
                if (ReadDownloadFile() == false)
                {
                    DownloadString(baseurl + beatmapsurl + "&&sort=published_at,DESC");
                }
            }
        }
Exemple #29
0
        public static string CheckForUpdatesMini()
        {
            if (!Functions.IsWindowsVistaOrNewer())
            {
                return("nointernet");
            }

            Program.DebugToConsole(false, "Checking for updates...", null);

            bool internetok = IsInternetAvailable();

            if (internetok == false)
            {
                Program.DebugToConsole(false, "No Internet available.", null);
                return("nointernet");
            }
            else
            {
                try
                {
                    Octokit.Release Release = UpdateClient.Repository.Release.GetLatest("KeppySoftware", "OmniMIDI").Result;
                    FileVersionInfo Driver  = FileVersionInfo.GetVersionInfo(UpdateFileVersion);

                    Version DriverOnline = null;
                    Version.TryParse(Release.TagName, out DriverOnline);
                    Version DriverCurrent = null;
                    Version.TryParse(Driver.FileVersion.ToString(), out DriverCurrent);

                    if (Properties.Settings.Default.UpdateBranch == "canary")
                    {
                        if (DriverCurrent < DriverOnline)
                        {
                            Program.DebugToConsole(false, String.Format("New version found. ({0})", Release.TagName), null);
                            return("yes");
                        }
                        else
                        {
                            Program.DebugToConsole(false, String.Format("No updates have been found. Latest canary release is {0}.", Release.TagName), null);
                            return("no");
                        }
                    }
                    else if (Properties.Settings.Default.UpdateBranch == "normal")
                    {
                        if (DriverCurrent.Major < DriverOnline.Major || DriverCurrent.Minor < DriverOnline.Minor)
                        {
                            if ((DriverCurrent.Build >= DriverOnline.Build || DriverCurrent.Build < DriverOnline.Build))
                            {
                                Program.DebugToConsole(false, String.Format("New version found. ({0})", Release.TagName), null);
                                return("yes");
                            }
                            else
                            {
                                Program.DebugToConsole(false, String.Format("No updates have been found. Latest canary release is {0}.", Release.TagName), null);
                                return("no");
                            }
                        }
                        else
                        {
                            Program.DebugToConsole(false, String.Format("No updates have been found. Latest canary release is {0}.", Release.TagName), null);
                            return("no");
                        }
                    }
                    else if (Properties.Settings.Default.UpdateBranch == "delay")
                    {
                        if (DriverCurrent.Major < DriverOnline.Major)
                        {
                            if ((DriverCurrent.Minor >= DriverOnline.Minor || DriverCurrent.Minor < DriverOnline.Minor))
                            {
                                Program.DebugToConsole(false, String.Format("New version found. ({0})", Release.TagName), null);
                                return("yes");
                            }
                            else
                            {
                                Program.DebugToConsole(false, String.Format("No updates have been found. Latest canary release is {0}.", Release.TagName), null);
                                return("no");
                            }
                        }
                        else
                        {
                            Program.DebugToConsole(false, String.Format("No updates have been found. Latest canary release is {0}.", Release.TagName), null);
                            return("no");
                        }
                    }
                    else
                    {
                        Program.DebugToConsole(false, String.Format("No updates have been found. Latest canary release is {0}.", Release.TagName), null);
                        return("no");
                    }
                }
                catch
                {
                    Program.DebugToConsole(false, "Error while checking for updates.", null);
                    return("fail");
                }
            }
        }
Exemple #30
0
        public static void CheckForUpdates(bool forced, bool startup, bool isitfromthechangelogwindow)
        {
            if (!Functions.IsWindowsVistaOrNewer())
            {
                return;
            }

            bool internetok = IsInternetAvailable();

            if (internetok == false)
            {
                NoUpdates(startup, false);
            }
            else
            {
                try
                {
                    Octokit.Release Release = UpdateClient.Repository.Release.GetLatest("KeppySoftware", "OmniMIDI").Result;
                    FileVersionInfo Driver  = FileVersionInfo.GetVersionInfo(UpdateFileVersion);

                    Version DriverOnline = null;
                    Version.TryParse(Release.TagName, out DriverOnline);
                    Version DriverCurrent = null;
                    Version.TryParse(Driver.FileVersion.ToString(), out DriverCurrent);

                    if (forced == true)
                    {
                        if (Properties.Settings.Default.UpdateBranch == "canary")
                        {
                            if (DriverCurrent < DriverOnline)
                            {
                                Program.DebugToConsole(false, String.Format("New version found. Requesting user to download it. ({0})", Release.TagName), null);
                                TriggerUpdateWindow(DriverCurrent, DriverOnline, Release.TagName, forced, startup, isitfromthechangelogwindow);
                            }
                            else
                            {
                                Program.DebugToConsole(false, String.Format("The user forced a reinstall/downgrade of the program. ({0})", Release.TagName), null);
                                TriggerUpdateWindow(DriverCurrent, DriverOnline, Driver.FileVersion, forced, startup, isitfromthechangelogwindow);
                            }
                        }
                        else if (Properties.Settings.Default.UpdateBranch == "normal")
                        {
                            if (DriverCurrent.Major < DriverOnline.Major || DriverCurrent.Minor < DriverOnline.Minor)
                            {
                                if ((DriverCurrent.Build >= DriverOnline.Build || DriverCurrent.Build < DriverOnline.Build))
                                {
                                    Program.DebugToConsole(false, String.Format("New version found. Requesting user to download it. ({0})", Release.TagName), null);
                                    TriggerUpdateWindow(DriverCurrent, DriverOnline, Release.TagName, forced, startup, isitfromthechangelogwindow);
                                }
                                else
                                {
                                    Program.DebugToConsole(false, String.Format("The user forced a reinstall/downgrade of the program. ({0})", Release.TagName), null);
                                    TriggerUpdateWindow(DriverCurrent, DriverOnline, Driver.FileVersion, forced, startup, isitfromthechangelogwindow);
                                }
                            }
                            else
                            {
                                Program.DebugToConsole(false, String.Format("The user forced a reinstall/downgrade of the program. ({0})", Release.TagName), null);
                                TriggerUpdateWindow(DriverCurrent, DriverOnline, Driver.FileVersion, forced, startup, isitfromthechangelogwindow);
                            }
                        }
                        else if (Properties.Settings.Default.UpdateBranch == "delay")
                        {
                            if (DriverCurrent.Major < DriverOnline.Major)
                            {
                                if ((DriverCurrent.Minor >= DriverOnline.Minor || DriverCurrent.Minor < DriverOnline.Minor))
                                {
                                    Program.DebugToConsole(false, String.Format("New version found. Requesting user to download it. ({0})", Release.TagName), null);
                                    TriggerUpdateWindow(DriverCurrent, DriverOnline, Release.TagName, forced, startup, isitfromthechangelogwindow);
                                }
                                else
                                {
                                    Program.DebugToConsole(false, String.Format("The user forced a reinstall/downgrade of the program. ({0})", Release.TagName), null);
                                    TriggerUpdateWindow(DriverCurrent, DriverOnline, Driver.FileVersion, forced, startup, isitfromthechangelogwindow);
                                }
                            }
                            else
                            {
                                Program.DebugToConsole(false, String.Format("The user forced a reinstall/downgrade of the program. ({0})", Release.TagName), null);
                                TriggerUpdateWindow(DriverCurrent, DriverOnline, Driver.FileVersion, forced, startup, isitfromthechangelogwindow);
                            }
                        }
                    }
                    else
                    {
                        if (Properties.Settings.Default.UpdateBranch == "canary")
                        {
                            if (DriverCurrent < DriverOnline)
                            {
                                Program.DebugToConsole(false, String.Format("New version found. Requesting user to download it. ({0})", Release.TagName), null);
                                TriggerUpdateWindow(DriverCurrent, DriverOnline, Release.TagName, forced, startup, isitfromthechangelogwindow);
                            }
                            else
                            {
                                Program.DebugToConsole(false, String.Format("No updates have been found. Latest canary release is {0}.", Release.TagName), null);
                                NoUpdates(startup, internetok);
                            }
                        }
                        else if (Properties.Settings.Default.UpdateBranch == "normal")
                        {
                            if (DriverCurrent.Major < DriverOnline.Major || DriverCurrent.Minor < DriverOnline.Minor)
                            {
                                if ((DriverCurrent.Build >= DriverOnline.Build || DriverCurrent.Build < DriverOnline.Build))
                                {
                                    Program.DebugToConsole(false, String.Format("New version found. Requesting user to download it. ({0})", Release.TagName), null);
                                    TriggerUpdateWindow(DriverCurrent, DriverOnline, Release.TagName, forced, startup, isitfromthechangelogwindow);
                                }
                                else
                                {
                                    Program.DebugToConsole(false, String.Format("No updates have been found. Latest canary release is {0}.", Release.TagName), null);
                                    NoUpdates(startup, internetok);
                                }
                            }
                            else
                            {
                                Program.DebugToConsole(false, String.Format("No updates have been found. Latest canary release is {0}.", Release.TagName), null);
                                NoUpdates(startup, internetok);
                            }
                        }
                        else if (Properties.Settings.Default.UpdateBranch == "delay")
                        {
                            if (DriverCurrent.Major < DriverOnline.Major)
                            {
                                if ((DriverCurrent.Minor >= DriverOnline.Minor || DriverCurrent.Minor < DriverOnline.Minor))
                                {
                                    Program.DebugToConsole(false, String.Format("New version found. Requesting user to download it. ({0})", Release.TagName), null);
                                    TriggerUpdateWindow(DriverCurrent, DriverOnline, Release.TagName, forced, startup, isitfromthechangelogwindow);
                                }
                                else
                                {
                                    Program.DebugToConsole(false, String.Format("No updates have been found. Latest canary release is {0}.", Release.TagName), null);
                                    NoUpdates(startup, internetok);
                                }
                            }
                            else
                            {
                                Program.DebugToConsole(false, String.Format("No updates have been found. Latest canary release is {0}.", Release.TagName), null);
                                NoUpdates(startup, internetok);
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    Program.DebugToConsole(true, "An error has occurred while checking for updates.", ex);
                    NoUpdates(startup, internetok);
                }
            }
        }