12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- 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<LoadingProgress?> GetProgress()
- {
- var url = $"{ub}/metadata/progress.json";
- using var httpClient = new HttpClient();
- var response = await httpClient.GetAsync(url);
- var obj = await response.Content.ReadFromJsonAsync<LoadingProgress>();
- return obj;
- }
- public static async Task<Dictionary<string, Library>?> 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<Dictionary<string, Library>>(json);
- return obj;
- }
- public static async Task<Dictionary<string, MediaTag>> 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<Dictionary<string, MediaTag>>(json);
- return obj;
- }
- }
- }
|