Skip to content

Commit 5913224

Browse files
committed
Add MusicBrainz SortName in response for Artist/TrackArtist
1 parent 6014316 commit 5913224

8 files changed

Lines changed: 42 additions & 5 deletions

File tree

MiniMediaMetadataAPI.Application/Models/Database/MusicBrainz/MusicBrainzArtistModel.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ public class MusicBrainzArtistModel
55
public Guid ArtistId { get; set; }
66
public int ReleaseCount { get; set; }
77
public string Name { get; set; }
8+
public string SortName { get; set; }
89
public string Type { get; set; }
910
public string Country { get; set; }
1011
public DateTime LastSyncTime { get; set; }

MiniMediaMetadataAPI.Application/Models/Entities/SearchArtistEntity.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,5 @@ public class SearchArtistEntity
1414
public List<SearchArtistImageEntity>? Images { get; set; }
1515
public ProviderType ProviderType { get; set; }
1616
public DateTime LastSyncTime { get; set; }
17+
public SearchArtistMusicBrainzEntity? MusicBrainz { get; set; }
1718
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
namespace MiniMediaMetadataAPI.Application.Models.Entities;
2+
3+
public class SearchArtistMusicBrainzEntity
4+
{
5+
public string SortName { get; set; }
6+
}

MiniMediaMetadataAPI.Application/Models/Entities/SearchTrackArtistEntity.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,5 @@ public class SearchTrackArtistEntity
44
{
55
public string Id { get; set; }
66
public string Name { get; set; }
7+
public SearchTrackArtistMusicBrainzEntity? MusicBrainz { get; set; }
78
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
namespace MiniMediaMetadataAPI.Application.Models.Entities;
2+
3+
public class SearchTrackArtistMusicBrainzEntity
4+
{
5+
public string SortName { get; set; }
6+
}

MiniMediaMetadataAPI.Application/Repositories/MusicBrainzRepository.cs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,9 @@ public MusicBrainzRepository(IOptions<DatabaseConfiguration> databaseConfigurati
1919
string query = @"SET LOCAL pg_trgm.similarity_threshold = 0.5;
2020
SELECT *
2121
FROM MusicBrainz_Artist
22-
where lower(name) % lower(@name)";
22+
where
23+
lower(name) % lower(@name)
24+
or lower(sortname) % lower(@name)";
2325

2426
await using var conn = new NpgsqlConnection(_databaseConfiguration.ConnectionString);
2527
await conn.OpenAsync();
@@ -219,6 +221,7 @@ FROM MusicBrainz_Release release
219221
ta.ArtistId,
220222
ta.ReleaseCount,
221223
ta.Name,
224+
ta.SortName,
222225
ta.Type,
223226
ta.Country,
224227
ta.LastSyncTime,
@@ -238,6 +241,7 @@ FROM MusicBrainz_Release release
238241
ra.ArtistId,
239242
ra.ReleaseCount,
240243
ra.Name,
244+
ra.SortName,
241245
ra.Type,
242246
ra.Country,
243247
ra.LastSyncTime
@@ -360,6 +364,7 @@ from MusicBrainz_Release_Track track
360364
ta.ArtistId,
361365
ta.ReleaseCount,
362366
ta.Name,
367+
ta.SortName,
363368
ta.Type,
364369
ta.Country,
365370
ta.LastSyncTime,
@@ -379,6 +384,7 @@ from MusicBrainz_Release_Track track
379384
ra.ArtistId,
380385
ra.ReleaseCount,
381386
ra.Name,
387+
ra.SortName,
382388
ra.Type,
383389
ra.Country,
384390
ra.LastSyncTime

MiniMediaMetadataAPI.Application/Services/SearchArtistService.cs

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,11 @@ public async Task<SearchArtistResponse> SearchArtist(
9090
Url = $"https://musicbrainz.org/artist/{artist.ArtistId.ToString()}",
9191
TotalFollowers = 0,
9292
Genres = string.Empty,
93-
LastSyncTime = artist.LastSyncTime
93+
LastSyncTime = artist.LastSyncTime,
94+
MusicBrainz = new SearchArtistMusicBrainzEntity
95+
{
96+
SortName = artist.SortName
97+
}
9498
}) ?? []);
9599
}
96100
if (provider is ProviderType.Any or ProviderType.Deezer)
@@ -209,7 +213,11 @@ public async Task<SearchArtistResponse> SearchArtist(
209213
Url = $"https://musicbrainz.org/artist/{musicBrainzArtist.ArtistId.ToString()}",
210214
TotalFollowers = 0,
211215
Genres = string.Empty,
212-
LastSyncTime = musicBrainzArtist.LastSyncTime
216+
LastSyncTime = musicBrainzArtist.LastSyncTime,
217+
MusicBrainz = new SearchArtistMusicBrainzEntity
218+
{
219+
SortName = musicBrainzArtist.SortName
220+
}
213221
});
214222
}
215223
}

MiniMediaMetadataAPI.Application/Services/SearchTrackService.cs

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,11 @@ public async Task<SearchTrackResponse> SearchTrack(
152152
Artists = track.TrackArtists?.Select(trackArtist => new SearchTrackArtistEntity
153153
{
154154
Id = trackArtist.ArtistId.ToString(),
155-
Name = trackArtist.Name
155+
Name = trackArtist.Name,
156+
MusicBrainz = new SearchTrackArtistMusicBrainzEntity
157+
{
158+
SortName = trackArtist.SortName
159+
}
156160
}).ToList(),
157161
MusicBrainz = new SearchTrackMusicBrainzEntity
158162
{
@@ -380,7 +384,11 @@ public async Task<SearchTrackResponse> SearchTrack(
380384
Artists = track.TrackArtists?.Select(trackArtist => new SearchTrackArtistEntity
381385
{
382386
Id = trackArtist.ArtistId.ToString(),
383-
Name = trackArtist.Name
387+
Name = trackArtist.Name,
388+
MusicBrainz = new SearchTrackArtistMusicBrainzEntity
389+
{
390+
SortName = trackArtist.SortName
391+
}
384392
}).ToList(),
385393
MusicBrainz = new SearchTrackMusicBrainzEntity
386394
{

0 commit comments

Comments
 (0)