Reading List Detail Overhaul + More Bugfixes and Polish (#3687)

Co-authored-by: Yongun Seong <yseong.p@gmail.com>
This commit is contained in:
Joe Milazzo 2025-03-29 19:47:53 -05:00 committed by GitHub
parent b2ee651fb8
commit dad212bfb9
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
71 changed files with 5056 additions and 729 deletions

View file

@ -0,0 +1,20 @@
using System.Collections.Generic;
namespace API.DTOs.ReadingLists;
public class ReadingListCast
{
public ICollection<PersonDto> Writers { get; set; } = [];
public ICollection<PersonDto> CoverArtists { get; set; } = [];
public ICollection<PersonDto> Publishers { get; set; } = [];
public ICollection<PersonDto> Characters { get; set; } = [];
public ICollection<PersonDto> Pencillers { get; set; } = [];
public ICollection<PersonDto> Inkers { get; set; } = [];
public ICollection<PersonDto> Imprints { get; set; } = [];
public ICollection<PersonDto> Colorists { get; set; } = [];
public ICollection<PersonDto> Letterers { get; set; } = [];
public ICollection<PersonDto> Editors { get; set; } = [];
public ICollection<PersonDto> Translators { get; set; } = [];
public ICollection<PersonDto> Teams { get; set; } = [];
public ICollection<PersonDto> Locations { get; set; } = [];
}

View file

@ -1,4 +1,5 @@
using System;
using API.Entities.Enums;
using API.Entities.Interfaces;
namespace API.DTOs.ReadingLists;
@ -43,6 +44,10 @@ public class ReadingListDto : IHasCoverImage
/// Maximum Month the Reading List starts
/// </summary>
public int EndingMonth { get; set; }
/// <summary>
/// The highest age rating from all Series within the reading list
/// </summary>
public required AgeRating AgeRating { get; set; } = AgeRating.Unknown;
public void ResetColorScape()
{

View file

@ -0,0 +1,26 @@
using API.DTOs.Reader;
using API.Entities.Interfaces;
namespace API.DTOs.ReadingLists;
public class ReadingListInfoDto : IHasReadTimeEstimate
{
/// <summary>
/// Total Pages across all Reading List Items
/// </summary>
public int Pages { get; set; }
/// <summary>
/// Total Word count across all Reading List Items
/// </summary>
public long WordCount { get; set; }
/// <summary>
/// Are ALL Reading List Items epub
/// </summary>
public bool IsAllEpub { get; set; }
/// <inheritdoc cref="IHasReadTimeEstimate.MinHoursToRead"/>
public int MinHoursToRead { get; set; }
/// <inheritdoc cref="IHasReadTimeEstimate.MaxHoursToRead"/>
public int MaxHoursToRead { get; set; }
/// <inheritdoc cref="IHasReadTimeEstimate.AvgHoursToRead"/>
public float AvgHoursToRead { get; set; }
}

View file

@ -25,7 +25,7 @@ public class ReadingListItemDto
/// <summary>
/// Release Date from Chapter
/// </summary>
public DateTime ReleaseDate { get; set; }
public DateTime? ReleaseDate { get; set; }
/// <summary>
/// Used internally only
/// </summary>
@ -33,7 +33,7 @@ public class ReadingListItemDto
/// <summary>
/// The last time a reading list item (underlying chapter) was read by current authenticated user
/// </summary>
public DateTime LastReadingProgressUtc { get; set; }
public DateTime? LastReadingProgressUtc { get; set; }
/// <summary>
/// File size of underlying item
/// </summary>

View file

@ -63,6 +63,13 @@ public class UserPreferencesDto
/// </summary>
[Required]
public bool ShowScreenHints { get; set; } = true;
/// <summary>
/// Manga Reader Option: Allow Automatic Webtoon detection
/// </summary>
[Required]
public bool AllowAutomaticWebtoonReaderDetection { get; set; }
/// <summary>
/// Book Reader Option: Override extra Margin
/// </summary>