Exemple #1
0
        public Addon ParseResponse(string response, Uri url)
        {
            Response = new AddonSiteResponse();

            if (url.LocalPath == "/addons.php")
            {
                var r = new Regex(@"(?:<span class=""Member"">(.*?)\<|The latest version of this addon is <b class=""VIP"">(.*?)\<\/b>)", RegexOptions.Compiled);
                var m = r.Matches(response);

                if (m.Count >= 2)
                {
                    Response.AddonName   = m[0].Groups[1].Value;
                    Response.DownloadURL = url.ToString().Replace("id=", "download=");
                    Response.Version     = m[1].Groups[2].Value;
                }
            }
            else if (url.LocalPath == "/download.php")
            {
                var r = new Regex(@"(?:\"">(.*?)<\/h1>|(?:\/downloads\/)(.*?)\""|Premium\""\>(.*?)\<\/b\>)", RegexOptions.Compiled);
                var m = r.Matches(response);
                if (m.Count > 2)
                {
                    Response.AddonName   = m[0].Groups[1].Value;
                    Response.Version     = m[2].Groups[3].Value;
                    Response.DownloadURL = m[1].Success ? $"{url.Scheme}://{url.Host}/downloads/{m[1].Groups[2].Value}" : "";
                }
            }

            return(null);
        }
Exemple #2
0
        public Addon ParseResponse(string response, Uri url)
        {
            Response = new AddonSiteResponse();

            var   r = new Regex(@"<h1>(.*?)\&nbsp.*Version\:\s(.*?)(?:\s|\<).*fileid=(\d+)", RegexOptions.Singleline | RegexOptions.Compiled);
            Match m = r.Match(response);

            if (m.Success)
            {
                Response.AddonName   = m.Groups[1].Value;
                Response.Version     = m.Groups[2].Value;
                Response.DownloadURL = $"https://cdn.wowinterface.com/downloads/file{m.Groups[3].Value}/";
            }

            return(null);
        }
Exemple #3
0
        public Addon ParseResponse(string response, Uri url)
        {
            Response = new AddonSiteResponse();

            foreach (string type in Enum.GetNames(typeof(ReleaseType)))
            {
                var r = new Regex(string.Format(@"og:title"" content=""(.*?)""(?:.*?)title=""{0}""(?:.*?)data-name=""(.*?)"".*?a href="".*?(\d+)""", type), RegexOptions.Singleline);

                Match m = r.Match(response);
                if (m.Success)
                {
                    Response.AddonName   = m.Groups[1].Value;
                    Response.DownloadURL = $"{url.Scheme}://{url.Host}{(url.Host == "www.curseforge.com" ? url.LocalPath.Replace("/files", "") : url.LocalPath)}/download/{m.Groups[3].Value}/file";
                    Response.Version     = m.Groups[2].Value;

                    break;
                }
            }

            return(null);
        }
Exemple #4
0
        public Addon ParseResponse(string response, Uri url)
        {
            Response = new AddonSiteResponse();

            foreach (string type in Enum.GetNames(typeof(ReleaseType)))
            {
                var r = new Regex(string.Format(@"overflow-tip\""\>(.*?)\<.*?{0}-phase.*?\/files\/(\d+).*?data-name\=\""(.*?)\""", type.ToLower()), RegexOptions.Singleline | RegexOptions.Compiled);

                Match m = r.Match(response);
                if (m.Success)
                {
                    Response.AddonName   = m.Groups[1].Value;
                    Response.DownloadURL = $"{url.Scheme}://{url.Host}{url.LocalPath}{(!url.LocalPath.Contains("/files") ? "/files" : "")}/{m.Groups[2].Value}/download";
                    Response.Version     = m.Groups[3].Value;

                    break;
                }
            }

            return(null);
        }