mirror of https://github.com/lidarr/Lidarr
Clean up and back to build state
Clean up and back to build state
This commit is contained in:
parent
b4279a455e
commit
fafe4e93f3
|
@ -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));
|
||||
}
|
||||
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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; }
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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();
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue