diff --git a/Kyoo/Models/DatabaseMigrations/Internal/20200623000428_Initial.Designer.cs b/Kyoo/Models/DatabaseMigrations/Internal/20200623233713_Initial.Designer.cs similarity index 99% rename from Kyoo/Models/DatabaseMigrations/Internal/20200623000428_Initial.Designer.cs rename to Kyoo/Models/DatabaseMigrations/Internal/20200623233713_Initial.Designer.cs index 1467c44e..a8f29bf5 100644 --- a/Kyoo/Models/DatabaseMigrations/Internal/20200623000428_Initial.Designer.cs +++ b/Kyoo/Models/DatabaseMigrations/Internal/20200623233713_Initial.Designer.cs @@ -10,7 +10,7 @@ using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; namespace Kyoo.Models.DatabaseMigrations.Internal { [DbContext(typeof(DatabaseContext))] - [Migration("20200623000428_Initial")] + [Migration("20200623233713_Initial")] partial class Initial { protected override void BuildTargetModel(ModelBuilder modelBuilder) @@ -432,6 +432,9 @@ namespace Kyoo.Models.DatabaseMigrations.Internal b.HasKey("ID"); + b.HasIndex("Slug") + .IsUnique(); + b.HasIndex("StudioID"); b.ToTable("Shows"); diff --git a/Kyoo/Models/DatabaseMigrations/Internal/20200623000428_Initial.cs b/Kyoo/Models/DatabaseMigrations/Internal/20200623233713_Initial.cs similarity index 99% rename from Kyoo/Models/DatabaseMigrations/Internal/20200623000428_Initial.cs rename to Kyoo/Models/DatabaseMigrations/Internal/20200623233713_Initial.cs index 9151e80b..4bdd56d9 100644 --- a/Kyoo/Models/DatabaseMigrations/Internal/20200623000428_Initial.cs +++ b/Kyoo/Models/DatabaseMigrations/Internal/20200623233713_Initial.cs @@ -523,6 +523,12 @@ namespace Kyoo.Models.DatabaseMigrations.Internal columns: new[] { "ShowID", "SeasonNumber" }, unique: true); + migrationBuilder.CreateIndex( + name: "IX_Shows_Slug", + table: "Shows", + column: "Slug", + unique: true); + migrationBuilder.CreateIndex( name: "IX_Shows_StudioID", table: "Shows", diff --git a/Kyoo/Models/DatabaseMigrations/Internal/DatabaseContextModelSnapshot.cs b/Kyoo/Models/DatabaseMigrations/Internal/DatabaseContextModelSnapshot.cs index d71bb43d..2479152f 100644 --- a/Kyoo/Models/DatabaseMigrations/Internal/DatabaseContextModelSnapshot.cs +++ b/Kyoo/Models/DatabaseMigrations/Internal/DatabaseContextModelSnapshot.cs @@ -430,6 +430,9 @@ namespace Kyoo.Models.DatabaseMigrations.Internal b.HasKey("ID"); + b.HasIndex("Slug") + .IsUnique(); + b.HasIndex("StudioID"); b.ToTable("Shows"); diff --git a/Kyoo/Tasks/Crawler.cs b/Kyoo/Tasks/Crawler.cs index 91747974..4b2a8f46 100644 --- a/Kyoo/Tasks/Crawler.cs +++ b/Kyoo/Tasks/Crawler.cs @@ -150,6 +150,12 @@ namespace Kyoo.Controllers Regex regex = new Regex(patern, RegexOptions.IgnoreCase); Match match = regex.Match(relativePath); + if (!match.Success) + { + await Console.Error.WriteLineAsync($"The episode at {path} does not match the episode's regex."); + return; + } + string showPath = Path.GetDirectoryName(path); string collectionName = match.Groups["Collection"]?.Value; string showName = match.Groups["Show"].Value;