コード例 #1
0
        private string GetDownloadURL(GitHubRelease release)
        {
            if (release.assets != null && release.assets.Count > 0)
            {
                GitHubAsset asset = release.assets[0];

                if (asset != null && !string.IsNullOrEmpty(asset.name))
                {
                    return(string.Format("https://github.com/{0}/{1}/releases/download/{2}/{3}", Owner, Repo, release.tag_name, asset.name));
                }
            }

            return(null);
        }
コード例 #2
0
        public override void CheckUpdate()
        {
            UpdateInfo = new UpdateInfo {
                CurrentVersion = this.CurrentVersion
            };

            try
            {
                List <GitHubRelease> releases = GetReleases();

                if (releases != null && releases.Count > 0)
                {
                    GitHubRelease latestRelease = releases[0];

                    if (latestRelease != null && !string.IsNullOrEmpty(latestRelease.tag_name) && latestRelease.tag_name.Length > 1 &&
                        latestRelease.tag_name[0] == 'v')
                    {
                        UpdateInfo.LatestVersion = new Version(latestRelease.tag_name.Substring(1));

                        if (latestRelease.assets != null && latestRelease.assets.Count > 0)
                        {
                            foreach (GitHubAsset asset in latestRelease.assets)
                            {
                                if (asset != null && !string.IsNullOrEmpty(asset.name) && asset.name.EndsWith(".exe", StringComparison.InvariantCultureIgnoreCase))
                                {
                                    UpdateInfo.Filename    = asset.name;
                                    UpdateInfo.DownloadURL = asset.url;
                                    UpdateInfo.RefreshStatus();
                                    return;
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception e)
            {
                DebugHelper.WriteException(e, "Update check failed");
            }

            UpdateInfo.Status = UpdateStatus.UpdateCheckFailed;
        }
コード例 #3
0
ファイル: GitHubUpdateChecker.cs プロジェクト: jakesyl/ShareX
        private string GetDownloadURL(GitHubRelease release)
        {
            if (release.assets != null && release.assets.Count > 0)
            {
                GitHubAsset asset = release.assets[0];

                if (asset != null && !string.IsNullOrEmpty(asset.name))
                {
                    return string.Format("https://github.com/{0}/{1}/releases/download/{2}/{3}", Owner, Repo, release.tag_name, asset.name);
                }
            }

            return null;
        }