mirror of
https://github.com/zarzet/SpotiFLAC-Mobile.git
synced 2026-08-27 13:22:49 +02:00
fix(metadata): match by primary artist and review results #511
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
final RegExp _artistNameSplitPattern = RegExp(
|
||||
r'\s*(?:,|&|\bx\b)\s*|\s+\b(?:feat(?:uring)?|ft|with)\.?(?=\s|$)\s*',
|
||||
r'\s*(?:,|;|&|\bx\b)\s*|\s+\b(?:feat(?:uring)?|ft|with)\.?(?=\s|$)\s*',
|
||||
caseSensitive: false,
|
||||
);
|
||||
|
||||
@@ -17,6 +17,22 @@ List<String> splitArtistNames(String rawArtists) {
|
||||
.toList(growable: false);
|
||||
}
|
||||
|
||||
String primaryArtistName(String artists, {String? albumArtist}) {
|
||||
final preferred = albumArtist?.trim() ?? '';
|
||||
final normalizedPreferred = preferred.toLowerCase();
|
||||
final useAlbumArtist =
|
||||
preferred.isNotEmpty &&
|
||||
normalizedPreferred != 'various artists' &&
|
||||
normalizedPreferred != 'various' &&
|
||||
normalizedPreferred != 'va';
|
||||
final source = useAlbumArtist ? preferred : artists.trim();
|
||||
final split = splitArtistNames(source);
|
||||
if (split.isNotEmpty) return split.first;
|
||||
|
||||
final fallback = splitArtistNames(artists);
|
||||
return fallback.isNotEmpty ? fallback.first : artists.trim();
|
||||
}
|
||||
|
||||
bool shouldSplitVorbisArtistTags(String mode) {
|
||||
return mode == artistTagModeSplitVorbis;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user