Skip to content

Commit

Permalink
Move collectors to method as we don't need to keep them all the time
Browse files Browse the repository at this point in the history
  • Loading branch information
shemanaev committed Sep 19, 2022
1 parent ea3abf9 commit 370a985
Showing 1 changed file with 32 additions and 21 deletions.
53 changes: 32 additions & 21 deletions MediaCleaner/MediaCleanupTask.cs
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,6 @@ public class MediaCleanupTask : IScheduledTask
private readonly ILocalizationManager _localization;
private readonly IFileSystem _fileSystem;

private readonly ItemsAdapter _itemsAdapter;

private readonly IJunkCollector _moviesCollector;
private readonly IJunkCollector _seriesCollector;
private readonly IJunkCollector _videosCollector;

public bool IsDryRun { get; set; } = false;

public string Name => "Played media cleanup";
Expand Down Expand Up @@ -71,12 +65,6 @@ public MediaCleanupTask(
_userDataManager = userDataManager;
_localization = localization;
_fileSystem = fileSystem;

_itemsAdapter = new ItemsAdapter(loggerFactory.CreateLogger<ItemsAdapter>(), libraryManager, userDataManager);

_moviesCollector = new MoviesJunkCollector(loggerFactory.CreateLogger<MoviesJunkCollector>(), _itemsAdapter);
_seriesCollector = new SeriesJunkCollector(loggerFactory.CreateLogger<SeriesJunkCollector>(), _itemsAdapter);
_videosCollector = new VideosJunkCollector(loggerFactory.CreateLogger<VideosJunkCollector>(), _itemsAdapter);
}

public async Task ExecuteAsync(IProgress<double> progress, CancellationToken cancellationToken)
Expand All @@ -97,15 +85,24 @@ public async Task ExecuteAsync(IProgress<double> progress, CancellationToken can

var expired = new List<ExpiredItem>();

var itemsAdapter = new ItemsAdapter(_loggerFactory.CreateLogger<ItemsAdapter>(), _libraryManager, _userDataManager);

if (Plugin.Instance.Configuration.KeepMoviesFor >= 0)
{
var filters = new List<IExpiredItemFilter>
{
new ExpiredFilter(Plugin.Instance.Configuration.KeepMoviesFor),
new FavoritesFilter(Plugin.Instance.Configuration.KeepFavoriteMovies, usersWithFavorites, _userDataManager),
new LocationsFilter(Plugin.Instance.Configuration.LocationsMode, Plugin.Instance.Configuration.LocationsExcluded, _fileSystem)
new FavoritesFilter(_loggerFactory.CreateLogger<FavoritesFilter>(),
Plugin.Instance.Configuration.KeepFavoriteMovies,
usersWithFavorites,
_userDataManager),
new LocationsFilter(_loggerFactory.CreateLogger<LocationsFilter>(),
Plugin.Instance.Configuration.LocationsMode,
Plugin.Instance.Configuration.LocationsExcluded,
_fileSystem)
};
var expiredMovies = _moviesCollector.Execute(users, filters, cancellationToken);
var moviesCollector = new MoviesJunkCollector(_loggerFactory.CreateLogger<MoviesJunkCollector>(), itemsAdapter);
var expiredMovies = moviesCollector.Execute(users, filters, cancellationToken);
expired.AddRange(expiredMovies);
}
progress.Report(25);
Expand All @@ -115,11 +112,18 @@ public async Task ExecuteAsync(IProgress<double> progress, CancellationToken can
var filters = new List<IExpiredItemFilter>
{
new ExpiredFilter(Plugin.Instance.Configuration.KeepEpisodesFor),
new FavoritesFilter(Plugin.Instance.Configuration.KeepFavoriteEpisodes, usersWithFavorites, _userDataManager),
new LocationsFilter(Plugin.Instance.Configuration.LocationsMode, Plugin.Instance.Configuration.LocationsExcluded, _fileSystem),
new FavoritesFilter(_loggerFactory.CreateLogger<FavoritesFilter>(),
Plugin.Instance.Configuration.KeepFavoriteEpisodes,
usersWithFavorites,
_userDataManager),
new LocationsFilter(_loggerFactory.CreateLogger<LocationsFilter>(),
Plugin.Instance.Configuration.LocationsMode,
Plugin.Instance.Configuration.LocationsExcluded,
_fileSystem),
new SeriesFilter(_loggerFactory.CreateLogger<SeriesFilter>(), Plugin.Instance.Configuration.DeleteEpisodes)
};
var expiredSeries = _seriesCollector.Execute(users, filters, cancellationToken);
var seriesCollector = new SeriesJunkCollector(_loggerFactory.CreateLogger<SeriesJunkCollector>(), itemsAdapter);
var expiredSeries = seriesCollector.Execute(users, filters, cancellationToken);
expired.AddRange(expiredSeries);
}
progress.Report(50);
Expand All @@ -129,10 +133,17 @@ public async Task ExecuteAsync(IProgress<double> progress, CancellationToken can
var filters = new List<IExpiredItemFilter>
{
new ExpiredFilter(Plugin.Instance.Configuration.KeepVideosFor),
new FavoritesFilter(Plugin.Instance.Configuration.KeepFavoriteVideos, usersWithFavorites, _userDataManager),
new LocationsFilter(Plugin.Instance.Configuration.LocationsMode, Plugin.Instance.Configuration.LocationsExcluded, _fileSystem)
new FavoritesFilter(_loggerFactory.CreateLogger<FavoritesFilter>(),
Plugin.Instance.Configuration.KeepFavoriteVideos,
usersWithFavorites,
_userDataManager),
new LocationsFilter(_loggerFactory.CreateLogger<LocationsFilter>(),
Plugin.Instance.Configuration.LocationsMode,
Plugin.Instance.Configuration.LocationsExcluded,
_fileSystem)
};
var expiredVideos = _videosCollector.Execute(users, filters, cancellationToken);
var videosCollector = new VideosJunkCollector(_loggerFactory.CreateLogger<VideosJunkCollector>(), itemsAdapter);
var expiredVideos = videosCollector.Execute(users, filters, cancellationToken);
expired.AddRange(expiredVideos);
}
progress.Report(75);
Expand Down

0 comments on commit 370a985

Please sign in to comment.