mirror of
https://github.com/ZuneDev/ZuneModdingHelper.git
synced 2026-07-27 13:12:21 -07:00
Support tags/fields with multiiple MBIDs
This commit is contained in:
@@ -133,7 +133,7 @@ public class MbidLocatorMod(ModMetadata metadata) : Mod(metadata)
|
|||||||
|
|
||||||
TagLib.Id3v2.PrivateFrame albumArtistFrame = new(ZUNE_ALBUM_ARTIST_MEDIA_ID_NAME)
|
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);
|
id3v2.AddFrame(albumArtistFrame);
|
||||||
}
|
}
|
||||||
@@ -145,7 +145,7 @@ public class MbidLocatorMod(ModMetadata metadata) : Mod(metadata)
|
|||||||
|
|
||||||
TagLib.Id3v2.PrivateFrame albumFrame = new(ZUNE_ALBUM_MEDIA_ID_NAME)
|
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);
|
id3v2.AddFrame(albumFrame);
|
||||||
}
|
}
|
||||||
@@ -157,7 +157,7 @@ public class MbidLocatorMod(ModMetadata metadata) : Mod(metadata)
|
|||||||
|
|
||||||
TagLib.Id3v2.PrivateFrame trackFrame = new(ZUNE_MEDIA_ID_NAME)
|
TagLib.Id3v2.PrivateFrame trackFrame = new(ZUNE_MEDIA_ID_NAME)
|
||||||
{
|
{
|
||||||
PrivateData = new(new Guid(tag.MusicBrainzTrackId).ToByteArray())
|
PrivateData = new(EncodeMbidTag(tag.MusicBrainzTrackId))
|
||||||
};
|
};
|
||||||
id3v2.AddFrame(trackFrame);
|
id3v2.AddFrame(trackFrame);
|
||||||
}
|
}
|
||||||
@@ -166,4 +166,13 @@ public class MbidLocatorMod(ModMetadata metadata) : Mod(metadata)
|
|||||||
|
|
||||||
tfile.Save();
|
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();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user