mirror of
https://github.com/sphildreth/roadie
synced 2024-09-20 06:32:02 +00:00
forgotten tasks for #29
This commit is contained in:
parent
25f4ba2c68
commit
168e364997
5 changed files with 78 additions and 58 deletions
|
@ -23,7 +23,7 @@ namespace Roadie.Library.Data
|
|||
}
|
||||
|
||||
[NotMapped]
|
||||
public ICollection<Roadie.Library.Imaging.IImage> Images { get; set; }
|
||||
public IEnumerable<Imaging.IImage> Images { get; set; }
|
||||
|
||||
public bool IsNew => Id < 1;
|
||||
|
||||
|
|
|
@ -102,7 +102,7 @@ namespace Roadie.Library.Data
|
|||
/// </summary>
|
||||
/// <param name="artistFolder"></param>
|
||||
/// <returns></returns>
|
||||
public string ReleaseFileFolder(string artistFolder) => FolderPathHelper.ReleasePath(artistFolder, SortTitleValue, ReleaseDate.Value);
|
||||
public string ReleaseFileFolder(string artistFolder, bool createIfNotFound = false) => FolderPathHelper.ReleasePath(artistFolder, SortTitleValue, ReleaseDate.Value, createIfNotFound);
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
|
|
|
@ -68,7 +68,7 @@ namespace Roadie.Library.Engines
|
|||
try
|
||||
{
|
||||
var artistGenreTables = artist.Genres;
|
||||
var ArtistImages = artist.Images;
|
||||
var artistImages = artist.Images ?? new List<Library.Imaging.Image>();
|
||||
var now = DateTime.UtcNow;
|
||||
artist.AlternateNames = artist.AlternateNames.AddToDelimitedList(new[] { artist.Name.ToAlphanumericName() });
|
||||
artist.Genres = null;
|
||||
|
@ -122,19 +122,35 @@ namespace Roadie.Library.Engines
|
|||
}
|
||||
}
|
||||
|
||||
// TODO #29 save images to folder
|
||||
|
||||
//if (ArtistImages != null && ArtistImages.Any(x => x.Status == Statuses.New))
|
||||
//{
|
||||
// foreach (var ArtistImage in ArtistImages)
|
||||
// DbContext.Images.Add(new Library.Imaging.Image(artist.RoadieId)
|
||||
// {
|
||||
// Url = ArtistImage.Url,
|
||||
// Signature = ArtistImage.Signature,
|
||||
// Bytes = ArtistImage.Bytes
|
||||
// });
|
||||
// inserted = await DbContext.SaveChangesAsync();
|
||||
//}
|
||||
if (artistImages.Any(x => x.Status == Statuses.New))
|
||||
{
|
||||
var artistFolder = artist.ArtistFileFolder(Configuration, true);
|
||||
var looper = -1;
|
||||
string releaseImageFilename;
|
||||
foreach (var artistImage in artistImages)
|
||||
{
|
||||
if (artistImage?.Bytes == null || artistImage?.Bytes.Any() == false)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
artistImage.Bytes = ImageHelper.ConvertToJpegFormat(artistImage.Bytes);
|
||||
if (looper == -1)
|
||||
{
|
||||
releaseImageFilename = Path.Combine(artistFolder, ImageHelper.ArtistImageFilename);
|
||||
}
|
||||
else
|
||||
{
|
||||
releaseImageFilename = Path.Combine(artistFolder, string.Format(ImageHelper.ArtistSecondaryImageFilename, looper.ToString("00")));
|
||||
}
|
||||
while (File.Exists(releaseImageFilename))
|
||||
{
|
||||
looper++;
|
||||
releaseImageFilename = Path.Combine(artistFolder, string.Format(ImageHelper.ArtistSecondaryImageFilename, looper.ToString("00")));
|
||||
}
|
||||
File.WriteAllBytes(releaseImageFilename, artistImage.Bytes);
|
||||
looper++;
|
||||
}
|
||||
}
|
||||
sw.Stop();
|
||||
Logger.LogTrace($"Added New Artist: Elapsed Time [{ sw.ElapsedMilliseconds }], Artist `{ artist }`");
|
||||
}
|
||||
|
|
|
@ -88,7 +88,7 @@ namespace Roadie.Library.Engines
|
|||
release.Genres = null;
|
||||
release.LibraryStatus = LibraryStatus.Incomplete;
|
||||
release.Status = Statuses.New;
|
||||
var releaseImages = new List<Library.Imaging.Image>();
|
||||
var releaseImages = release.Images ?? new List<Library.Imaging.Image>();
|
||||
if (!release.IsValid)
|
||||
{
|
||||
return new OperationResult<Release>
|
||||
|
@ -149,29 +149,37 @@ namespace Roadie.Library.Engines
|
|||
}
|
||||
}
|
||||
|
||||
// TODO #29 save release images to release folder
|
||||
if (releaseImages.Any(x => x.Status == Statuses.New))
|
||||
{
|
||||
var artistFolder = release.Artist.ArtistFileFolder(Configuration, true);
|
||||
var releaseFolder = release.ReleaseFileFolder(artistFolder, true);
|
||||
|
||||
//if (releaseImages != null && releaseImages.Any(x => x.Status == Statuses.New))
|
||||
//{
|
||||
// foreach (var releaseImage in releaseImages)
|
||||
// {
|
||||
// DbContext.Images.Add(new Image
|
||||
// {
|
||||
// ReleaseId = release.Id,
|
||||
// Url = releaseImage.Url,
|
||||
// Signature = releaseImage.Signature,
|
||||
// Bytes = releaseImage.Bytes
|
||||
// });
|
||||
// }
|
||||
// try
|
||||
// {
|
||||
// await DbContext.SaveChangesAsync();
|
||||
// }
|
||||
// catch (Exception ex)
|
||||
// {
|
||||
// Logger.LogError(ex);
|
||||
// }
|
||||
//}
|
||||
var looper = -1;
|
||||
string releaseImageFilename;
|
||||
foreach (var releaseImage in releaseImages)
|
||||
{
|
||||
if(releaseImage?.Bytes == null || releaseImage?.Bytes.Any() == false)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
releaseImage.Bytes = ImageHelper.ConvertToJpegFormat(releaseImage.Bytes);
|
||||
if (looper == -1)
|
||||
{
|
||||
releaseImageFilename = Path.Combine(releaseFolder, ImageHelper.ReleaseCoverFilename);
|
||||
}
|
||||
else
|
||||
{
|
||||
releaseImageFilename = Path.Combine(releaseFolder, string.Format(ImageHelper.ReleaseSecondaryImageFilename, looper.ToString("00")));
|
||||
}
|
||||
while (File.Exists(releaseImageFilename))
|
||||
{
|
||||
looper++;
|
||||
releaseImageFilename = Path.Combine(releaseFolder,string.Format(ImageHelper.ReleaseSecondaryImageFilename, looper.ToString("00")));
|
||||
}
|
||||
File.WriteAllBytes(releaseImageFilename, releaseImage.Bytes);
|
||||
looper++;
|
||||
}
|
||||
}
|
||||
|
||||
if (releaseLabels != null && releaseLabels.Any(x => x.Status == Statuses.New))
|
||||
{
|
||||
|
@ -773,11 +781,20 @@ namespace Roadie.Library.Engines
|
|||
Logger.LogTrace($"PerformMetaDataProvidersReleaseSearch: Image Url Processing Complete [{ sw2.ElapsedMilliseconds }]");
|
||||
}
|
||||
|
||||
if (metaData.Images != null && metaData.Images.Any())
|
||||
{
|
||||
foreach(var metadataImage in metaData.Images)
|
||||
{
|
||||
releaseImages.Add(new Imaging.Image()
|
||||
{
|
||||
Bytes = metadataImage.Data
|
||||
});
|
||||
}
|
||||
}
|
||||
result.Images = releaseImages.Where(x => x.Bytes != null)
|
||||
.GroupBy(x => x.Signature)
|
||||
.Select(x => x.First()).Take(Configuration.Processing.MaximumReleaseImagesToAdd)
|
||||
.ToList();
|
||||
|
||||
if (releaseLabels.Any())
|
||||
{
|
||||
var sw2 = Stopwatch.StartNew();
|
||||
|
@ -885,12 +902,6 @@ namespace Roadie.Library.Engines
|
|||
Logger.LogTrace($"PerformMetaDataProvidersReleaseSearch: Release Media Processing Complete [{ sw2.ElapsedMilliseconds }]");
|
||||
}
|
||||
|
||||
if (metaData.Images != null && metaData.Images.Any())
|
||||
{
|
||||
var image = metaData.Images.FirstOrDefault(x => x.Type == AudioMetaDataImageType.FrontCover);
|
||||
if (image == null) image = metaData.Images.FirstOrDefault();
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(artistFolder))
|
||||
{
|
||||
// If any file exist for cover that over-rides whatever if found in metadata providers.
|
||||
|
|
|
@ -91,10 +91,7 @@ namespace Roadie.Library.FilePlugins
|
|||
}
|
||||
|
||||
destinationName = FolderPathHelper.TrackFullPath(Configuration, metaData, artistFolder, releaseFolder);
|
||||
Logger.LogTrace(
|
||||
"Info: FileInfo [{0}], Artist Folder [{1}], Release Folder [{1}], Destination Name [{3}]",
|
||||
fileInfo.FullName, artistFolder, releaseFolder, destinationName);
|
||||
|
||||
Logger.LogTrace("Info: FileInfo [{0}], Artist Folder [{1}], Release Folder [{1}], Destination Name [{3}]", fileInfo.FullName, artistFolder, releaseFolder, destinationName);
|
||||
if (doJustInfo)
|
||||
{
|
||||
result.IsSuccess = metaData.IsValid;
|
||||
|
@ -109,8 +106,7 @@ namespace Roadie.Library.FilePlugins
|
|||
// See if file folder parent folder (likely file is in release folder) has primary artist image if so then move to artist folder
|
||||
var artistImages = new List<FileInfo>();
|
||||
artistImages.AddRange(ImageHelper.FindImageTypeInDirectory(fileInfo.Directory, ImageType.Artist));
|
||||
artistImages.AddRange(
|
||||
ImageHelper.FindImageTypeInDirectory(fileInfo.Directory.Parent, ImageType.Artist));
|
||||
artistImages.AddRange(ImageHelper.FindImageTypeInDirectory(fileInfo.Directory.Parent, ImageType.Artist));
|
||||
if (artistImages.Any())
|
||||
{
|
||||
var artistImage = artistImages.First();
|
||||
|
@ -134,10 +130,8 @@ namespace Roadie.Library.FilePlugins
|
|||
|
||||
// See if any secondary artist images if so then move to artist folder
|
||||
artistImages.Clear();
|
||||
artistImages.AddRange(
|
||||
ImageHelper.FindImageTypeInDirectory(fileInfo.Directory, ImageType.ArtistSecondary));
|
||||
artistImages.AddRange(
|
||||
ImageHelper.FindImageTypeInDirectory(fileInfo.Directory.Parent, ImageType.Artist));
|
||||
artistImages.AddRange(ImageHelper.FindImageTypeInDirectory(fileInfo.Directory, ImageType.ArtistSecondary));
|
||||
artistImages.AddRange(ImageHelper.FindImageTypeInDirectory(fileInfo.Directory.Parent, ImageType.Artist));
|
||||
if (artistImages.Any())
|
||||
{
|
||||
var looper = 0;
|
||||
|
@ -198,8 +192,7 @@ namespace Roadie.Library.FilePlugins
|
|||
}
|
||||
|
||||
// See if folder has secondary release image if so then move to release folder
|
||||
releaseImages =
|
||||
ImageHelper.FindImageTypeInDirectory(fileInfo.Directory, ImageType.ReleaseSecondary);
|
||||
releaseImages = ImageHelper.FindImageTypeInDirectory(fileInfo.Directory, ImageType.ReleaseSecondary);
|
||||
if (releaseImages.Any())
|
||||
{
|
||||
var looper = 0;
|
||||
|
|
Loading…
Reference in a new issue