Fixed: Error trying to write calibre tags when calibre not enabled

pull/1143/head
ta264 4 years ago
parent e0236e781a
commit eaa1578c65

@ -14,18 +14,15 @@ namespace NzbDrone.Core.Books
public class RefreshEditionService : IRefreshEditionService public class RefreshEditionService : IRefreshEditionService
{ {
private readonly IEditionService _editionService; private readonly IEditionService _editionService;
private readonly IAudioTagService _audioTagService; private readonly IMetadataTagService _metadataTagService;
private readonly IEBookTagService _eBookTagService;
private readonly Logger _logger; private readonly Logger _logger;
public RefreshEditionService(IEditionService editionService, public RefreshEditionService(IEditionService editionService,
IAudioTagService audioTagService, IMetadataTagService metadataTagService,
IEBookTagService eBookTagService, Logger logger)
Logger logger)
{ {
_editionService = editionService; _editionService = editionService;
_audioTagService = audioTagService; _metadataTagService = metadataTagService;
_eBookTagService = eBookTagService;
_logger = logger; _logger = logger;
} }
@ -54,8 +51,7 @@ namespace NzbDrone.Core.Books
tagsToUpdate = updateList.Concat(upToDate).ToList(); tagsToUpdate = updateList.Concat(upToDate).ToList();
} }
_audioTagService.SyncTags(tagsToUpdate); _metadataTagService.SyncTags(tagsToUpdate);
_eBookTagService.SyncTags(tagsToUpdate);
return add.Any() || delete.Any() || updateList.Any() || merge.Any(); return add.Any() || delete.Any() || updateList.Any() || merge.Any();
} }

@ -11,9 +11,7 @@ using NzbDrone.Core.Configuration;
using NzbDrone.Core.MediaCover; using NzbDrone.Core.MediaCover;
using NzbDrone.Core.MediaFiles.Commands; using NzbDrone.Core.MediaFiles.Commands;
using NzbDrone.Core.MediaFiles.Events; using NzbDrone.Core.MediaFiles.Events;
using NzbDrone.Core.Messaging.Commands;
using NzbDrone.Core.Messaging.Events; using NzbDrone.Core.Messaging.Events;
using NzbDrone.Core.Parser;
using NzbDrone.Core.Parser.Model; using NzbDrone.Core.Parser.Model;
using TagLib; using TagLib;

@ -29,8 +29,7 @@ namespace NzbDrone.Core.MediaFiles.BookImport
{ {
private readonly IUpgradeMediaFiles _bookFileUpgrader; private readonly IUpgradeMediaFiles _bookFileUpgrader;
private readonly IMediaFileService _mediaFileService; private readonly IMediaFileService _mediaFileService;
private readonly IAudioTagService _audioTagService; private readonly IMetadataTagService _metadataTagService;
private readonly IEBookTagService _eBookTagService;
private readonly IAuthorService _authorService; private readonly IAuthorService _authorService;
private readonly IAddAuthorService _addAuthorService; private readonly IAddAuthorService _addAuthorService;
private readonly IBookService _bookService; private readonly IBookService _bookService;
@ -45,8 +44,7 @@ namespace NzbDrone.Core.MediaFiles.BookImport
public ImportApprovedBooks(IUpgradeMediaFiles bookFileUpgrader, public ImportApprovedBooks(IUpgradeMediaFiles bookFileUpgrader,
IMediaFileService mediaFileService, IMediaFileService mediaFileService,
IAudioTagService audioTagService, IMetadataTagService metadataTagService,
IEBookTagService eBookTagService,
IAuthorService authorService, IAuthorService authorService,
IAddAuthorService addAuthorService, IAddAuthorService addAuthorService,
IBookService bookService, IBookService bookService,
@ -61,8 +59,7 @@ namespace NzbDrone.Core.MediaFiles.BookImport
{ {
_bookFileUpgrader = bookFileUpgrader; _bookFileUpgrader = bookFileUpgrader;
_mediaFileService = mediaFileService; _mediaFileService = mediaFileService;
_audioTagService = audioTagService; _metadataTagService = metadataTagService;
_eBookTagService = eBookTagService;
_authorService = authorService; _authorService = authorService;
_addAuthorService = addAuthorService; _addAuthorService = addAuthorService;
_bookService = bookService; _bookService = bookService;
@ -215,8 +212,7 @@ namespace NzbDrone.Core.MediaFiles.BookImport
} }
} }
_audioTagService.WriteTags(bookFile, false); _metadataTagService.WriteTags(bookFile, false);
_eBookTagService.WriteTags(bookFile, false);
} }
filesToAdd.Add(bookFile); filesToAdd.Add(bookFile);

