mirror of
https://github.com/fergalmoran/Readarr.git
synced 2026-01-09 10:16:41 +00:00
Fixed: Add missing author when a book's author changes in metadata
Fixes READARR-VH
This commit is contained in:
@@ -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)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user