better trakt lists (#384)
* better trakt list support * update dependencies * revert unneeded brackets
This commit is contained in:
@@ -6,6 +6,7 @@ using System.Threading.Channels;
|
||||
using System.Threading.Tasks;
|
||||
using ErsatzTV.Application;
|
||||
using ErsatzTV.Application.Maintenance.Commands;
|
||||
using ErsatzTV.Application.MediaCollections.Commands;
|
||||
using ErsatzTV.Application.MediaSources.Commands;
|
||||
using ErsatzTV.Application.Playouts.Commands;
|
||||
using ErsatzTV.Application.Plex.Commands;
|
||||
@@ -85,6 +86,7 @@ namespace ErsatzTV.Services
|
||||
await BuildPlayouts(cancellationToken);
|
||||
await ScanLocalMediaSources(cancellationToken);
|
||||
await ScanPlexMediaSources(cancellationToken);
|
||||
await MatchTraktLists(cancellationToken);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
@@ -174,6 +176,26 @@ namespace ErsatzTV.Services
|
||||
}
|
||||
}
|
||||
|
||||
private async Task MatchTraktLists(CancellationToken cancellationToken)
|
||||
{
|
||||
using IServiceScope scope = _serviceScopeFactory.CreateScope();
|
||||
TvContext dbContext = scope.ServiceProvider.GetRequiredService<TvContext>();
|
||||
|
||||
List<TraktList> traktLists = await dbContext.TraktLists
|
||||
.ToListAsync(cancellationToken);
|
||||
|
||||
if (traktLists.Any() && _entityLocker.LockTrakt())
|
||||
{
|
||||
TraktList last = traktLists.Last();
|
||||
foreach (TraktList list in traktLists)
|
||||
{
|
||||
await _workerChannel.WriteAsync(
|
||||
new MatchTraktListItems(list.Id, list == last),
|
||||
cancellationToken);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private ValueTask RebuildSearchIndex(CancellationToken cancellationToken) =>
|
||||
_workerChannel.WriteAsync(new RebuildSearchIndex(), cancellationToken);
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@ using System.Threading.Channels;
|
||||
using System.Threading.Tasks;
|
||||
using ErsatzTV.Application;
|
||||
using ErsatzTV.Application.Maintenance.Commands;
|
||||
using ErsatzTV.Application.MediaCollections.Commands;
|
||||
using ErsatzTV.Application.MediaSources.Commands;
|
||||
using ErsatzTV.Application.Playouts.Commands;
|
||||
using ErsatzTV.Application.Search.Commands;
|
||||
@@ -77,6 +78,15 @@ namespace ErsatzTV.Services
|
||||
_logger.LogInformation("Deleting orphaned artwork from the database");
|
||||
await mediator.Send(deleteOrphanedArtwork, cancellationToken);
|
||||
break;
|
||||
case AddTraktList addTraktList:
|
||||
await mediator.Send(addTraktList, cancellationToken);
|
||||
break;
|
||||
case DeleteTraktList deleteTraktList:
|
||||
await mediator.Send(deleteTraktList, cancellationToken);
|
||||
break;
|
||||
case MatchTraktListItems matchTraktListItems:
|
||||
await mediator.Send(matchTraktListItems, cancellationToken);
|
||||
break;
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
|
||||
Reference in New Issue
Block a user