// splitAndTruncateArtists splits stringarray by the key "feat:" // and filter only string elements not equal to empty string. func splitAndTruncateArtists(artists dna.StringArray) dna.StringArray { return dna.StringArray(artists.SplitWithRegexp("feat:").Map(func(val dna.String, idx dna.Int) dna.String { return val.Trim() }).([]dna.String)).Filter(func(val dna.String, idx dna.Int) dna.Bool { if val != "" { return true } else { return false } }) }
func getGenresFromDesc(desc dna.String) dna.StringArray { var ret dna.StringArray genres := desc.FindAllString(`(?i)genres?(\s+)?:?.+`, 1) // "Released:" found in album id: 836258 if genres.Length() > 0 { ret = dna.StringArray(genres[0].ReplaceWithRegexp(`(?mis)genres?(\s+)?:?`, "").ReplaceWithRegexp(`\.?\s*Released:.+`, "").Trim().Split(",").Map(func(val dna.String, idx dna.Int) dna.String { return val.ReplaceWithRegexp(":", "").Trim() }).([]dna.String)) if ret.Length() == 1 { arr := dna.StringArray{} if ret[0].FindAllString(`(?mis)K-Pop`, 1).Length() > 0 { arr.Push("Korean Pop") arr.Push(ret[0].ReplaceWithRegexp(`(?mis)\(?K-Pop\)?`, "").Trim()) ret = arr } } } return ret.SplitWithRegexp(` > `).SplitWithRegexp(`/`) }