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

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

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

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

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

@ -12,7 +12,6 @@ using NzbDrone.Core.Books.Calibre;
using NzbDrone.Core.Configuration;
using NzbDrone.Core.MediaFiles.Azw;
using NzbDrone.Core.MediaFiles.Commands;
using NzbDrone.Core.Messaging.Commands;
using NzbDrone.Core.Parser.Model;
using NzbDrone.Core.Qualities;
using NzbDrone.Core.RootFolders;
@ -107,7 +106,7 @@ namespace NzbDrone.Core.MediaFiles
_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
// 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)
{
if (file.CalibreId == 0)
{
_logger.Trace($"No calibre id for {file.Path}, skipping writing tags");
}
var rootFolder = _rootFolderService.GetBestRootFolder(file.Path);
_calibre.SetFields(file, rootFolder.CalibreSettings, updateCover, embedMetadata);

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

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

Loading…
Cancel
Save