mirror of
https://github.com/Kareadita/Kavita.git
synced 2025-06-14 02:54:16 -04:00
* Updated to net7.0 * Updated GA to .net 7 * Updated System.IO.Abstractions to use New factory. * Converted Regex into SourceGenerator in Parser. * Updated more regex to source generators. * Enabled Nullability and more regex changes throughout codebase. * Parser is 100% GeneratedRegexified * Lots of nullability code * Enabled nullability for all repositories. * Fixed another unit test * Refactored some code around and took care of some todos. * Updating code for nullability and cleaning up methods that aren't used anymore. Refctored all uses of Parser.Normalize() to use new extension * More nullability exercises. 500 warnings to go. * Fixed a bug where custom file uploads for entities wouldn't save in webP. * Nullability is done for all DTOs * Fixed all unit tests and nullability for the project. Only OPDS is left which will be done with an upcoming OPDS enhancement. * Use localization in book service after validating * Code smells * Switched to preview build of swashbuckle for .net7 support * Fixed up merge issues * Disable emulate comic book when on single page reader * Fixed a regression where double page renderer wouldn't layout the images correctly * Updated to swashbuckle which support .net 7 * Fixed a bad GA action * Some code cleanup * More code smells * Took care of most of nullable issues * Fixed a broken test due to having more than one test run in parallel * I'm really not sure why the unit tests are failing or are so extremely slow on .net 7 * Updated all dependencies * Fixed up build and removed hardcoded framework from build scripts. (this merge removes Regex Source generators). Unit tests are completely busted. * Unit tests and code cleanup. Needs shakeout now. * Adjusted Series model since a few fields are not-nullable. Removed dead imports on the project. * Refactored to use Builder pattern for all unit tests. * Switched nullability down to warnings. It wasn't possible to switch due to constraint issues in DB Migration.
71 lines
2.0 KiB
C#
71 lines
2.0 KiB
C#
|
|
using System;
|
|
using System.IO;
|
|
using API.Entities.Enums;
|
|
using API.Entities.Interfaces;
|
|
|
|
namespace API.Entities;
|
|
|
|
/// <summary>
|
|
/// Represents a wrapper to the underlying file. This provides information around file, like number of pages, format, etc.
|
|
/// </summary>
|
|
public class MangaFile : IEntityDate
|
|
{
|
|
public int Id { get; set; }
|
|
/// <summary>
|
|
/// Absolute path to the archive file
|
|
/// </summary>
|
|
public required string FilePath { get; set; }
|
|
/// <summary>
|
|
/// Number of pages for the given file
|
|
/// </summary>
|
|
public int Pages { get; set; }
|
|
public MangaFormat Format { get; set; }
|
|
/// <summary>
|
|
/// How many bytes make up this file
|
|
/// </summary>
|
|
public long Bytes { get; set; }
|
|
/// <summary>
|
|
/// File extension
|
|
/// </summary>
|
|
public string? Extension { get; set; }
|
|
/// <inheritdoc cref="IEntityDate.Created"/>
|
|
public DateTime Created { get; set; }
|
|
/// <summary>
|
|
/// Last time underlying file was modified
|
|
/// </summary>
|
|
/// <remarks>This gets updated anytime the file is scanned</remarks>
|
|
public DateTime LastModified { get; set; }
|
|
|
|
public DateTime CreatedUtc { get; set; }
|
|
public DateTime LastModifiedUtc { get; set; }
|
|
|
|
/// <summary>
|
|
/// Last time file analysis ran on this file
|
|
/// </summary>
|
|
public DateTime LastFileAnalysis { get; set; }
|
|
public DateTime LastFileAnalysisUtc { get; set; }
|
|
|
|
|
|
// Relationship Mapping
|
|
public Chapter Chapter { get; set; } = null!;
|
|
public int ChapterId { get; set; }
|
|
|
|
|
|
/// <summary>
|
|
/// Updates the Last Modified time of the underlying file to the LastWriteTime
|
|
/// </summary>
|
|
public void UpdateLastModified()
|
|
{
|
|
if (FilePath == null) return;
|
|
LastModified = File.GetLastWriteTime(FilePath);
|
|
LastModifiedUtc = File.GetLastWriteTimeUtc(FilePath);
|
|
}
|
|
|
|
public void UpdateLastFileAnalysis()
|
|
{
|
|
LastFileAnalysis = DateTime.Now;
|
|
LastFileAnalysisUtc = DateTime.UtcNow;
|
|
}
|
|
}
|