private OsuJsonUserBest[] ProcessJson(OsuJsonUserBest[] array) { var oldarray = array; if (Recent) { array = array.OrderByDescending(x => x.date).Take(5).ToArray(); } foreach (var item in array) { item.play_number = (Array.IndexOf(oldarray, item) + 1); OsuUtil.GetCalculatedAccuracy(item, Mode); //Get Beatmap last update item.Beatmap = GetBeatmap(item.beatmap_id); if (item.enabled_mods > 0) { //Star rating var data = OsuDlBeatmap.FindMap(item.beatmap_id, item.Beatmap.last_update.DateTime); var diff = new DiffCalc().Calc(Beatmap.Read(new StreamReader(new MemoryStream(data, false))), (Mods)item.enabled_mods); item.starrating = diff.Total; } } return(array); }
public OsuJsonUser ProcessJson(OsuJsonUser[] userArray) { foreach (var item in userArray) { item.url = OsuUtil.OsuUserUrl + item.user_id; item.image = OsuUtil.GetOsuUserPictureUrl(item.user_id); item.flag = OsuUtil.OsuFlagUrl + item.country + ".png"; item.flag_old = OsuUtil.OsuOldFlagUrl + item.country + ".gif"; item.osutrack = OsuUtil.OsuTrack + item.username; item.osustats = OsuUtil.OsuStats + item.username; item.osuskills = OsuUtil.OsuSkills + item.username; item.osuchan = OsuUtil.OsuChan + item.user_id + $"/?m={Mode}"; item.spectateUser = OsuUtil.OsuSpectate + item.user_id; item.playcount = Convert.ToDecimal(item.playcount).ToString("C0", Nfi); item.ranked_score = Convert.ToDecimal(item.ranked_score).ToString("C0", Nfi); item.total_score = Convert.ToDecimal(item.total_score).ToString("C0", Nfi); item.accuracy = Math.Round(Convert.ToDouble(item.accuracy.Replace(",", ".")), 2).ToString(CultureInfo.InvariantCulture); item.level = Math.Round(Convert.ToDouble(item.level.Replace(",", ".")), 0).ToString(CultureInfo.InvariantCulture); } var userList = userArray.ToList(); return(userList.FirstOrDefault()); }
private OsuJsonUserRecent[] ProcessJson(OsuJsonUserRecent[] array, bool retrycount) { foreach (var item in array) { if (retrycount) { continue; } //Get Beatmap last update var beatmapBuilder = new OsuBeatmapBuilder { Mode = Mode, ConvertedIncluded = "1", BeatmapId = item.beatmap_id }; item.Beatmap = beatmapBuilder.Execute().First(); OsuUtil.GetCalculatedAccuracy(item, Mode); var data = OsuDlBeatmap.FindMap(item.beatmap_id, item.Beatmap.last_update.DateTime); var beatmapData = Beatmap.Read(new StreamReader(new MemoryStream(data, false))); var diff = new DiffCalc().Calc(beatmapData, (Mods)item.enabled_mods); var rawPp = new PPv2(new PPv2Parameters(beatmapData, diff, new Accuracy(item.count300, item.count100, item.count50, item.countmiss).Value(), item.countmiss, item.maxcombo, (Mods)item.enabled_mods)); item.nochokeaccuracy = new Accuracy(item.count300 + item.countmiss, item.count100, item.count50, 0).Value() * 100; var nochokePp = new PPv2(new PPv2Parameters(beatmapData, diff, item.nochokeaccuracy / 100, 0, diff.Beatmap.GetMaxCombo(), (Mods)item.enabled_mods)); item.pp = rawPp.Total; item.nochokepp = nochokePp.Total; item.rounded_score = item.score.ToString("C0", _nfi); if (item.maxcombo <= (beatmapData.GetMaxCombo() - (item.count100 + item.count50)) || item.rank == "XH" || item.rank == "SH") { item.choked = true; } else if (item.countmiss > 0) { item.choked = true; } item.starrating = diff.Total; item.counttotal = beatmapData.CountCircles + beatmapData.CountSliders + beatmapData.CountSpinners; item.rounded_score = item.score.ToString("C0", _nfi); item.standardhit = item.count300 + item.count100 + item.count50 + item.countmiss; item.hitted = item.countkatu + item.countgeki + item.count300 + item.count100 + item.count50 + item.countmiss; item.completion = item.standardhit / (double)item.counttotal * 100; } return(array); }