Clean up and back to build state

Clean up and back to build state
This commit is contained in:
Qstick 2017-06-19 20:57:07 -04:00
parent b4279a455e
commit fafe4e93f3
10 changed files with 49 additions and 48 deletions

View File

@ -87,7 +87,7 @@ namespace NzbDrone.Core.MediaFiles
return;
}
_logger.ProgressInfo("Scanning disk for {0}", artist.ArtistName);
_logger.ProgressInfo("Scanning disk for {0}", artist.Name);
if (!_diskProvider.FolderExists(artist.Path))
{
@ -136,7 +136,7 @@ namespace NzbDrone.Core.MediaFiles
private void CompletedScanning(Artist artist)
{
_logger.Info("Completed scanning disk for {0}", artist.ArtistName);
_logger.Info("Completed scanning disk for {0}", artist.Name);
_eventAggregator.PublishEvent(new ArtistScannedEvent(artist));
}

View File

@ -1,4 +1,4 @@
using System;
using System;
using System.Collections.Generic;
using NzbDrone.Core.Datastore;
using NzbDrone.Core.Messaging.Events;
@ -8,7 +8,7 @@ namespace NzbDrone.Core.MediaFiles
{
public interface IMediaFileRepository : IBasicRepository<TrackFile>
{
List<TrackFile> GetFilesByArtist(string artistId);
List<TrackFile> GetFilesByArtist(int artistId);
List<TrackFile> GetFilesWithoutMediaInfo();
}
@ -25,9 +25,9 @@ namespace NzbDrone.Core.MediaFiles
return Query.Where(c => c.MediaInfo == null).ToList();
}
public List<TrackFile> GetFilesByArtist(string artistId)
public List<TrackFile> GetFilesByArtist(int artistId)
{
return Query.Where(c => c.SpotifyTrackId == artistId).ToList();
return Query.Where(c => c.ArtistId == artistId).ToList();
}
}
}

View File

@ -1,4 +1,4 @@
using System.Collections.Generic;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using NLog;
@ -18,7 +18,7 @@ namespace NzbDrone.Core.MediaFiles
TrackFile Add(TrackFile trackFile);
void Update(TrackFile trackFile);
void Delete(TrackFile trackFile, DeleteMediaFileReason reason);
List<TrackFile> GetFilesByArtist(string artistId);
List<TrackFile> GetFilesByArtist(int artistId);
List<TrackFile> GetFilesWithoutMediaInfo();
List<string> FilterExistingFiles(List<string> files, Artist artist);
TrackFile Get(int id);
@ -69,7 +69,7 @@ namespace NzbDrone.Core.MediaFiles
public List<string> FilterExistingFiles(List<string> files, Artist artist)
{
var artistFiles = GetFilesByArtist(artist.SpotifyId).Select(f => Path.Combine(artist.Path, f.RelativePath)).ToList();
var artistFiles = GetFilesByArtist(artist.Id).Select(f => Path.Combine(artist.Path, f.RelativePath)).ToList();
if (!artistFiles.Any()) return files;
@ -89,11 +89,11 @@ namespace NzbDrone.Core.MediaFiles
public void HandleAsync(ArtistDeletedEvent message)
{
var files = GetFilesByArtist(message.Artist.SpotifyId);
var files = GetFilesByArtist(message.Artist.Id);
_mediaFileRepository.DeleteMany(files);
}
public List<TrackFile> GetFilesByArtist(string artistId)
public List<TrackFile> GetFilesByArtist(int artistId)
{
return _mediaFileRepository.GetFilesByArtist(artistId);
}

View File

@ -1,4 +1,4 @@
using System;
using System;
using System.Collections.Generic;
using System.IO;
using NLog;
@ -31,8 +31,8 @@ namespace NzbDrone.Core.MediaFiles
public void Clean(Artist artist, List<string> filesOnDisk)
{
var artistFiles = _mediaFileService.GetFilesByArtist(artist.SpotifyId);
var tracks = _trackService.GetTracksByArtist(artist.SpotifyId);
var artistFiles = _mediaFileService.GetFilesByArtist(artist.Id);
var tracks = _trackService.GetTracksByArtist(artist.Id);
var filesOnDiskKeys = new HashSet<string>(filesOnDisk, PathEqualityComparer.Instance);

View File

@ -65,7 +65,7 @@ namespace NzbDrone.Core.MediaFiles.MediaInfo
return;
}
var allMediaFiles = _mediaFileService.GetFilesByArtist(message.Artist.SpotifyId);
var allMediaFiles = _mediaFileService.GetFilesByArtist(message.Artist.Id);
var filteredMediaFiles = allMediaFiles.Where(c => c.MediaInfo == null || c.MediaInfo.SchemaRevision < CURRENT_MEDIA_INFO_SCHEMA_REVISION).ToList();
UpdateMediaInfo(message.Artist, filteredMediaFiles);

View File

@ -14,6 +14,7 @@ namespace NzbDrone.Core.MediaFiles
{
public string SpotifyTrackId { get; set; }
public int AlbumId { get; set; }
public int ArtistId { get; set; }
public string RelativePath { get; set; }
public string Path { get; set; }
public long Size { get; set; }

View File

@ -67,18 +67,18 @@ namespace NzbDrone.Core.MediaFiles.TrackImport
.Intersect(localTrack.Tracks.Select(e => e.Id))
.Any())
{
importResults.Add(new ImportResult(importDecision, "Episode has already been imported"));
importResults.Add(new ImportResult(importDecision, "Track has already been imported"));
continue;
}
var trackFile = new TrackFile();
trackFile.DateAdded = DateTime.UtcNow;
trackFile.SpotifyTrackId = localTrack.Artist.SpotifyId;
trackFile.ArtistId = localTrack.Artist.Id;
trackFile.Path = localTrack.Path.CleanFilePath();
trackFile.Size = _diskProvider.GetFileSize(localTrack.Path);
trackFile.Quality = localTrack.Quality;
trackFile.MediaInfo = localTrack.MediaInfo;
//trackFile.AlbumId = localTrack.Album.ElementAt(0); // TODO: Implement ImportApprovedTracks Album Id
trackFile.AlbumId = localTrack.Album.Id;
trackFile.Tracks = localTrack.Tracks;
trackFile.ReleaseGroup = localTrack.ParsedTrackInfo.ReleaseGroup;

View File

@ -115,7 +115,7 @@ namespace NzbDrone.Core.Music
if (storedAlbum != null && album.Monitored != storedAlbum.Monitored)
{
_trackService.SetTrackMonitoredByAlbum(artist.ForeignArtistId, album.ForeignAlbumId, album.Monitored);
_trackService.SetTrackMonitoredByAlbum(artist.Id, album.Id, album.Monitored);
}
}

