summary refs log tree commit diff
path: root/extra/admin-api/Utilities
diff options
context:
space:
mode:
authorRory& <root@rory.gay>2026-01-11 16:31:22 +0100
committerRory& <root@rory.gay>2026-01-11 16:31:22 +0100
commit654fcc29b5d2284d301df3f63e9db35c21ec63cf (patch)
treec9191c9b62307c08056e3b62cdcd7d4bfbb3c715 /extra/admin-api/Utilities
parentMerge pull request #1464 from CyberL1/fix/build-workflow (diff)
downloadserver-ts-654fcc29b5d2284d301df3f63e9db35c21ec63cf.tar.xz
CDN-CS stuff
Diffstat (limited to 'extra/admin-api/Utilities')
-rw-r--r--extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/Pages/Media/StickerCdnTest.razor62
1 files changed, 62 insertions, 0 deletions
diff --git a/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/Pages/Media/StickerCdnTest.razor b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/Pages/Media/StickerCdnTest.razor
new file mode 100644

index 000000000..3a82563f6 --- /dev/null +++ b/extra/admin-api/Utilities/Spacebar.AdminApi.TestClient/Pages/Media/StickerCdnTest.razor
@@ -0,0 +1,62 @@ +@page "/StickerCdnTest" +@using System.Net.Http.Headers +@using Spacebar.AdminApi.Models +@using Spacebar.AdminApi.TestClient.Services +@inject Config Config +<h3>StickerCdnTest</h3> + +<table> + @foreach (var sticker in Stickers.OrderBy(x=>x.GuildId).ThenBy(x=>x.Id)) + { + <tr> + <td> + <img src="@($"{Config.CdnUrl}/stickers/{sticker.Id}.png?optimiseGif=false&applyMode=post")" alt="@sticker.Name" width="128" height="128" /> + </td> + <td> + <img src="@($"{Config.CdnUrl}/edges/stickers/{sticker.Id}.png?optimiseGif=false&applyMode=post")" alt="@sticker.Name" width="128" height="128" /> + </td> + <td> + PA: @sticker.IsPixelArt + <br/> + CA: @sticker.IsCartoonArt + <br/> + @sticker.Name (ID: @sticker.Id) + </td> + </tr> + } +</table> + +@code { + private List<Sticker> 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<Sticker>(); + var tasks = new List<Task>(); + var ss = new SemaphoreSlim(4, 4); + await foreach (var sticker in content) { + await ss.WaitAsync(); + tasks.Add(Task.Run(async () => { + var isPixelArtTask = hc.GetFromJsonAsync<bool>($"{Config.CdnUrl}/isPixelArt/stickers/{sticker.Id}.gif"); + var isCartoonArtTask = hc.GetFromJsonAsync<bool>($"{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; } + } +} \ No newline at end of file