Kavita+ Comic Metadata Matching (#3740)

This commit is contained in:
Joe Milazzo 2025-04-25 07:26:48 -06:00 committed by GitHub
parent 4521965315
commit ed154e4768
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
46 changed files with 4207 additions and 98 deletions

View file

@ -13,4 +13,5 @@ internal class SeriesDetailPlusApiDto
public ExternalSeriesDetailDto? Series { get; set; }
public int? AniListId { get; set; }
public long? MalId { get; set; }
public int? CbrId { get; set; }
}

View file

@ -0,0 +1,36 @@
using System;
using System.Collections.Generic;
using API.DTOs.SeriesDetail;
namespace API.DTOs.KavitaPlus.Metadata;
/// <summary>
/// Information about an individual issue/chapter/book from Kavita+
/// </summary>
public class ExternalChapterDto
{
public string Title { get; set; }
public string IssueNumber { get; set; }
public decimal? CriticRating { get; set; }
public decimal? UserRating { get; set; }
public string? Summary { get; set; }
public IList<string>? Writers { get; set; }
public IList<string>? Artists { get; set; }
public DateTime? ReleaseDate { get; set; }
public string? Publisher { get; set; }
public string? CoverImageUrl { get; set; }
public string? IssueUrl { get; set; }
public IList<UserReviewDto> CriticReviews { get; set; }
public IList<UserReviewDto> UserReviews { get; set; }
}

View file

@ -15,6 +15,7 @@ public class ExternalSeriesDetailDto
public string Name { get; set; }
public int? AniListId { get; set; }
public long? MALId { get; set; }
public int? CbrId { get; set; }
public IList<string> Synonyms { get; set; } = [];
public PlusMediaFormat PlusMediaFormat { get; set; }
public string? SiteUrl { get; set; }
@ -33,5 +34,13 @@ public class ExternalSeriesDetailDto
public IList<SeriesRelationship>? Relations { get; set; } = [];
public IList<SeriesCharacter>? Characters { get; set; } = [];
#region Comic Only
public string? Publisher { get; set; }
/// <summary>
/// Only from CBR for <see cref="ScrobbleProvider.Cbr"/>. Full metadata about issues
/// </summary>
public IList<ExternalChapterDto>? ChapterDtos { get; set; }
#endregion
}

View file

@ -43,6 +43,29 @@ public class MetadataSettingsDto
/// </summary>
public bool EnableCoverImage { get; set; }
#region Chapter Metadata
/// <summary>
/// Allow Summary to be set within Chapter/Issue
/// </summary>
public bool EnableChapterSummary { get; set; }
/// <summary>
/// Allow Release Date to be set within Chapter/Issue
/// </summary>
public bool EnableChapterReleaseDate { get; set; }
/// <summary>
/// Allow Title to be set within Chapter/Issue
/// </summary>
public bool EnableChapterTitle { get; set; }
/// <summary>
/// Allow Publisher to be set within Chapter/Issue
/// </summary>
public bool EnableChapterPublisher { get; set; }
/// <summary>
/// Allow setting the cover image for the Chapter/Issue
/// </summary>
public bool EnableChapterCoverImage { get; set; }
#endregion
// Need to handle the Genre/tags stuff
public bool EnableGenres { get; set; } = true;
public bool EnableTags { get; set; } = true;