Exemplo n.º 1
0
 public SortFilter(
     Filters.FilterMode mode,
     Filters.BeatSaverFilterOptions beatSaverOption   = default,
     Filters.ScoreSaberFilterOptions scoreSaberOption = default,
     Filters.BeastSaberFilterOptions beastSaberOption = default)
 {
     Mode             = mode;
     BeatSaverOption  = beatSaverOption;
     ScoreSaberOption = scoreSaberOption;
     BeastSaberOption = beastSaberOption;
 }
Exemplo n.º 2
0
        public static async Task <BeastSaberApiResult> GetPage(
            Filters.BeastSaberFilterOptions filter,
            uint page,
            uint itemsPerPage,
            CancellationToken cancellationToken)
        {
            var apiUrl = "";

            try
            {
                var serializer = new JsonSerializer();

                if (filter == Filters.BeastSaberFilterOptions.CuratorRecommended)
                {
                    apiUrl = $"songs?bookmarked_by=curatorrecommended&page={page + 1}&count={itemsPerPage}";
                }

                var response = await _beastSaberRequestClient.GetAsync(apiUrl, cancellationToken);

                response.EnsureSuccessStatusCode();

                var result = await response.Content.ReadAsStreamAsync();

                JsonReader jsonReader = new JsonTextReader(new StreamReader(result));

                return(serializer.Deserialize <BeastSaberApiResult>(jsonReader));
            }
            catch (Exception ex)
            {
                Plugin.Log.Error($"Failed to get BeastSaber api page: {ex}");

                return(new BeastSaberApiResult {
                    Songs = new List <BeastSaberSong>(), NextPage = -1
                });
            }
        }