public static BeatmapDownload PrepareDownloadSet(BeatmapSet set, string mirror) { BeatmapDownload download; download = new BeatmapDownload(set, new Uri(mirror.Replace("%s", set.Id))); return(download); }
public static async Task DownloadSet(BeatmapDownload download, bool playAudioNotif = true) { Downloads.Add(download); download.SpeedTracker.Start(); // start the speed tracking try { await download.Client.DownloadFileTaskAsync(download.Location, download.TempPath); } catch (Exception ex) { if (download.Cancelled) { File.Delete(download.TempPath); return; } throw ex; } finally { Downloads.Remove(download); // cleanup regardless if (Downloads.Count < 1) { MapsManager.Reload(); // reload only when theres nothing left } } if (playAudioNotif) { AudioManager.OnDownloadComplete(); } }
/// <summary> /// Checks the DMCA of a map, then prepares a download object for it. /// </summary> public static async Task <BeatmapDownload> PrepareDownloadSet(BeatmapSet set, bool preferNoVid = false) { await CheckIllegal(set); var download = new BeatmapDownload(set, new Uri($"https://osu.ppy.sh/beatmapsets/{set.Id}/download" + (preferNoVid ? "?noVideo=1" : "")), Cookies); return(download); }
/// <summary> /// Checks the DMCA of a map, then prepares a download object for it. /// </summary> public static async Task <BeatmapDownload> PrepareDownloadSet(BeatmapSet set, bool preferNoVid = false) { await CheckIllegal(set); var download = new BeatmapDownload(set, new Uri($"https://osu.ppy.sh/d/{set.Id}" + (preferNoVid ? "n" : ""))); download.Client.Headers.Add(HttpRequestHeader.Cookie, Cookies.GetCookieHeader(new Uri("http://osu.ppy.sh"))); // use cookie auth return(download); }
/// <summary> /// Prepares a download object for a set from bloodcat /// </summary> public static async Task <BeatmapDownload> PrepareDownloadSet(BeatmapSet set) { BeatmapDownload download; Uri downloadUri; await CheckCaptcha(set); downloadUri = new Uri("http://bloodcat.com/osu/s/" + set.Id); download = new BeatmapDownload(set, downloadUri, Cookies); return(download); }
public static void CancelDownload(BeatmapDownload download) { download.Cancelled = true; download.Client.CancelAsync(); Downloads.Remove(download); }