/// <summary> /// Retrieve general beatmap information. /// </summary> /// <param name="nameOrId">Specify a user or a username to return metadata from.</param> /// <param name="gameMode">Specify the game mode.</param> /// <param name="limitCount">Amount of results (1 - 500). Default value is 500.</param> /// <returns>Fetched beatmaps.</returns> public OsuBeatmap[] GetBeatmaps( UserComponent nameOrId = null, ConvertibleGameMode gameMode = null, int?limitCount = null) { var sb = new StringBuilder(Key.CreateBeatmapLink()); if (nameOrId != null) { AppendUser(nameOrId, sb); } if (gameMode != null) { AppendConvertibleGameMode(gameMode, sb); } if (limitCount != null) { AppendLimit(limitCount, sb); } string json = GetJson(sb); var obj = JsonConvert.DeserializeObject <OsuBeatmap[]>(json); return(obj); }
/// <summary> /// Retrieve general beatmap information. /// </summary> /// <param name="beatmapSetId">Specify a beatmap set id.</param> /// <param name="gameMode">Specify the game mode.</param> /// <param name="limitCount">Amount of results (1 - 500). Default value is 500.</param> /// <returns>Fetched beatmaps.</returns> public OsuBeatmap[] GetBeatmaps( BeatmapSetId beatmapSetId, ConvertibleGameMode gameMode = null, int?limitCount = null) { var sb = new StringBuilder(Key.CreateBeatmapLink()); sb.Append($"&s={beatmapSetId}"); if (gameMode != null) { AppendConvertibleGameMode(gameMode, sb); } if (limitCount != null) { AppendLimit(limitCount, sb); } string json = GetJson(sb); var obj = JsonConvert.DeserializeObject <OsuBeatmap[]>(json); return(obj); }
private static void AppendConvertibleGameMode(ConvertibleGameMode gameMode, StringBuilder sb) { sb.Append(gameMode.ConvertOption == BeatmapConvertOption.Included ? $"&m={(int)gameMode.GameMode}&a=1" : $"&m={(int)gameMode.GameMode}"); }