Support tags/fields with multiiple MBIDs

This commit is contained in:
Yoshi Askharoun
2025-08-19 13:41:01 -05:00
parent 111a66d616
commit fc190c69a9
+12 -3
View File
@@ -133,7 +133,7 @@ public class MbidLocatorMod(ModMetadata metadata) : Mod(metadata)
TagLib.Id3v2.PrivateFrame albumArtistFrame = new(ZUNE_ALBUM_ARTIST_MEDIA_ID_NAME)
{
PrivateData = new(new Guid(tag.MusicBrainzReleaseArtistId).ToByteArray())
PrivateData = new(EncodeMbidTag(tag.MusicBrainzReleaseArtistId))
};
id3v2.AddFrame(albumArtistFrame);
}
@@ -145,7 +145,7 @@ public class MbidLocatorMod(ModMetadata metadata) : Mod(metadata)
TagLib.Id3v2.PrivateFrame albumFrame = new(ZUNE_ALBUM_MEDIA_ID_NAME)
{
PrivateData = new(new Guid(tag.MusicBrainzReleaseId).ToByteArray())
PrivateData = new(EncodeMbidTag(tag.MusicBrainzReleaseId))
};
id3v2.AddFrame(albumFrame);
}
@@ -157,7 +157,7 @@ public class MbidLocatorMod(ModMetadata metadata) : Mod(metadata)
TagLib.Id3v2.PrivateFrame trackFrame = new(ZUNE_MEDIA_ID_NAME)
{
PrivateData = new(new Guid(tag.MusicBrainzTrackId).ToByteArray())
PrivateData = new(EncodeMbidTag(tag.MusicBrainzTrackId))
};
id3v2.AddFrame(trackFrame);
}
@@ -166,4 +166,13 @@ public class MbidLocatorMod(ModMetadata metadata) : Mod(metadata)
tfile.Save();
}
private static byte[] EncodeMbidTag(string mbidTag)
{
// MBID tags may have more than one ID in them.
// So far, I've only seen forward slashes used as delimiters,
// but we might as well cover all the bases.
mbidTag = mbidTag.Split(['/', '\\', ',', ';']).First();
return new Guid(mbidTag).ToByteArray();
}
}