mirror of
https://github.com/Readarr/Readarr
synced 2026-05-08 21:13:58 +02:00
Fixed: Error trying to write calibre tags when calibre not enabled
This commit is contained in:
parent
e0236e781a
commit
eaa1578c65
6 changed files with 28 additions and 26 deletions
|
|
@ -14,18 +14,15 @@ public interface IRefreshEditionService
|
|||
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 @@ public bool RefreshEditionInfo(List<Edition> add, List<Edition> update, List<Tup
|
|||
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.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 @@ public class ImportApprovedBooks : IImportApprovedBooks
|
|||
{
|
||||
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 @@ public class ImportApprovedBooks : IImportApprovedBooks
|
|||
|
||||
public ImportApprovedBooks(IUpgradeMediaFiles bookFileUpgrader,
|
||||
IMediaFileService mediaFileService,
|
||||
IAudioTagService audioTagService,
|
||||
IEBookTagService eBookTagService,
|
||||
IMetadataTagService metadataTagService,
|
||||
IAuthorService authorService,
|
||||
IAddAuthorService addAuthorService,
|
||||
IBookService bookService,
|
||||
|
|
@ -61,8 +59,7 @@ public ImportApprovedBooks(IUpgradeMediaFiles bookFileUpgrader,
|
|||
{
|
||||
_bookFileUpgrader = bookFileUpgrader;
|
||||
_mediaFileService = mediaFileService;
|
||||
_audioTagService = audioTagService;
|
||||
_eBookTagService = eBookTagService;
|
||||
_metadataTagService = metadataTagService;
|
||||
_authorService = authorService;
|
||||
_addAuthorService = addAuthorService;
|
||||
_bookService = bookService;
|
||||
|
|
@ -215,8 +212,7 @@ public List<ImportResult> Import(List<ImportDecision<LocalBook>> decisions, bool
|
|||
}
|
||||
}
|
||||
|
||||
_audioTagService.WriteTags(bookFile, false);
|
||||
_eBookTagService.WriteTags(bookFile, false);
|
||||
_metadataTagService.WriteTags(bookFile, false);
|
||||
}
|
||||
|
||||
filesToAdd.Add(bookFile);
|
||||
|
|
|
|||
|
|
@ -12,7 +12,6 @@
|
|||
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 @@ public void SyncTags(List<Edition> editions)
|
|||
|
||||
_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 @@ public void RetagAuthor(RetagAuthorCommand message)
|
|||
|
||||
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.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 @@ public interface IMetadataTagService
|
|||
{
|
||||
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 @@ public void WriteTags(BookFile bookFile, bool newDownload, bool force = false)
|
|||
{
|
||||
_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 @@ public class UpgradeMediaFileService : IUpgradeMediaFiles
|
|||
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 @@ public class UpgradeMediaFileService : IUpgradeMediaFiles
|
|||
public UpgradeMediaFileService(IConfigService configService,
|
||||
IRecycleBinProvider recycleBinProvider,
|
||||
IMediaFileService mediaFileService,
|
||||
IAudioTagService audioTagService,
|
||||
IMetadataTagService metadataTagService,
|
||||
IMoveBookFiles bookFileMover,
|
||||
IDiskProvider diskProvider,
|
||||
IRootFolderService rootFolderService,
|
||||
|
|
@ -44,7 +44,7 @@ public UpgradeMediaFileService(IConfigService configService,
|
|||
_configService = configService;
|
||||
_recycleBinProvider = recycleBinProvider;
|
||||
_mediaFileService = mediaFileService;
|
||||
_audioTagService = audioTagService;
|
||||
_metadataTagService = metadataTagService;
|
||||
_bookFileMover = bookFileMover;
|
||||
_diskProvider = diskProvider;
|
||||
_rootFolderService = rootFolderService;
|
||||
|
|
@ -109,7 +109,7 @@ public BookFileMoveResult UpgradeBookFile(BookFile bookFile, LocalBook localBook
|
|||
moveFileResult.BookFile = _bookFileMover.MoveBookFile(bookFile, localBook);
|
||||
}
|
||||
|
||||
_audioTagService.WriteTags(bookFile, true);
|
||||
_metadataTagService.WriteTags(bookFile, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in a new issue