diff --git a/LICENSE.txt b/LICENSE.txt
index 5bbdcba..301b08e 100755
--- a/LICENSE.txt
+++ b/LICENSE.txt
@@ -1,4 +1,3 @@
-
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
diff --git a/src/Core/Database.cs b/src/Core/Database.cs
index 1939b47..c1dddfa 100755
--- a/src/Core/Database.cs
+++ b/src/Core/Database.cs
@@ -6,14 +6,12 @@ namespace OCES.Resonance.Core;
public static class Database
{
- static readonly string DefaultConnectionString = "Data Source=default.rdb;Version=3;";
-
///
/// 获取数据库连接
///
/// 数据库名称(不含扩展名)
/// 数据库连接
- public static IDbConnection GetConnection(string dbName = "default")
+ static IDbConnection GetConnection(string dbName = "default")
{
string connectionString = $"Data Source={dbName}.rdb;Version=3;";
return new SQLiteConnection(connectionString);
@@ -27,91 +25,95 @@ public static class Database
using var connection = GetConnection();
connection.Open();
- const string sql = @"
- CREATE TABLE IF NOT EXISTS audio_files (
- id INTEGER PRIMARY KEY AUTOINCREMENT,
- unique_id TEXT NOT NULL UNIQUE,
- short_id TEXT,
- md5 TEXT NOT NULL,
- path TEXT NOT NULL,
- filename TEXT NOT NULL,
- folder TEXT NOT NULL,
- directory TEXT NOT NULL,
- duration REAL NOT NULL,
- total_samples REAL NOT NULL,
- bit_depth INTEGER NOT NULL,
- channels INTEGER NOT NULL,
- sample_rate REAL NOT NULL,
- type TEXT NOT NULL,
- date_added TEXT NOT NULL,
- original_modification_date TEXT NOT NULL,
- origination_time TEXT NOT NULL,
-
- bpm REAL,
- frame_rate TEXT,
- timecode INTEGER,
- description TEXT,
- category TEXT,
- subcategory TEXT,
- cat_id TEXT,
- category_full TEXT,
- genre TEXT,
- style TEXT,
- mood TEXT,
- keywords TEXT,
- rating INTEGER,
- artist TEXT,
- composer TEXT,
- designer TEXT,
- recordist TEXT,
- publisher TEXT,
- manufacturer TEXT,
- originator TEXT,
- originator_ref TEXT,
- project_name TEXT,
- library TEXT,
- cd_title TEXT,
- track_title TEXT,
- episode TEXT,
- scene TEXT,
- take TEXT,
- tape TEXT,
- cue_number INTEGER,
- sync_point INTEGER,
- release_date TEXT,
- track_year INTEGER,
- is_edited INTEGER,
- is_split INTEGER,
- location TEXT,
- [group] TEXT,
- markers TEXT,
- comments TEXT,
- notes TEXT,
- copyright TEXT,
- coding_history TEXT,
- microphone TEXT,
- mic_perspective TEXT,
- user1 TEXT,
- user2 TEXT,
- user3 TEXT,
- user4 TEXT,
- user5 TEXT,
- user6 TEXT,
- user7 TEXT,
- user8 TEXT,
- fx_name TEXT,
- channel_layout TEXT,
- bwf_umid BLOB,
- disk_number INTEGER,
- track_number INTEGER,
- artwork BLOB,
- waveform BLOB,
+ const string sql = """
- INDEX idx_md5 (md5),
- INDEX idx_path (path),
- INDEX idx_unique_id (unique_id)
- );
- ";
+ CREATE TABLE IF NOT EXISTS audio_files (
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
+ unique_id TEXT NOT NULL UNIQUE,
+ short_id TEXT,
+ md5 TEXT NOT NULL,
+ path TEXT NOT NULL,
+ filename TEXT NOT NULL,
+ folder TEXT NOT NULL,
+ directory TEXT NOT NULL,
+ duration REAL NOT NULL,
+ total_samples REAL NOT NULL,
+ bit_depth INTEGER NOT NULL,
+ channels INTEGER NOT NULL,
+ sample_rate REAL NOT NULL,
+ type TEXT NOT NULL,
+ date_added TEXT NOT NULL,
+ original_modification_date TEXT NOT NULL,
+ origination_time TEXT NOT NULL,
+
+ bpm REAL,
+ frame_rate TEXT,
+ timecode INTEGER,
+ description TEXT,
+ category TEXT,
+ subcategory TEXT,
+ cat_id TEXT,
+ category_full TEXT,
+ genre TEXT,
+ style TEXT,
+ mood TEXT,
+ keywords TEXT,
+ rating INTEGER,
+ artist TEXT,
+ composer TEXT,
+ designer TEXT,
+ recordist TEXT,
+ publisher TEXT,
+ manufacturer TEXT,
+ originator TEXT,
+ originator_ref TEXT,
+ project_name TEXT,
+ library TEXT,
+ cd_title TEXT,
+ track_title TEXT,
+ episode TEXT,
+ scene TEXT,
+ take TEXT,
+ tape TEXT,
+ cue_number INTEGER,
+ sync_point INTEGER,
+ release_date TEXT,
+ track_year INTEGER,
+ is_edited INTEGER,
+ is_split INTEGER,
+ location TEXT,
+ [group] TEXT,
+ markers TEXT,
+ comments TEXT,
+ notes TEXT,
+ copyright TEXT,
+ coding_history TEXT,
+ microphone TEXT,
+ mic_perspective TEXT,
+ user1 TEXT,
+ user2 TEXT,
+ user3 TEXT,
+ user4 TEXT,
+ user5 TEXT,
+ user6 TEXT,
+ user7 TEXT,
+ user8 TEXT,
+ fx_name TEXT,
+ channel_layout TEXT,
+ bwf_umid BLOB,
+ disk_number INTEGER,
+ track_number INTEGER,
+ artwork BLOB,
+ waveform BLOB
+ );
+
+ CREATE INDEX idx_file_name on audio_files(filename);
+ CREATE INDEX idx_md5 on audio_files(md5);
+ CREATE INDEX idx_path on audio_files(path);
+ CREATE INDEX idx_unique_id on audio_files(unique_id);
+ CREATE INDEX idx_description on audio_files(description);
+
+ """;
connection.Execute(sql);
}
diff --git a/src/Resonance.sln.DotSettings b/src/Resonance.sln.DotSettings
index 0bf801c..327ee6f 100755
--- a/src/Resonance.sln.DotSettings
+++ b/src/Resonance.sln.DotSettings
@@ -1,2 +1,3 @@
- True
\ No newline at end of file
+ True
+ True
\ No newline at end of file
diff --git a/src/Resonance.sln.DotSettings.user b/src/Resonance.sln.DotSettings.user
index 140ef8e..77ecf44 100755
--- a/src/Resonance.sln.DotSettings.user
+++ b/src/Resonance.sln.DotSettings.user
@@ -3,6 +3,7 @@
ForceIncluded
<AssemblyExplorer>
<Assembly Path="/Users/oliver/.nuget/packages/fluentassertions/8.9.0/lib/net6.0/FluentAssertions.dll" />
+ <Assembly Path="/Users/oliver/.nuget/packages/dapper/2.1.72/lib/net10.0/Dapper.dll" />
</AssemblyExplorer>
24F92458-FB39-44BE-A32F-41275183AF1B
33ff99d8-b1ad-4ed5-a4fd-376b97c2c841
diff --git a/src/default.rdb b/src/default.rdb
new file mode 100644
index 0000000..fd05f15
Binary files /dev/null and b/src/default.rdb differ