2
0
Fork 0
mirror of https://github.com/sphildreth/roadie synced 2025-02-17 21:48:27 +00:00

Inspector work.

This commit is contained in:
Steven Hildreth 2019-06-03 08:37:13 -05:00
parent 2eef293f1d
commit 0732533bf7
4 changed files with 29 additions and 8 deletions
Roadie.Api.Library
Roadie.Api

View file

@ -10,6 +10,7 @@ using Roadie.Library.Extensions;
using Roadie.Library.Factories;
using Roadie.Library.Imaging;
using Roadie.Library.MetaData.Audio;
using Roadie.Library.MetaData.ID3Tags;
using Roadie.Library.SearchEngines.Imaging;
using Roadie.Library.SearchEngines.MetaData;
using Roadie.Library.Utility;
@ -219,11 +220,17 @@ namespace Roadie.Library.Engines
{
foreach (var releaseGenreTable in releaseGenreTables)
{
var genreName = releaseGenreTable.Genre.Name.ToLower().Trim();
var genreName = releaseGenreTable.Genre?.Name?.ToLower().Trim();
if (string.IsNullOrEmpty(genreName))
{
continue;
}
if (genreName.Length > 100)
{
var originalName = genreName;
genreName = genreName.Substring(0, 99);
this.Logger.LogWarning($"Genre Name Too long was [{ originalName }] truncated to [{ genreName }]");
}
var genre = this.DbContext.Genres.FirstOrDefault(x => x.Name.ToLower().Trim() == genreName);
if (genre == null)
{
@ -731,10 +738,13 @@ namespace Roadie.Library.Engines
var rg = releaseGenre.Trim();
if (!string.IsNullOrEmpty(rg))
{
result.Genres.Add(new Data.ReleaseGenre
foreach (var g in ID3TagsHelper.SplitGenre(rg))
{
Genre = (this.DbContext.Genres.Where(x => x.Name.ToLower() == rg.ToLower()).FirstOrDefault() ?? new Data.Genre { Name = rg })
});
result.Genres.Add(new Data.ReleaseGenre
{
Genre = (this.DbContext.Genres.Where(x => x.Name.ToLower() == g.ToLower()).FirstOrDefault() ?? new Data.Genre { Name = g })
});
}
}
};
}

View file

@ -13,7 +13,7 @@
<PackageReference Include="EFCore.BulkExtensions" Version="2.4.7" />
<PackageReference Include="FluentFTP" Version="24.0.0" />
<PackageReference Include="Hashids.net" Version="1.2.2" />
<PackageReference Include="HtmlAgilityPack" Version="1.11.6" />
<PackageReference Include="HtmlAgilityPack" Version="1.11.7" />
<PackageReference Include="IdSharp.Common" Version="1.0.1" />
<PackageReference Include="IdSharp.Tagging" Version="1.0.0-rc3" />
<PackageReference Include="Inflatable.Lastfm" Version="1.1.0.339" />

View file

@ -362,7 +362,7 @@ namespace Roadie.Library.MetaData.ID3Tags
result.Release = theTrack.Album;
result.Artist = theTrack.AlbumArtist ?? theTrack.Artist;
result.ArtistRaw = theTrack.AlbumArtist ?? theTrack.Artist;
result.Genres = theTrack.Genre?.Split(new char[] { ',', '\\' });
result.Genres = ID3TagsHelper.SplitGenre(theTrack.Genre);
result.TrackArtist = theTrack.OriginalArtist ?? theTrack.Artist ?? theTrack.AlbumArtist;
result.TrackArtistRaw = theTrack.OriginalArtist ?? theTrack.Artist ?? theTrack.AlbumArtist;
result.AudioBitrate = (int?)theTrack.Bitrate;
@ -398,6 +398,17 @@ namespace Roadie.Library.MetaData.ID3Tags
};
}
public static ICollection<string> SplitGenre(string genre)
{
if(string.IsNullOrEmpty(genre))
{
return null;
}
genre = genre.Replace(" / ", "/").Replace(" \\ ", "/").Replace("\\", "/");
return genre?.Split(new char[] { ',', ';', '|', '/' });
}
private OperationResult<AudioMetaData> MetaDataForFileFromIdSharp(string fileName)
{
var sw = new Stopwatch();
@ -420,7 +431,7 @@ namespace Roadie.Library.MetaData.ID3Tags
result.Comments = id3v2.CommentsList != null ? string.Join("|", id3v2.CommentsList?.Select(x => x.Value)) : null;
result.Disk = ID3TagsHelper.ParseDiscNumber(id3v2.DiscNumber);
result.DiskSubTitle = id3v2.SetSubtitle;
result.Genres = id3v2.Genre?.Split(new char[] { ',', '\\', ';', '|' });
result.Genres = ID3TagsHelper.SplitGenre(id3v2.Genre);
result.Release = id3v2.Album;
result.TrackArtist = id3v2.OriginalArtist ?? id3v2.Artist ?? id3v2.AlbumArtist;
result.TrackArtistRaw = id3v2.OriginalArtist ?? id3v2.Artist ?? id3v2.AlbumArtist;

View file

@ -30,7 +30,7 @@
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.2.3" />
<PackageReference Include="Serilog.AspNetCore" Version="2.1.1" />
<PackageReference Include="Serilog.Exceptions" Version="5.0.0" />
<PackageReference Include="Serilog.Settings.Configuration" Version="3.0.1" />
<PackageReference Include="Serilog.Settings.Configuration" Version="3.1.0" />
<PackageReference Include="Serilog.Sinks.Console" Version="3.1.1" />
<PackageReference Include="Serilog.Sinks.RollingFileAlternate" Version="2.0.9" />
<PackageReference Include="System.IdentityModel.Tokens.Jwt" Version="5.4.0" />