Hi. First, this is not critical to me.
I want to seed multiple artists at once, but the number of URL relationships differs from artist to artist. Is there a way to archive that in one seed. For now, I create multiple seeds with write, but that can be many files for simple handling.
I'm using yambs cmd.
If it helps, the code so far. The new and edit versions of the seed ca be in different seeds.
public void CreateMissingArtistSeed(List<ArtistInfo> artists, string eventName, string editNote,
string outputDir, string identifier)
{
logger.LogInformation($"Processing list");
const string typeGroup = "2"; // Artist type Group
foreach (var artist in artists)
{
var inputFields = "mbid,edit_note";
var urlCount = artist.GetDetails().FindAll(it => it != null && it.ToString().Length > 0).Count;
for (var i = 0; i < urlCount; i++)
{
inputFields += $",url{i}_type,url{i}_url";
}
var resultEditNote = artist.DetailPageUrl;
var input = $"\"{artist.Artist.Id.ToString()}\"";
if (resultEditNote == null)
{
resultEditNote = eventName;
}
input += $",\"{resultEditNote}\"";
input += BuildLink(artist.WebsiteUrl, ArtistUrlLinkTypes.OfficialHomepage_Artist_URL);
input += BuildLink(artist.FacebookUrl, ArtistUrlLinkTypes.SocialNetwork_Artist_URL);
input += BuildLink(artist.InstagramUrl, ArtistUrlLinkTypes.SocialNetwork_Artist_URL);
input += BuildLink(artist.TwitterUri, ArtistUrlLinkTypes.SocialNetwork_Artist_URL);
input += BuildLink(artist.YouTubeUri, ArtistUrlLinkTypes.YouTube_Artist_URL);
input += BuildLink(artist.TikTokUri, ArtistUrlLinkTypes.SocialNetwork_Artist_URL);
input += BuildLink(artist.SpotifyUri, ArtistUrlLinkTypes.FreeStreaming_Artist_URL);
input += BuildLink(artist.AppleMusicUri, ArtistUrlLinkTypes.Streaming_Artist_URL);
input += BuildLink(artist.SoundCloudUri, ArtistUrlLinkTypes.Soundcloud_Artist_URL);
input += BuildLink(artist.DeezerUri, ArtistUrlLinkTypes.Streaming_Artist_URL);
input += BuildLink(artist.WikipediaUri, ArtistUrlLinkTypes.Wikipedia_Artist_URL);
// Edit Artist
var output = CallYambs([], inputFields, [input], "artist", "write");
WriteOutput(output, $"{eventName}_artist_{artist.Name}_edit", string.Empty, outputDir, identifier);
// Remove "mbid," from input fields
inputFields = inputFields.Remove(0, 4);
// Remove MbId of artist and comma from input (+2 for quote marks)
input = input.Remove(0, artist.Artist.Id.ToString().Length + 2);
inputFields += ",name,sort_name,type";
input += $",\"{artist.Name}\",\"{artist.Name}\",\"{typeGroup}\"";
// New Artist
output = CallYambs([], inputFields, [input], "artist", "write");
WriteOutput(output, $"{eventName}_artist_{artist.Name}", string.Empty, outputDir, identifier);
logger.LogDebug("Wrote seed for adding new artist {artistName} with urls: {urls}", artist.Name,
string.Join(" ", artist.GetDetails().Select(it => it).Where(it => it != null)));
}