@page "/StickerCdnTest" @using System.Net.Http.Headers @using Spacebar.Models.AdminApi @using Spacebar.AdminApi.TestClient.Services @inject Config Config

StickerCdnTest

@foreach (var sticker in Stickers.OrderBy(x=>x.GuildId).ThenBy(x=>x.Id)) { }
@sticker.Name @sticker.Name PA: @sticker.IsPixelArt
CA: @sticker.IsCartoonArt
@sticker.Name (ID: @sticker.Id)
@code { private List Stickers { get; set; } = new(); protected override async Task OnInitializedAsync() { var hc = new HttpClient(); hc.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", Config.AccessToken); var response = await hc.GetAsync(Config.AdminUrl + "/_spacebar/admin/media/sticker/"); if (!response.IsSuccessStatusCode) throw new Exception(await response.Content.ReadAsStringAsync()); var content = response.Content.ReadFromJsonAsAsyncEnumerable(); var tasks = new List(); var ss = new SemaphoreSlim(4, 4); await foreach (var sticker in content) { await ss.WaitAsync(); tasks.Add(Task.Run(async () => { var isPixelArtTask = hc.GetFromJsonAsync($"{Config.CdnUrl}/isPixelArt/stickers/{sticker.Id}.gif"); var isCartoonArtTask = hc.GetFromJsonAsync($"{Config.CdnUrl}/isPixelArt/stickers/{sticker.Id}.gif"); sticker.IsPixelArt = await isPixelArtTask; sticker.IsCartoonArt = await isCartoonArtTask; Console.WriteLine($"Sticker: {sticker!.Id} - {sticker.Name}, PixelArt: {sticker.IsPixelArt}, CartoonArt: {sticker.IsCartoonArt}"); Stickers.Add(sticker!); StateHasChanged(); ss.Release(); })); } await Task.WhenAll(tasks); StateHasChanged(); } private class Sticker : StickerModel { public bool IsPixelArt { get; set; } public bool IsCartoonArt { get; set; } } }