@ -12,7 +12,6 @@ using NzbDrone.Core.Books.Calibre;
using NzbDrone.Core.Configuration; using NzbDrone.Core.Configuration;
using NzbDrone.Core.MediaFiles.Azw; using NzbDrone.Core.MediaFiles.Azw;
using NzbDrone.Core.MediaFiles.Commands; using NzbDrone.Core.MediaFiles.Commands;
using NzbDrone.Core.Messaging.Commands;
using NzbDrone.Core.Parser.Model; using NzbDrone.Core.Parser.Model;
using NzbDrone.Core.Qualities; using NzbDrone.Core.Qualities;
using NzbDrone.Core.RootFolders; using NzbDrone.Core.RootFolders;
@ -107,7 +106,7 @@ namespace NzbDrone.Core.MediaFiles
_logger.Debug($"Syncing ebook tags for {edition}"); _logger.Debug($"Syncing ebook tags for {edition}");
foreach (var file in bookFiles) foreach (var file in bookFiles.Where(x => x.CalibreId != 0))
{ {
// populate tracks (which should also have release/book/author set) because // populate tracks (which should also have release/book/author set) because
// not all of the updates will have been committed to the database yet // not all of the updates will have been committed to the database yet
@ -169,6 +168,11 @@ namespace NzbDrone.Core.MediaFiles
private void WriteTagsInternal(BookFile file, bool updateCover, bool embedMetadata) private void WriteTagsInternal(BookFile file, bool updateCover, bool embedMetadata)
{ {
if (file.CalibreId == 0)
{
_logger.Trace($"No calibre id for {file.Path}, skipping writing tags");
}
var rootFolder = _rootFolderService.GetBestRootFolder(file.Path); var rootFolder = _rootFolderService.GetBestRootFolder(file.Path);
_calibre.SetFields(file, rootFolder.CalibreSettings, updateCover, embedMetadata); _calibre.SetFields(file, rootFolder.CalibreSettings, updateCover, embedMetadata);

@ -4,6 +4,7 @@ using System.IO.Abstractions;
using System.Linq; using System.Linq;
using NLog; using NLog;
using NzbDrone.Common.Instrumentation.Extensions; using NzbDrone.Common.Instrumentation.Extensions;
using NzbDrone.Core.Books;
using NzbDrone.Core.MediaFiles.Commands; using NzbDrone.Core.MediaFiles.Commands;
using NzbDrone.Core.Messaging.Commands; using NzbDrone.Core.Messaging.Commands;
using NzbDrone.Core.Parser.Model; using NzbDrone.Core.Parser.Model;
@ -14,6 +15,7 @@ namespace NzbDrone.Core.MediaFiles
{ {
ParsedTrackInfo ReadTags(IFileInfo file); ParsedTrackInfo ReadTags(IFileInfo file);
void WriteTags(BookFile trackfile, bool newDownload, bool force = false); void WriteTags(BookFile trackfile, bool newDownload, bool force = false);
void SyncTags(List<Edition> books);
List<RetagBookFilePreview> GetRetagPreviewsByAuthor(int authorId); List<RetagBookFilePreview> GetRetagPreviewsByAuthor(int authorId);
List<RetagBookFilePreview> GetRetagPreviewsByBook(int authorId); List<RetagBookFilePreview> GetRetagPreviewsByBook(int authorId);
} }
@ -55,12 +57,18 @@ namespace NzbDrone.Core.MediaFiles
{ {
_audioTagService.WriteTags(bookFile, newDownload, force); _audioTagService.WriteTags(bookFile, newDownload, force);
} }
else else if (bookFile.CalibreId > 0)
{ {
_eBookTagService.WriteTags(bookFile, newDownload, force); _eBookTagService.WriteTags(bookFile, newDownload, force);
} }
} }
public void SyncTags(List<Edition> editions)
{
_audioTagService.SyncTags(editions);
_eBookTagService.SyncTags(editions);
}
public List<RetagBookFilePreview> GetRetagPreviewsByAuthor(int authorId) public List<RetagBookFilePreview> GetRetagPreviewsByAuthor(int authorId)
{ {
var previews = _audioTagService.GetRetagPreviewsByAuthor(authorId); var previews = _audioTagService.GetRetagPreviewsByAuthor(authorId);

@ -22,7 +22,7 @@ namespace NzbDrone.Core.MediaFiles
private readonly IConfigService _configService; private readonly IConfigService _configService;
private readonly IRecycleBinProvider _recycleBinProvider; private readonly IRecycleBinProvider _recycleBinProvider;
private readonly IMediaFileService _mediaFileService; private readonly IMediaFileService _mediaFileService;
private readonly IAudioTagService _audioTagService; private readonly IMetadataTagService _metadataTagService;
private readonly IMoveBookFiles _bookFileMover; private readonly IMoveBookFiles _bookFileMover;
private readonly IDiskProvider _diskProvider; private readonly IDiskProvider _diskProvider;
private readonly IRootFolderService _rootFolderService; private readonly IRootFolderService _rootFolderService;
@ -33,7 +33,7 @@ namespace NzbDrone.Core.MediaFiles
public UpgradeMediaFileService(IConfigService configService, public UpgradeMediaFileService(IConfigService configService,
IRecycleBinProvider recycleBinProvider, IRecycleBinProvider recycleBinProvider,
IMediaFileService mediaFileService, IMediaFileService mediaFileService,
IAudioTagService audioTagService, IMetadataTagService metadataTagService,
IMoveBookFiles bookFileMover, IMoveBookFiles bookFileMover,
IDiskProvider diskProvider, IDiskProvider diskProvider,
IRootFolderService rootFolderService, IRootFolderService rootFolderService,
@ -44,7 +44,7 @@ namespace NzbDrone.Core.MediaFiles
_configService = configService; _configService = configService;
_recycleBinProvider = recycleBinProvider; _recycleBinProvider = recycleBinProvider;
_mediaFileService = mediaFileService; _mediaFileService = mediaFileService;
_audioTagService = audioTagService; _metadataTagService = metadataTagService;
_bookFileMover = bookFileMover; _bookFileMover = bookFileMover;
_diskProvider = diskProvider; _diskProvider = diskProvider;
_rootFolderService = rootFolderService; _rootFolderService = rootFolderService;
@ -109,7 +109,7 @@ namespace NzbDrone.Core.MediaFiles
moveFileResult.BookFile = _bookFileMover.MoveBookFile(bookFile, localBook); moveFileResult.BookFile = _bookFileMover.MoveBookFile(bookFile, localBook);
} }
_audioTagService.WriteTags(bookFile, true); _metadataTagService.WriteTags(bookFile, true);
} }
else else
{ {

Loading…
Cancel
Save