diff --git a/API/Program.cs b/API/Program.cs index 07c3b9e..ff3537c 100644 --- a/API/Program.cs +++ b/API/Program.cs @@ -4,7 +4,6 @@ using API; using API.Schema; using API.Schema.Jobs; using API.Schema.MangaConnectors; -using API.Schema.NotificationConnectors; using Asp.Versioning; using Asp.Versioning.Builder; using Asp.Versioning.Conventions; @@ -59,14 +58,15 @@ builder.Services.AddSwaggerGen(opt => }); builder.Services.ConfigureOptions(); - builder.Services.AddDbContext(options => - options.UseNpgsql($"Host={Environment.GetEnvironmentVariable("POSTGRES_Host")??"localhost:5432"}; " + + options.UseNpgsql($"Host={Environment.GetEnvironmentVariable("POSTGRES_HOST")??"localhost:5432"}; " + $"Database={Environment.GetEnvironmentVariable("POSTGRES_DB")??"postgres"}; " + $"Username={Environment.GetEnvironmentVariable("POSTGRES_USER")??"postgres"}; " + $"Password={Environment.GetEnvironmentVariable("POSTGRES_PASSWORD")??"postgres"}")); -builder.Services.AddControllers(); +builder.Services.AddControllers().AddNewtonsoftJson(); + +builder.WebHost.UseUrls("http://*:6531"); var app = builder.Build(); @@ -91,6 +91,12 @@ app.UseSwaggerUI(options => app.UseHttpsRedirection(); +using (var scope = app.Services.CreateScope()) +{ + var db = scope.ServiceProvider.GetRequiredService(); + db.Database.Migrate(); +} + using (var scope = app.Services.CreateScope()) { PgsqlContext context = scope.ServiceProvider.GetService()!; @@ -109,7 +115,7 @@ using (var scope = app.Services.CreateScope()) new ManhuaPlus(), new Weebcentral() ]; - MangaConnector[] newConnectors = context.MangaConnectors.Where(c => !connectors.Contains(c)).ToArray(); + MangaConnector[] newConnectors = connectors.Where(c => !context.MangaConnectors.Contains(c)).ToArray(); context.MangaConnectors.AddRange(newConnectors); context.Jobs.RemoveRange(context.Jobs.Where(j => j.state == JobState.Completed && j.RecurrenceMs < 1)); @@ -119,7 +125,6 @@ using (var scope = app.Services.CreateScope()) context.SaveChanges(); - string TRANGA = "\n\n _______ \n|_ _|.----..---.-..-----..-----..---.-.\n | | | _|| _ || || _ || _ |\n |___| |__| |___._||__|__||___ ||___._|\n |_____| \n\n"; ILog Log = LogManager.GetLogger("Tranga"); BasicConfigurator.Configure(); diff --git a/API/Schema/MangaConnectors/MangaConnector.cs b/API/Schema/MangaConnectors/MangaConnector.cs index 29c0d4d..5384fbf 100644 --- a/API/Schema/MangaConnectors/MangaConnector.cs +++ b/API/Schema/MangaConnectors/MangaConnector.cs @@ -14,6 +14,7 @@ public abstract class MangaConnector(string name, string[] supportedLanguages, s public string[] SupportedLanguages { get; init; } = supportedLanguages; public string[] BaseUris { get; init; } = baseUris; + [JsonIgnore] [ForeignKey("MangaIds")] public virtual Manga[] Mangas { get; internal set; } = []; diff --git a/API/Schema/PgsqlContext.cs b/API/Schema/PgsqlContext.cs index 9289e1c..6c7db2f 100644 --- a/API/Schema/PgsqlContext.cs +++ b/API/Schema/PgsqlContext.cs @@ -22,6 +22,19 @@ public class PgsqlContext(DbContextOptions options) : DbContext(op protected override void OnModelCreating(ModelBuilder modelBuilder) { + modelBuilder.Entity() + .HasDiscriminator(c => c.Name) + .HasValue("AsuraToon") + .HasValue("Bato") + .HasValue("MangaHere") + .HasValue("MangaKatana") + .HasValue("Manga4Life") + .HasValue("Manganato") + .HasValue("Mangasee") + .HasValue("Mangaworld") + .HasValue("ManhuaPlus") + .HasValue("Weebcentral") + .HasValue("MangaDex"); modelBuilder.Entity() .HasDiscriminator(l => l.LibraryType) .HasValue(LibraryType.Komga)