public TagLib.File RemovePrefixArtistOrBand(FileInfo musicFile, TagLib.File tagMusicFile) { DistilTitle distilTitle = new DistilTitle(); TitleExtract titleExtract = new TitleExtract(); string newTitle = ""; string artistOrBandName = ""; Simile.SimileEnums.GroupCategory grpCategory = SimileEnums.GroupCategory.Unknown; Simile.DBProcess.MusicBand musicBand = new Simile.DBProcess.MusicBand(); Simile.DBProcess.MusicArtist musicArtist = new Simile.DBProcess.MusicArtist(); distilTitle.Process(musicFile, out newTitle, out artistOrBandName, out grpCategory); newTitle = titleExtract.Process(newTitle); tagMusicFile.Tag.Title = newTitle.Trim(); if (grpCategory == SimileEnums.GroupCategory.Artist) { tagMusicFile.Tag.AlbumArtists[0] = artistOrBandName.Trim(); tagMusicFile.Tag.Comment += "Artist=" + artistOrBandName.Trim() + ";" + System.Environment.NewLine; tagMusicFile.Save(); } else if (grpCategory == SimileEnums.GroupCategory.Band) { tagMusicFile.Tag.Comment += "Band=" + artistOrBandName.Trim() + ";" + System.Environment.NewLine; tagMusicFile.Save(); } return(tagMusicFile); }
public void Process(FileInfo musicFile, out string newTitle, out string artistOrBandName, out Simile.SimileEnums.GroupCategory grpCategory) { newTitle = ""; artistOrBandName = ""; grpCategory = SimileEnums.GroupCategory.Unknown; Simile.DBProcess.MusicArtist musicArtist = new Simile.DBProcess.MusicArtist(); List <string> splitedTitle = new List <string>(); foreach (char obsVal in this.obsoleteValues) { string[] tmp = musicFile.Name.Split(obsVal); if (tmp.Count() > 1) { splitedTitle.AddRange(tmp.Where(r => !string.IsNullOrEmpty(r))); } } /*Most pbly artist/band will included, before or after the title. so to speed up the process * first get the word from start index of an array. if its not identified as artist/band in db, then took last index * from an array and check with db. * TODO:- at present i am assuming that artist/band will be first or last in array. If not find values in db then * i assume title contain no artist/band. */ string assumedValue = ""; bool isAssumedValueOk = false; isAssumedValueOk = IsAssumedValueAnArtist(splitedTitle, out assumedValue); if (isAssumedValueOk) { grpCategory = SimileEnums.GroupCategory.Artist; string temp = ""; int index = musicFile.Name.IndexOf(assumedValue); if (index != -1) { temp = musicFile.Name.Remove(0, assumedValue.Length); artistOrBandName = assumedValue.Trim(); } } isAssumedValueOk = (!isAssumedValueOk) ? IsAssumedValueBand(splitedTitle, out assumedValue) : false; if (isAssumedValueOk) { grpCategory = SimileEnums.GroupCategory.Band; int index = musicFile.Name.IndexOf(assumedValue); if (index != -1) { newTitle = musicFile.Name.Remove(0, assumedValue.Length); artistOrBandName = assumedValue.Trim(); } } }