Recent videos works. Fixed Details metadata call. Fix JSON missing date crash.
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2024-12-12 00:18:52 +01:00
parent 0496c8412b
commit 5da013ad15
3 changed files with 14 additions and 6 deletions

View File

@@ -274,7 +274,7 @@ sealed class CinemaLibraryManager : ILibraryManager
List<BaseItem> resultL = new List<BaseItem>(result.Items);
if (query.OrderBy.FirstOrDefault().OrderBy == ItemSortBy.DatePlayed && query.User != null)
if (query.OrderBy.FirstOrDefault().OrderBy == ItemSortBy.DatePlayed && query.User != null && query.MediaTypes.Contains(MediaType.Video))
{
// Get Resume play items
// PERF: This may quickly become very slow

View File

@@ -10,7 +10,6 @@ namespace CinemaLib.API;
public class Metadata
{
private const string UserAgent = "User-Agent: XBMC/19 (Linux 6.1; http://www.xbmc.org)";
private const string AccessToken = "9ajdu4xyn1ig8nxsodr3";
private const int MaxPageLimit = 100; // thousand is too much for some search types
@@ -97,8 +96,9 @@ public class Metadata
if (id == null || id.Length == 0)
throw new ArgumentNullException();
Uri uri = new Uri(new Uri(ApiRoot, "media/"), id);
MediaSource? result = await Program._http.GetFromJsonAsync<MediaSource>(uri, CreateFilterJsonOptions(), cancel);
UriBuilder uri = new UriBuilder(new Uri(new Uri(ApiRoot, "media/"), id));
uri.Query = $"?access_token={AccessToken}";
MediaSource? result = await Program._http.GetFromJsonAsync<MediaSource>(uri.Uri, CreateFilterJsonOptions(), cancel);
if (result != null)
result = FixDetailResponse(result);
return result;
@@ -279,7 +279,8 @@ public class Metadata
{
public override DateTime Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
{
return DateTime.Parse(reader.GetString());
string? a = reader.GetString();
return a == null || a.Length == 0 ? default : DateTime.Parse(a);
}
public override void Write(Utf8JsonWriter writer, DateTime value, JsonSerializerOptions options)

View File

@@ -3,7 +3,14 @@ using Cinema.Webshare;
class Program
{
public static HttpClient _http = new HttpClient();
private const string UserAgent = "XBMC/19 (Linux 6.1; http://www.xbmc.org)";
public static HttpClient _http = InitHttpClient();
private static HttpClient InitHttpClient() {
HttpClient result = new HttpClient();
result.DefaultRequestHeaders.Add("User-Agent", UserAgent);
return result;
}
private static async Task Main(string[] args)
{