Metadata Downloading (#3525)

This commit is contained in:
Joe Milazzo 2025-02-05 16:16:44 -06:00 committed by GitHub
parent eb66763078
commit f4fd7230ea
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
108 changed files with 6296 additions and 484 deletions

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,112 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace API.Data.Migrations
{
/// <inheritdoc />
public partial class KavitaPlusUserAndMetadataSettings : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<bool>(
name: "AllowMetadataMatching",
table: "Library",
type: "INTEGER",
nullable: false,
defaultValue: true);
migrationBuilder.AddColumn<bool>(
name: "AniListScrobblingEnabled",
table: "AppUserPreferences",
type: "INTEGER",
nullable: false,
defaultValue: true);
migrationBuilder.AddColumn<bool>(
name: "WantToReadSync",
table: "AppUserPreferences",
type: "INTEGER",
nullable: false,
defaultValue: true);
migrationBuilder.CreateTable(
name: "MetadataSettings",
columns: table => new
{
Id = table.Column<int>(type: "INTEGER", nullable: false)
.Annotation("Sqlite:Autoincrement", true),
Enabled = table.Column<bool>(type: "INTEGER", nullable: false, defaultValue: true),
EnableSummary = table.Column<bool>(type: "INTEGER", nullable: false),
EnablePublicationStatus = table.Column<bool>(type: "INTEGER", nullable: false),
EnableRelationships = table.Column<bool>(type: "INTEGER", nullable: false),
EnablePeople = table.Column<bool>(type: "INTEGER", nullable: false),
EnableStartDate = table.Column<bool>(type: "INTEGER", nullable: false),
EnableLocalizedName = table.Column<bool>(type: "INTEGER", nullable: false),
EnableGenres = table.Column<bool>(type: "INTEGER", nullable: false),
EnableTags = table.Column<bool>(type: "INTEGER", nullable: false),
FirstLastPeopleNaming = table.Column<bool>(type: "INTEGER", nullable: false),
AgeRatingMappings = table.Column<string>(type: "TEXT", nullable: true),
Blacklist = table.Column<string>(type: "TEXT", nullable: true),
Whitelist = table.Column<string>(type: "TEXT", nullable: true),
PersonRoles = table.Column<string>(type: "TEXT", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_MetadataSettings", x => x.Id);
});
migrationBuilder.CreateTable(
name: "MetadataFieldMapping",
columns: table => new
{
Id = table.Column<int>(type: "INTEGER", nullable: false)
.Annotation("Sqlite:Autoincrement", true),
SourceType = table.Column<int>(type: "INTEGER", nullable: false),
DestinationType = table.Column<int>(type: "INTEGER", nullable: false),
SourceValue = table.Column<string>(type: "TEXT", nullable: true),
DestinationValue = table.Column<string>(type: "TEXT", nullable: true),
ExcludeFromSource = table.Column<bool>(type: "INTEGER", nullable: false),
MetadataSettingsId = table.Column<int>(type: "INTEGER", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_MetadataFieldMapping", x => x.Id);
table.ForeignKey(
name: "FK_MetadataFieldMapping_MetadataSettings_MetadataSettingsId",
column: x => x.MetadataSettingsId,
principalTable: "MetadataSettings",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateIndex(
name: "IX_MetadataFieldMapping_MetadataSettingsId",
table: "MetadataFieldMapping",
column: "MetadataSettingsId");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "MetadataFieldMapping");
migrationBuilder.DropTable(
name: "MetadataSettings");
migrationBuilder.DropColumn(
name: "AllowMetadataMatching",
table: "Library");
migrationBuilder.DropColumn(
name: "AniListScrobblingEnabled",
table: "AppUserPreferences");
migrationBuilder.DropColumn(
name: "WantToReadSync",
table: "AppUserPreferences");
}
}
}

View file

@ -15,7 +15,7 @@ namespace API.Data.Migrations
protected override void BuildModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder.HasAnnotation("ProductVersion", "9.0.0");
modelBuilder.HasAnnotation("ProductVersion", "9.0.1");
modelBuilder.Entity("API.Entities.AppRole", b =>
{
@ -353,6 +353,11 @@ namespace API.Data.Migrations
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property<bool>("AniListScrobblingEnabled")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER")
.HasDefaultValue(true);
b.Property<int>("AppUserId")
.HasColumnType("INTEGER");
@ -460,6 +465,11 @@ namespace API.Data.Migrations
b.Property<int?>("ThemeId")
.HasColumnType("INTEGER");
b.Property<bool>("WantToReadSync")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER")
.HasDefaultValue(true);
b.HasKey("Id");
b.HasIndex("AppUserId")
@ -1093,12 +1103,37 @@ namespace API.Data.Migrations
b.ToTable("Genre");
});
modelBuilder.Entity("API.Entities.History.ManualMigrationHistory", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property<string>("Name")
.HasColumnType("TEXT");
b.Property<string>("ProductVersion")
.HasColumnType("TEXT");
b.Property<DateTime>("RanAt")
.HasColumnType("TEXT");
b.HasKey("Id");
b.ToTable("ManualMigrationHistory");
});
modelBuilder.Entity("API.Entities.Library", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property<bool>("AllowMetadataMatching")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER")
.HasDefaultValue(true);
b.Property<bool>("AllowScrobbling")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER")
@ -1247,26 +1282,6 @@ namespace API.Data.Migrations
b.ToTable("MangaFile");
});
modelBuilder.Entity("API.Entities.ManualMigrationHistory", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property<string>("Name")
.HasColumnType("TEXT");
b.Property<string>("ProductVersion")
.HasColumnType("TEXT");
b.Property<DateTime>("RanAt")
.HasColumnType("TEXT");
b.HasKey("Id");
b.ToTable("ManualMigrationHistory");
});
modelBuilder.Entity("API.Entities.MediaError", b =>
{
b.Property<int>("Id")
@ -1594,6 +1609,92 @@ namespace API.Data.Migrations
b.ToTable("SeriesRelation");
});
modelBuilder.Entity("API.Entities.MetadataFieldMapping", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property<int>("DestinationType")
.HasColumnType("INTEGER");
b.Property<string>("DestinationValue")
.HasColumnType("TEXT");
b.Property<bool>("ExcludeFromSource")
.HasColumnType("INTEGER");
b.Property<int>("MetadataSettingsId")
.HasColumnType("INTEGER");
b.Property<int>("SourceType")
.HasColumnType("INTEGER");
b.Property<string>("SourceValue")
.HasColumnType("TEXT");
b.HasKey("Id");
b.HasIndex("MetadataSettingsId");
b.ToTable("MetadataFieldMapping");
});
modelBuilder.Entity("API.Entities.MetadataSettings", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property<string>("AgeRatingMappings")
.HasColumnType("TEXT");
b.Property<string>("Blacklist")
.HasColumnType("TEXT");
b.Property<bool>("EnableGenres")
.HasColumnType("INTEGER");
b.Property<bool>("EnableLocalizedName")
.HasColumnType("INTEGER");
b.Property<bool>("EnablePeople")
.HasColumnType("INTEGER");
b.Property<bool>("EnablePublicationStatus")
.HasColumnType("INTEGER");
b.Property<bool>("EnableRelationships")
.HasColumnType("INTEGER");
b.Property<bool>("EnableStartDate")
.HasColumnType("INTEGER");
b.Property<bool>("EnableSummary")
.HasColumnType("INTEGER");
b.Property<bool>("EnableTags")
.HasColumnType("INTEGER");
b.Property<bool>("Enabled")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER")
.HasDefaultValue(true);
b.Property<bool>("FirstLastPeopleNaming")
.HasColumnType("INTEGER");
b.PrimitiveCollection<string>("PersonRoles")
.HasColumnType("TEXT");
b.PrimitiveCollection<string>("Whitelist")
.HasColumnType("TEXT");
b.HasKey("Id");
b.ToTable("MetadataSettings");
});
modelBuilder.Entity("API.Entities.Person", b =>
{
b.Property<int>("Id")
@ -2824,6 +2925,17 @@ namespace API.Data.Migrations
b.Navigation("TargetSeries");
});
modelBuilder.Entity("API.Entities.MetadataFieldMapping", b =>
{
b.HasOne("API.Entities.MetadataSettings", "MetadataSettings")
.WithMany("FieldMappings")
.HasForeignKey("MetadataSettingsId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("MetadataSettings");
});
modelBuilder.Entity("API.Entities.ReadingList", b =>
{
b.HasOne("API.Entities.AppUser", "AppUser")
@ -3223,6 +3335,11 @@ namespace API.Data.Migrations
b.Navigation("People");
});
modelBuilder.Entity("API.Entities.MetadataSettings", b =>
{
b.Navigation("FieldMappings");
});
modelBuilder.Entity("API.Entities.Person", b =>
{
b.Navigation("ChapterPeople");