scanning and poster improvements (#24)

* first pass at refresh-all-metadata by source

* add version to startup logs

* lock media source during refresh

* fix local media source "name" in collection editor

* optimize scanning so playouts only rebuild when necessary

* support more poster file types

* more scanning improvements; check for missing posters during scans
This commit is contained in:
Jason Dove
2021-02-14 17:04:50 +00:00
committed by GitHub
parent 2c9d4d796a
commit 1aac2f13c9
28 changed files with 378 additions and 99 deletions
@@ -85,15 +85,18 @@ namespace ErsatzTV.Infrastructure.Data.Repositories
return _dbContext.SaveChangesAsync();
}
public async Task InsertOrIgnore(TelevisionMediaCollection collection)
public async Task<bool> InsertOrIgnore(TelevisionMediaCollection collection)
{
if (!_dbContext.TelevisionMediaCollections.Any(
existing => existing.ShowTitle == collection.ShowTitle &&
existing.SeasonNumber == collection.SeasonNumber))
{
await _dbContext.TelevisionMediaCollections.AddAsync(collection);
await _dbContext.SaveChangesAsync();
return await _dbContext.SaveChangesAsync() > 0;
}
// no change
return false;
}
public Task<Unit> ReplaceItems(int collectionId, List<MediaItem> mediaItems) =>
@@ -97,10 +97,10 @@ LIMIT {0} OFFSET {1}",
.Filter(i => i.MediaSourceId == mediaSourceId)
.ToListAsync();
public async Task Update(MediaItem mediaItem)
public async Task<bool> Update(MediaItem mediaItem)
{
_dbContext.MediaItems.Update(mediaItem);
await _dbContext.SaveChangesAsync();
return await _dbContext.SaveChangesAsync() > 0;
}
public async Task Delete(int mediaItemId)