diff --git a/FreeTubeSync.sln b/FreeTubeSync.sln index 1e234e7..29c73d0 100644 --- a/FreeTubeSync.sln +++ b/FreeTubeSync.sln @@ -7,7 +7,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution compose.yaml = compose.yaml Dockerfile = Dockerfile README.md = README.md - data\FreeTubeSync.db = data\FreeTubeSync.db EndProjectSection EndProject Global diff --git a/FreeTubeSync.sln.DotSettings.user b/FreeTubeSync.sln.DotSettings.user index ead3520..6675bb5 100644 --- a/FreeTubeSync.sln.DotSettings.user +++ b/FreeTubeSync.sln.DotSettings.user @@ -1,6 +1,3 @@  ForceIncluded - ForceIncluded - ForceIncluded - ForceIncluded - ForceIncluded \ No newline at end of file + ForceIncluded \ No newline at end of file diff --git a/FreeTubeSync/Database/MapData.cs b/FreeTubeSync/Database/MapData.cs index ef8b010..f6dc079 100644 --- a/FreeTubeSync/Database/MapData.cs +++ b/FreeTubeSync/Database/MapData.cs @@ -4,7 +4,7 @@ namespace FreeTubeSync.Database; public static class MapData { - public static void MapFrom(this object obj2, object obj1) + public static void MapFrom(this object obj1, object obj2) { var props = new Dictionary(); var t1Type = obj1.GetType(); @@ -18,12 +18,8 @@ public static class MapData properties = t2Type.GetProperties(); foreach (var property in properties) { - if (props.ContainsKey(property.Name)) - { - var value = props[property.Name]; - if (value is string || value is not IEnumerable) - property.SetValue(obj2, value); - } + if (props[property.Name] is not IEnumerable) + property.SetValue(obj2, props[property.Name]); } } diff --git a/FreeTubeSync/Migrations/20250724061008_ChangeSettingToJsonElement.Designer.cs b/FreeTubeSync/Migrations/20250724061008_ChangeSettingToJsonElement.Designer.cs deleted file mode 100644 index 418a0d5..0000000 --- a/FreeTubeSync/Migrations/20250724061008_ChangeSettingToJsonElement.Designer.cs +++ /dev/null @@ -1,246 +0,0 @@ -// -using System.Text.Json; -using FreeTubeSync.Database; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; - -#nullable disable - -namespace FreeTubeSync.Migrations -{ - [DbContext(typeof(DataContext))] - [Migration("20250724061008_ChangeSettingToJsonElement")] - partial class ChangeSettingToJsonElement - { - /// - protected override void BuildTargetModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder.HasAnnotation("ProductVersion", "9.0.7"); - - modelBuilder.Entity("FreeTubeSync.Model.Database.History", b => - { - b.Property("_id") - .HasColumnType("TEXT"); - - b.Property("author") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("authorId") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("description") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("isLive") - .HasColumnType("INTEGER"); - - b.Property("lastViewedPlaylistItemId") - .HasColumnType("TEXT"); - - b.Property("lastViewedPlaylistType") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("lengthSeconds") - .HasColumnType("INTEGER"); - - b.Property("published") - .HasColumnType("INTEGER"); - - b.Property("timeWatched") - .HasColumnType("INTEGER"); - - b.Property("title") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("type") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("videoId") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("viewCount") - .HasColumnType("INTEGER"); - - b.Property("watchProgress") - .HasColumnType("REAL"); - - b.HasKey("_id"); - - b.ToTable("Histories"); - }); - - modelBuilder.Entity("FreeTubeSync.Model.Database.Playlist", b => - { - b.Property("_id") - .HasColumnType("TEXT"); - - b.Property("createdAt") - .HasColumnType("INTEGER"); - - b.Property("lastUpdatedAt") - .HasColumnType("INTEGER"); - - b.Property("playlistName") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("protected") - .HasColumnType("INTEGER"); - - b.HasKey("_id"); - - b.ToTable("Playlists"); - }); - - modelBuilder.Entity("FreeTubeSync.Model.Database.Profile", b => - { - b.Property("_id") - .HasColumnType("TEXT"); - - b.Property("bgColor") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("name") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("textColor") - .IsRequired() - .HasColumnType("TEXT"); - - b.HasKey("_id"); - - b.ToTable("Profiles"); - }); - - modelBuilder.Entity("FreeTubeSync.Model.Database.SearchHistory", b => - { - b.Property("_id") - .HasColumnType("TEXT"); - - b.Property("lastUpdatedAt") - .HasColumnType("INTEGER"); - - b.HasKey("_id"); - - b.ToTable("SearchHistories"); - }); - - modelBuilder.Entity("FreeTubeSync.Model.Database.Setting", b => - { - b.Property("_id") - .HasColumnType("TEXT"); - - b.Property("value") - .HasColumnType("TEXT"); - - b.HasKey("_id"); - - b.ToTable("Settings"); - }); - - modelBuilder.Entity("FreeTubeSync.Model.Database.Subscription", b => - { - b.Property("id") - .HasColumnType("TEXT"); - - b.Property("Profile_id") - .HasColumnType("TEXT"); - - b.Property("name") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("thumbnail") - .HasColumnType("TEXT"); - - b.HasKey("id"); - - b.HasIndex("Profile_id"); - - b.ToTable("Subscriptions"); - }); - - modelBuilder.Entity("FreeTubeSync.Model.Database.Video", b => - { - b.Property("playlistItemId") - .HasColumnType("TEXT"); - - b.Property("Playlist_id") - .HasColumnType("TEXT"); - - b.Property("author") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("authorId") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("lengthSeconds") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("pubished") - .HasColumnType("INTEGER"); - - b.Property("timeAdded") - .HasColumnType("INTEGER"); - - b.Property("title") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("type") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("videoId") - .IsRequired() - .HasColumnType("TEXT"); - - b.HasKey("playlistItemId"); - - b.HasIndex("Playlist_id"); - - b.ToTable("Videos"); - }); - - modelBuilder.Entity("FreeTubeSync.Model.Database.Subscription", b => - { - b.HasOne("FreeTubeSync.Model.Database.Profile", null) - .WithMany("subscriptions") - .HasForeignKey("Profile_id"); - }); - - modelBuilder.Entity("FreeTubeSync.Model.Database.Video", b => - { - b.HasOne("FreeTubeSync.Model.Database.Playlist", null) - .WithMany("videos") - .HasForeignKey("Playlist_id"); - }); - - modelBuilder.Entity("FreeTubeSync.Model.Database.Playlist", b => - { - b.Navigation("videos"); - }); - - modelBuilder.Entity("FreeTubeSync.Model.Database.Profile", b => - { - b.Navigation("subscriptions"); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/FreeTubeSync/Migrations/20250724061008_ChangeSettingToJsonElement.cs b/FreeTubeSync/Migrations/20250724061008_ChangeSettingToJsonElement.cs deleted file mode 100644 index 7a033a2..0000000 --- a/FreeTubeSync/Migrations/20250724061008_ChangeSettingToJsonElement.cs +++ /dev/null @@ -1,22 +0,0 @@ -using Microsoft.EntityFrameworkCore.Migrations; - -#nullable disable - -namespace FreeTubeSync.Migrations -{ - /// - public partial class ChangeSettingToJsonElement : Migration - { - /// - protected override void Up(MigrationBuilder migrationBuilder) - { - - } - - /// - protected override void Down(MigrationBuilder migrationBuilder) - { - - } - } -} diff --git a/FreeTubeSync/Migrations/20250724074916_FinalizeSettingStringValue.Designer.cs b/FreeTubeSync/Migrations/20250724074916_FinalizeSettingStringValue.Designer.cs deleted file mode 100644 index 4e70266..0000000 --- a/FreeTubeSync/Migrations/20250724074916_FinalizeSettingStringValue.Designer.cs +++ /dev/null @@ -1,246 +0,0 @@ -// -using FreeTubeSync.Database; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; - -#nullable disable - -namespace FreeTubeSync.Migrations -{ - [DbContext(typeof(DataContext))] - [Migration("20250724074916_FinalizeSettingStringValue")] - partial class FinalizeSettingStringValue - { - /// - protected override void BuildTargetModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder.HasAnnotation("ProductVersion", "9.0.7"); - - modelBuilder.Entity("FreeTubeSync.Model.Database.History", b => - { - b.Property("_id") - .HasColumnType("TEXT"); - - b.Property("author") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("authorId") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("description") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("isLive") - .HasColumnType("INTEGER"); - - b.Property("lastViewedPlaylistItemId") - .HasColumnType("TEXT"); - - b.Property("lastViewedPlaylistType") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("lengthSeconds") - .HasColumnType("INTEGER"); - - b.Property("published") - .HasColumnType("INTEGER"); - - b.Property("timeWatched") - .HasColumnType("INTEGER"); - - b.Property("title") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("type") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("videoId") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("viewCount") - .HasColumnType("INTEGER"); - - b.Property("watchProgress") - .HasColumnType("REAL"); - - b.HasKey("_id"); - - b.ToTable("Histories"); - }); - - modelBuilder.Entity("FreeTubeSync.Model.Database.Playlist", b => - { - b.Property("_id") - .HasColumnType("TEXT"); - - b.Property("createdAt") - .HasColumnType("INTEGER"); - - b.Property("lastUpdatedAt") - .HasColumnType("INTEGER"); - - b.Property("playlistName") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("protected") - .HasColumnType("INTEGER"); - - b.HasKey("_id"); - - b.ToTable("Playlists"); - }); - - modelBuilder.Entity("FreeTubeSync.Model.Database.Profile", b => - { - b.Property("_id") - .HasColumnType("TEXT"); - - b.Property("bgColor") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("name") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("textColor") - .IsRequired() - .HasColumnType("TEXT"); - - b.HasKey("_id"); - - b.ToTable("Profiles"); - }); - - modelBuilder.Entity("FreeTubeSync.Model.Database.SearchHistory", b => - { - b.Property("_id") - .HasColumnType("TEXT"); - - b.Property("lastUpdatedAt") - .HasColumnType("INTEGER"); - - b.HasKey("_id"); - - b.ToTable("SearchHistories"); - }); - - modelBuilder.Entity("FreeTubeSync.Model.Database.Setting", b => - { - b.Property("_id") - .HasColumnType("TEXT"); - - b.Property("value") - .IsRequired() - .HasColumnType("TEXT"); - - b.HasKey("_id"); - - b.ToTable("Settings"); - }); - - modelBuilder.Entity("FreeTubeSync.Model.Database.Subscription", b => - { - b.Property("id") - .HasColumnType("TEXT"); - - b.Property("Profile_id") - .HasColumnType("TEXT"); - - b.Property("name") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("thumbnail") - .HasColumnType("TEXT"); - - b.HasKey("id"); - - b.HasIndex("Profile_id"); - - b.ToTable("Subscriptions"); - }); - - modelBuilder.Entity("FreeTubeSync.Model.Database.Video", b => - { - b.Property("playlistItemId") - .HasColumnType("TEXT"); - - b.Property("Playlist_id") - .HasColumnType("TEXT"); - - b.Property("author") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("authorId") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("lengthSeconds") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("pubished") - .HasColumnType("INTEGER"); - - b.Property("timeAdded") - .HasColumnType("INTEGER"); - - b.Property("title") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("type") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("videoId") - .IsRequired() - .HasColumnType("TEXT"); - - b.HasKey("playlistItemId"); - - b.HasIndex("Playlist_id"); - - b.ToTable("Videos"); - }); - - modelBuilder.Entity("FreeTubeSync.Model.Database.Subscription", b => - { - b.HasOne("FreeTubeSync.Model.Database.Profile", null) - .WithMany("subscriptions") - .HasForeignKey("Profile_id"); - }); - - modelBuilder.Entity("FreeTubeSync.Model.Database.Video", b => - { - b.HasOne("FreeTubeSync.Model.Database.Playlist", null) - .WithMany("videos") - .HasForeignKey("Playlist_id"); - }); - - modelBuilder.Entity("FreeTubeSync.Model.Database.Playlist", b => - { - b.Navigation("videos"); - }); - - modelBuilder.Entity("FreeTubeSync.Model.Database.Profile", b => - { - b.Navigation("subscriptions"); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/FreeTubeSync/Migrations/20250724074916_FinalizeSettingStringValue.cs b/FreeTubeSync/Migrations/20250724074916_FinalizeSettingStringValue.cs deleted file mode 100644 index 307c6e6..0000000 --- a/FreeTubeSync/Migrations/20250724074916_FinalizeSettingStringValue.cs +++ /dev/null @@ -1,22 +0,0 @@ -using Microsoft.EntityFrameworkCore.Migrations; - -#nullable disable - -namespace FreeTubeSync.Migrations -{ - /// - public partial class FinalizeSettingStringValue : Migration - { - /// - protected override void Up(MigrationBuilder migrationBuilder) - { - - } - - /// - protected override void Down(MigrationBuilder migrationBuilder) - { - - } - } -} diff --git a/FreeTubeSync/Model/Json/SettingJson.cs b/FreeTubeSync/Model/Json/SettingJson.cs index a9d8f9a..2971293 100644 --- a/FreeTubeSync/Model/Json/SettingJson.cs +++ b/FreeTubeSync/Model/Json/SettingJson.cs @@ -6,5 +6,5 @@ namespace FreeTubeSync.Model.Json; public class SettingJson { public string _id { get; set; } = string.Empty; - public string value { get; set; } + public object value { get; set; } } \ No newline at end of file