From 75ef35efa623f9db0ceffe87ccd77c6aabe93208 Mon Sep 17 00:00:00 2001 From: Christopher Snowhill Date: Fri, 3 Jan 2025 01:19:24 -0800 Subject: [PATCH] FileTree: Fix handling of metadata with multiple values Goody, my metadata formatting comes back to bite me. Signed-off-by: Christopher Snowhill --- FileTree/ContainedNode.m | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/FileTree/ContainedNode.m b/FileTree/ContainedNode.m index 6d8fd2d54..1c606a45c 100644 --- a/FileTree/ContainedNode.m +++ b/FileTree/ContainedNode.m @@ -23,8 +23,28 @@ NSString *title = nil; NSString *artist = nil; if(metadata) { - title = [metadata valueForKey:@"title"]; - artist = [metadata valueForKey:@"artist"]; + id _title = [metadata valueForKey:@"title"]; + id _artist = [metadata valueForKey:@"artist"]; + + if([_title isKindOfClass:[NSArray class]]) { + NSArray *titlearray = _title; + title = [titlearray componentsJoinedByString:@", "]; + } else if([_title isKindOfClass:[NSString class]]) { + title = _title; + } else if([_title isKindOfClass:[NSNumber class]]) { + NSNumber *titlenumber = _title; + title = [NSString stringWithFormat:@"%@", titlenumber]; + } + + if([_artist isKindOfClass:[NSArray class]]) { + NSArray *artistarray = _artist; + artist = [artistarray componentsJoinedByString:@", "]; + } else if([_artist isKindOfClass:[NSString class]]) { + artist = _artist; + } else if([_artist isKindOfClass:[NSNumber class]]) { + NSNumber *artistnumber = _artist; + artist = [NSString stringWithFormat:@"%@", artistnumber]; + } } if(title && [title length]) {