A hardcoded class for easy addon file management
Пример #1
0
        private void DownloadCurse(Addon addon)
        {
            // Number of characters to seek past when parsing the download location of the zip file
            const int hrefPadding = 11;

            string download = "data-href";
            string content;
            char   c = 'a';

            string url = addon.URL + "/download";

            try
            {
                using (WebClient client = new WebClient())
                {
                    content = client.DownloadString(url);
                }
            }
            catch
            {
                MessageBox.Show($"{addon.Name} failed to download, skipping to next addon", "Addon Manager");
                return;
            }

            int    i    = content.IndexOf(download) + hrefPadding;
            string test = content.Substring(i);

            StringBuilder sb = new StringBuilder();

            while (true)
            {
                c = content[i];
                if (c == '"')
                {
                    break;
                }
                sb.Append(c);
                i++;
            }
            url = sb.ToString();

            string          pattern = @"(\d+\.\d+\.\d+)";
            Regex           re      = new Regex(pattern);
            MatchCollection matches = re.Matches(url);
            string          version;

            if (matches.Count > 0)
            {
                version = matches[0].ToString();
            }
            else
            {
                version = String.Empty;
            }

            if (SkipUpdate(addon, version))
            {
                return;
            }

            GetAddonZip(url, addon.Name);
        }