mirror of
https://github.com/Readarr/Readarr.git
synced 2026-04-18 21:34:28 -04:00
Fixed: Error trying to write calibre tags when calibre not enabled
This commit is contained in:
@@ -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
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user