mirror of
https://github.com/SoPat712/allstarr.git
synced 2026-02-09 23:55:10 -05:00
Fix MediaSources null array fields and add logging for artist albums
- Added MediaStreams, MediaAttachments, Formats as empty arrays instead of null - Added RunTimeTicks field to MediaSources - Added detailed logging to GetExternalChildItems to debug artist album issues - This should fix 'type Null is not a subtype of type List<dynamic>' error
This commit is contained in:
@@ -598,9 +598,13 @@ public class JellyfinController : ControllerBase
|
|||||||
{
|
{
|
||||||
var itemTypes = ParseItemTypes(includeItemTypes);
|
var itemTypes = ParseItemTypes(includeItemTypes);
|
||||||
|
|
||||||
|
_logger.LogInformation("GetExternalChildItems: provider={Provider}, externalId={ExternalId}, itemTypes={ItemTypes}",
|
||||||
|
provider, externalId, string.Join(",", itemTypes ?? Array.Empty<string>()));
|
||||||
|
|
||||||
// Check if asking for audio (album tracks)
|
// Check if asking for audio (album tracks)
|
||||||
if (itemTypes?.Contains("Audio") == true)
|
if (itemTypes?.Contains("Audio") == true)
|
||||||
{
|
{
|
||||||
|
_logger.LogDebug("Fetching album tracks for {Provider}/{ExternalId}", provider, externalId);
|
||||||
var album = await _metadataService.GetAlbumAsync(provider, externalId);
|
var album = await _metadataService.GetAlbumAsync(provider, externalId);
|
||||||
if (album == null)
|
if (album == null)
|
||||||
{
|
{
|
||||||
@@ -611,9 +615,12 @@ public class JellyfinController : ControllerBase
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Otherwise assume it's artist albums
|
// Otherwise assume it's artist albums
|
||||||
|
_logger.LogDebug("Fetching artist albums for {Provider}/{ExternalId}", provider, externalId);
|
||||||
var albums = await _metadataService.GetArtistAlbumsAsync(provider, externalId);
|
var albums = await _metadataService.GetArtistAlbumsAsync(provider, externalId);
|
||||||
var artist = await _metadataService.GetArtistAsync(provider, externalId);
|
var artist = await _metadataService.GetArtistAsync(provider, externalId);
|
||||||
|
|
||||||
|
_logger.LogInformation("Found {Count} albums for artist {ArtistName}", albums.Count, artist?.Name ?? "unknown");
|
||||||
|
|
||||||
// Fill artist info
|
// Fill artist info
|
||||||
if (artist != null)
|
if (artist != null)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -326,7 +326,11 @@ public class JellyfinResponseBuilder
|
|||||||
["RequiresClosing"] = false,
|
["RequiresClosing"] = false,
|
||||||
["RequiresLooping"] = false,
|
["RequiresLooping"] = false,
|
||||||
["SupportsProbing"] = true,
|
["SupportsProbing"] = true,
|
||||||
["ReadAtNativeFramerate"] = false
|
["ReadAtNativeFramerate"] = false,
|
||||||
|
["MediaStreams"] = new List<object>(), // Empty array instead of null
|
||||||
|
["MediaAttachments"] = new List<object>(), // Empty array instead of null
|
||||||
|
["Formats"] = new List<object>(), // Empty array instead of null
|
||||||
|
["RunTimeTicks"] = (song.Duration ?? 180) * 10000000L // Duration in ticks (100ns units)
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user