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