public void WriteTags(BookFile bookFile, bool newDownload, bool force = false) { if (!force) { if (_configService.WriteBookTags == WriteBookTagsType.NewFiles && !newDownload) { return; } } _logger.Debug($"Writing tags for {bookFile}"); var rootFolder = _rootFolderService.GetBestRootFolder(bookFile.Path); _calibre.SetFields(bookFile, rootFolder.CalibreSettings, _configService.UpdateCovers, _configService.EmbedMetadata); }
public BookFile CalibreAddAndConvert(BookFile file, CalibreSettings settings) { _logger.Trace($"Importing to calibre: {file.Path}"); if (file.CalibreId == 0) { var import = _calibre.AddBook(file, settings); file.CalibreId = import.Id; } else { _calibre.AddFormat(file, settings); } _calibre.SetFields(file, settings); var updated = _calibre.GetBook(file.CalibreId, settings); var path = updated.Formats.Values.OrderByDescending(x => x.LastModified).First().Path; file.Path = path; _rootFolderWatchingService.ReportFileSystemChangeBeginning(file.Path); if (settings.OutputFormat.IsNotNullOrWhiteSpace()) { _logger.Trace($"Getting book data for {file.CalibreId}"); var options = _calibre.GetBookData(file.CalibreId, settings); var inputFormat = file.Quality.Quality.Name.ToUpper(); options.Conversion_options.Input_fmt = inputFormat; var formats = settings.OutputFormat.Split(',').Select(x => x.Trim()); foreach (var format in formats) { if (format.ToLower() == inputFormat || options.Input_formats.Contains(format, StringComparer.OrdinalIgnoreCase)) { continue; } options.Conversion_options.Output_fmt = format; if (settings.OutputProfile != (int)CalibreProfile.Default) { options.Conversion_options.Options.Output_profile = ((CalibreProfile)settings.OutputProfile).ToString(); } _logger.Trace($"Starting conversion to {format}"); _calibre.ConvertBook(file.CalibreId, options.Conversion_options, settings); } } return(file); }
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); }