diff --git a/Package.swift b/Package.swift index cb31e0f..12d707a 100644 --- a/Package.swift +++ b/Package.swift @@ -10,7 +10,7 @@ let package = Package( .executable(name: "VoiceMemo", targets: ["VoiceMemo"]) ], dependencies: [ - .package(url: "https://github.com/aliyun/alibabacloud-oss-swift-sdk-v2.git", from: "0.1.0-beta"), + .package(url: "https://github.com/aliyun/alibabacloud-oss-swift-sdk-v2.git", from: "0.2.0"), .package(url: "https://github.com/stephencelis/SQLite.swift.git", from: "0.14.1"), .package(url: "https://github.com/vapor/mysql-kit.git", from: "4.0.0") ], diff --git a/README.md b/README.md index 08b54cf..293c730 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # VoiceMemo

- +

A professional, high-fidelity audio recording utility for macOS, designed to capture real-time voice conversations from any application using the native **ScreenCaptureKit** and **AVFoundation** frameworks. @@ -20,6 +20,20 @@ Read this in Chinese: [README_CN.md](README_CN.md) - **Storage Backends (SQLite/MySQL)**: Store history locally or in MySQL, with optional local-to-MySQL sync. - **Email Notifications**: Send meeting summaries directly to your email via a configured gateway. +## Screenshots + +
+ Home View +

+ Recording View +

+ Pipeline View +

+ Result View +

+ Settings View +
+ ## Changelog See [CHANGELOG.md](CHANGELOG.md) for full release history. diff --git a/README_CN.md b/README_CN.md index 702ccde..a38286c 100644 --- a/README_CN.md +++ b/README_CN.md @@ -1,7 +1,7 @@ # VoiceMemo

- +

一款专业、高保真的 macOS 音频录制工具,用于捕获任何应用程序的实时语音通话。基于 macOS 原生的 **ScreenCaptureKit** 和 **AVFoundation** 框架构建。 @@ -20,6 +20,20 @@ English version: [README.md](README.md) - **存储(SQLite/MySQL)**:历史记录可保存到本地或 MySQL,并支持本地同步到 MySQL。 - **邮件通知**:支持通过配置网关将会议纪要直接发送到指定邮箱。 +## 界面预览 + +
+ 主界面 +

+ 录音界面 +

+ 流水线界面 +

+ 结果界面 +

+ 设置界面 +
+ ## 更新日志 请参阅 [CHANGELOG.md](CHANGELOG.md) 查看完整的发布历史。 diff --git a/logo.png b/assets/logo.png similarity index 100% rename from logo.png rename to assets/logo.png diff --git a/assets/screenshot-01-home.png b/assets/screenshot-01-home.png new file mode 100644 index 0000000..e7c298c Binary files /dev/null and b/assets/screenshot-01-home.png differ diff --git a/assets/screenshot-02-recording.png b/assets/screenshot-02-recording.png new file mode 100644 index 0000000..4747cdf Binary files /dev/null and b/assets/screenshot-02-recording.png differ diff --git a/assets/screenshot-03-pipeline.png b/assets/screenshot-03-pipeline.png new file mode 100644 index 0000000..d89a7f4 Binary files /dev/null and b/assets/screenshot-03-pipeline.png differ diff --git a/assets/screenshot-04-result.png b/assets/screenshot-04-result.png new file mode 100644 index 0000000..fa1d016 Binary files /dev/null and b/assets/screenshot-04-result.png differ diff --git a/assets/screenshot-05-settings.png b/assets/screenshot-05-settings.png new file mode 100644 index 0000000..6278b3e Binary files /dev/null and b/assets/screenshot-05-settings.png differ diff --git a/generate_project.py b/generate_project.py index 3aeb708..cfc3db0 100644 --- a/generate_project.py +++ b/generate_project.py @@ -9,7 +9,7 @@ RESOURCES_DIR = "Sources/VoiceMemo/Resources" DEPENDENCIES = [ - ("https://github.com/aliyun/alibabacloud-oss-swift-sdk-v2.git", "0.1.0-beta", "AlibabaCloudOSS"), + ("https://github.com/aliyun/alibabacloud-oss-swift-sdk-v2.git", "0.2.0", "AlibabaCloudOSS"), ("https://github.com/stephencelis/SQLite.swift.git", "0.14.1", "SQLite"), ("https://github.com/vapor/mysql-kit.git", "4.0.0", "MySQLKit") ] @@ -36,12 +36,15 @@ def gen_id(key): pkg_refs = [] pkg_deps = [] +pkg_build_files = [] for url, version, product in DEPENDENCIES: ref_id = gen_id(f"pkgref:{url}") dep_id = gen_id(f"pkgdep:{product}") + build_file_id = gen_id(f"pkgbuild:{product}") pkg_refs.append((ref_id, url, version)) pkg_deps.append((dep_id, ref_id, product)) + pkg_build_files.append((build_file_id, dep_id, product)) source_files = [] resource_files = [] @@ -76,7 +79,10 @@ def resource_file_type(path): return "image.jpeg" return "file" -frameworks_files = "" +frameworks_files = "\n".join( + f'\t\t\t\t{build_file_id} /* {product} in Frameworks */,' + for build_file_id, dep_id, product in pkg_build_files +) resources_files = "\n".join( f'\t\t\t\t{b_id} /* {name} in Resources */,' for f_id, b_id, name, path in resource_files @@ -104,6 +110,9 @@ def resource_file_type(path): for f_id, b_id, name, path in resource_files: content += f'\t\t{b_id} /* {name} in Resources */ = {{isa = PBXBuildFile; fileRef = {f_id} /* {name} */; }};\n' +for build_file_id, dep_id, product in pkg_build_files: + content += f'\t\t{build_file_id} /* {product} in Frameworks */ = {{isa = PBXBuildFile; productRef = {dep_id} /* {product} */; }};\n' + content += """/* End PBXBuildFile section */ /* Begin PBXFileReference section */