Fixed: Add missing author when a book's author changes in metadata

Fixes READARR-VH
pull/1758/head
ta264 2 years ago
parent c0c0847963
commit b3f99d8c20

@ -15,12 +15,14 @@ namespace NzbDrone.Core.AuthorStats
}
public class AuthorStatisticsService : IAuthorStatisticsService,
IHandle<AuthorAddedEvent>,
IHandle<AuthorUpdatedEvent>,
IHandle<AuthorDeletedEvent>,
IHandle<BookAddedEvent>,
IHandle<BookDeletedEvent>,
IHandle<BookImportedEvent>,
IHandle<BookEditedEvent>,
IHandle<BookUpdatedEvent>,
IHandle<BookFileDeletedEvent>
{
private readonly IAuthorStatisticsRepository _authorStatisticsRepository;
@ -68,6 +70,13 @@ namespace NzbDrone.Core.AuthorStats
return authorStatistics;
}
[EventHandleOrder(EventHandleOrder.First)]
public void Handle(AuthorAddedEvent message)
{
_cache.Remove("AllAuthors");
_cache.Remove(message.Author.Id.ToString());
}
[EventHandleOrder(EventHandleOrder.First)]
public void Handle(AuthorUpdatedEvent message)
{
@ -110,6 +119,13 @@ namespace NzbDrone.Core.AuthorStats
_cache.Remove(message.Book.AuthorId.ToString());
}
[EventHandleOrder(EventHandleOrder.First)]
public void Handle(BookUpdatedEvent message)
{
_cache.Remove("AllAuthors");
_cache.Remove(message.Book.AuthorId.ToString());
}
[EventHandleOrder(EventHandleOrder.First)]
public void Handle(BookFileDeletedEvent message)
{

@ -14,6 +14,7 @@ using NzbDrone.Core.MediaFiles;
using NzbDrone.Core.Messaging.Commands;
using NzbDrone.Core.Messaging.Events;
using NzbDrone.Core.MetadataSource;
using NzbDrone.Core.RootFolders;
namespace NzbDrone.Core.Books
{
@ -30,6 +31,7 @@ namespace NzbDrone.Core.Books
{
private readonly IBookService _bookService;
private readonly IAuthorService _authorService;
private readonly IRootFolderService _rootFolderService;
private readonly IAddAuthorService _addAuthorService;
private readonly IEditionService _editionService;
private readonly IProvideAuthorInfo _authorInfo;
@ -44,6 +46,7 @@ namespace NzbDrone.Core.Books
public RefreshBookService(IBookService bookService,
IAuthorService authorService,
IRootFolderService rootFolderService,
IAddAuthorService addAuthorService,
IEditionService editionService,
IAuthorMetadataService authorMetadataService,
@ -60,6 +63,7 @@ namespace NzbDrone.Core.Books
{
_bookService = bookService;
_authorService = authorService;
_rootFolderService = rootFolderService;
_addAuthorService = addAuthorService;
_editionService = editionService;
_authorInfo = authorInfo;
@ -142,7 +146,7 @@ namespace NzbDrone.Core.Books
Metadata = remote.AuthorMetadata.Value,
MetadataProfileId = oldAuthor.MetadataProfileId,
QualityProfileId = oldAuthor.QualityProfileId,
RootFolderPath = oldAuthor.RootFolderPath,
RootFolderPath = _rootFolderService.GetBestRootFolderPath(oldAuthor.Path),
Monitored = oldAuthor.Monitored,
Tags = oldAuthor.Tags
};

@ -29,6 +29,7 @@ namespace Readarr.Api.V1.Author
IHandle<BookImportedEvent>,
IHandle<BookEditedEvent>,
IHandle<BookFileDeletedEvent>,
IHandle<AuthorAddedEvent>,
IHandle<AuthorUpdatedEvent>,
IHandle<AuthorEditedEvent>,
IHandle<AuthorDeletedEvent>,
@ -255,6 +256,12 @@ namespace Readarr.Api.V1.Author
BroadcastResourceChange(ModelAction.Updated, GetAuthorResource(message.BookFile.Author.Value));
}
[NonAction]
public void Handle(AuthorAddedEvent message)
{
BroadcastResourceChange(ModelAction.Updated, GetAuthorResource(message.Author));
}
[NonAction]
public void Handle(AuthorUpdatedEvent message)
{

Loading…
Cancel
Save