using FNZCM.Shared.MediaModels; using FNZCM.Shared.MetadataModels; using Microsoft.AspNetCore.Components; using Newtonsoft.Json; using System.Net.Http.Json; namespace FNZCM.BlazorWasm { internal static class ApiClient { public static NavigationManager HellNm { get; set; } #if DEBUG private static string ub = $"http://fnz-server"; #else private static string ub => $"{HellNm.ToAbsoluteUri("/").GetLeftPart(UriPartial.Scheme | UriPartial.Authority)}"; #endif public static string ImageUrl(string lib,string disc) { return $"{ub}/cover/{lib}/{disc}/cover.jpg"; } public static string GetListPageUrl(string lib, string disc, string subset = null) { return subset == null ? $"{ub}/list/{lib}/{disc}/playlist.m3u8.html" : $"{ub}/list/{lib}/{disc}/{subset}/playlist.m3u8.html"; } public static string GetMediaUrl(string lib, string disc, string track, string subset = null) { return subset == null ? $"{ub}/media/{lib}/{disc}/{track}" : $"{ub}/media/{lib}/{disc}/{subset}/{track}"; } public static async Task GetProgress() { var url = $"{ub}/metadata/progress.json"; using var httpClient = new HttpClient(); var response = await httpClient.GetAsync(url); var obj = await response.Content.ReadFromJsonAsync(); return obj; } public static async Task?> GetLibraries() { var url = $"{ub}/metadata/file-set.json"; using var httpClient = new HttpClient(); var response = await httpClient.GetAsync(url); var json = await response.Content.ReadAsStringAsync(); var obj = JsonConvert.DeserializeObject>(json); return obj; } public static async Task> GetMediaTags() { var url = $"{ub}/metadata/tag-dict.json"; using var httpClient = new HttpClient(); var response = await httpClient.GetAsync(url); var json = await response.Content.ReadAsStringAsync(); var obj = JsonConvert.DeserializeObject>(json); return obj; } } }