View File

@ -13,15 +13,15 @@ namespace NzbDrone.Core.Music
{
public interface ITrackRepository : IBasicRepository<Track>
{
Track Find(string artistId, string albumId, int trackNumber);
List<Track> GetTracks(string artistId);
List<Track> GetTracks(string artistId, string albumId);
Track Find(int artistId, int albumId, int trackNumber);
List<Track> GetTracks(int artistId);
List<Track> GetTracks(int artistId, int albumId);
List<Track> GetTracksByFileId(int fileId);
List<Track> TracksWithFiles(string artistId);
List<Track> TracksWithFiles(int artistId);
PagingSpec<Track> TracksWithoutFiles(PagingSpec<Track> pagingSpec);
PagingSpec<Track> TracksWhereCutoffUnmet(PagingSpec<Track> pagingSpec, List<QualitiesBelowCutoff> qualitiesBelowCutoff);
void SetMonitoredFlat(Track episode, bool monitored);
void SetMonitoredByAlbum(string artistId, string albumId, bool monitored);
void SetMonitoredByAlbum(int artistId, int albumId, bool monitored);
void SetFileId(int trackId, int fileId);
}
@ -37,24 +37,24 @@ namespace NzbDrone.Core.Music
_logger = logger;
}
public Track Find(string artistId, string albumId, int trackNumber)
public Track Find(int artistId, int albumId, int trackNumber)
{
return Query.Where(s => s.ForeignTrackId == artistId)
.AndWhere(s => s.Album.ForeignAlbumId == albumId)
return Query.Where(s => s.ArtistId == artistId)
.AndWhere(s => s.AlbumId == albumId)
.AndWhere(s => s.TrackNumber == trackNumber)
.SingleOrDefault();
}
public List<Track> GetTracks(string artistId)
public List<Track> GetTracks(int artistId)
{
return Query.Where(s => s.ForeignTrackId == artistId).ToList();
return Query.Where(s => s.ArtistId == artistId).ToList();
}
public List<Track> GetTracks(string artistId, string albumId)
public List<Track> GetTracks(int artistId, int albumId)
{
return Query.Where(s => s.ForeignTrackId == artistId)
.AndWhere(s => s.Album.ForeignAlbumId == albumId)
return Query.Where(s => s.ArtistId == artistId)
.AndWhere(s => s.AlbumId == albumId)
.ToList();
}
@ -63,10 +63,10 @@ namespace NzbDrone.Core.Music
return Query.Where(e => e.TrackFileId == fileId).ToList();
}
public List<Track> TracksWithFiles(string artistId)
public List<Track> TracksWithFiles(int artistId)
{
return Query.Join<Track, TrackFile>(JoinType.Inner, e => e.TrackFile, (e, ef) => e.TrackFileId == ef.Id)
.Where(e => e.ForeignTrackId == artistId);
.Where(e => e.ArtistId == artistId);
}
public PagingSpec<Track> TracksWhereCutoffUnmet(PagingSpec<Track> pagingSpec, List<QualitiesBelowCutoff> qualitiesBelowCutoff)
@ -85,7 +85,7 @@ namespace NzbDrone.Core.Music
SetFields(track, p => p.Monitored);
}
public void SetMonitoredByAlbum(string artistId, string albumId, bool monitored)
public void SetMonitoredByAlbum(int artistId, int albumId, bool monitored)
{
var mapper = _database.GetDataMapper();

View File

@ -15,12 +15,12 @@ namespace NzbDrone.Core.Music
{
Track GetTrack(int id);
List<Track> GetTracks(IEnumerable<int> ids);
Track FindTrack(string artistId, string albumId, int trackNumber);
Track FindTrackByTitle(string artistId, string albumId, string releaseTitle);
List<Track> GetTracksByArtist(string artistId);
List<Track> GetTracksByAlbum(string artistId, string albumId);
Track FindTrack(int artistId, int albumId, int trackNumber);
Track FindTrackByTitle(int artistId, int albumId, string releaseTitle);
List<Track> GetTracksByArtist(int artistId);
List<Track> GetTracksByAlbum(int artistId, int albumId);
//List<Track> GetTracksByAlbumTitle(string artistId, string albumTitle);
List<Track> TracksWithFiles(string artistId);
List<Track> TracksWithFiles(int artistId);
//PagingSpec<Track> TracksWithoutFiles(PagingSpec<Track> pagingSpec);
List<Track> GetTracksByFileId(int trackFileId);
void UpdateTrack(Track track);
@ -29,7 +29,7 @@ namespace NzbDrone.Core.Music
void InsertMany(List<Track> tracks);
void UpdateMany(List<Track> tracks);
void DeleteMany(List<Track> tracks);
void SetTrackMonitoredByAlbum(string artistId, string albumId, bool monitored);
void SetTrackMonitoredByAlbum(int artistId, int albumId, bool monitored);
}
public class TrackService : ITrackService
@ -55,22 +55,22 @@ namespace NzbDrone.Core.Music
return _trackRepository.Get(ids).ToList();
}
public Track FindTrack(string artistId, string albumId, int trackNumber)
public Track FindTrack(int artistId, int albumId, int trackNumber)
{
return _trackRepository.Find(artistId, albumId, trackNumber);
}
public List<Track> GetTracksByArtist(string artistId)
public List<Track> GetTracksByArtist(int artistId)
{
return _trackRepository.GetTracks(artistId).ToList();
}
public List<Track> GetTracksByAlbum(string artistId, string albumId)
public List<Track> GetTracksByAlbum(int artistId, int albumId)
{
return _trackRepository.GetTracks(artistId, albumId);
}
public Track FindTrackByTitle(string artistId, string albumId, string releaseTitle)
public Track FindTrackByTitle(int artistId, int albumId, string releaseTitle)
{
// TODO: can replace this search mechanism with something smarter/faster/better
var normalizedReleaseTitle = Parser.Parser.NormalizeEpisodeTitle(releaseTitle).Replace(".", " ");
@ -96,7 +96,7 @@ namespace NzbDrone.Core.Music
return null;
}
public List<Track> TracksWithFiles(string artistId)
public List<Track> TracksWithFiles(int artistId)
{
return _trackRepository.TracksWithFiles(artistId);
}
@ -127,7 +127,7 @@ namespace NzbDrone.Core.Music
_logger.Debug("Monitored flag for Track:{0} was set to {1}", trackId, monitored);
}
public void SetTrackMonitoredByAlbum(string artistId, string albumId, bool monitored)
public void SetTrackMonitoredByAlbum(int artistId, int albumId, bool monitored)
{
_trackRepository.SetMonitoredByAlbum(artistId, albumId, monitored);
}
@ -154,7 +154,7 @@ namespace NzbDrone.Core.Music
public void HandleAsync(ArtistDeletedEvent message)
{
var tracks = GetTracksByArtist(message.Artist.ForeignArtistId);
var tracks = GetTracksByArtist(message.Artist.Id);
_trackRepository.DeleteMany(tracks);
}