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); }
public Addon ParseResponse(string response, Uri url) { Response = new AddonSiteResponse(); var r = new Regex(@"<h1>(.*?)\ .*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); }
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); }
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); }