Skip to content

Commit 193b47f

Browse files
committed
README // Add notices regarding the raw data to import.
1 parent 6796690 commit 193b47f

2 files changed

Lines changed: 56 additions & 2 deletions

File tree

README.md

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ Swift: [![Swift](https://github.com/vChewing/KeyKeyUserDBKit/actions/workflows/c
44

55
Yahoo! 奇摩輸入法 (KeyKey) 使用者資料庫解密 Swift Package。
66

7+
請務必詳讀下文「使用前注意」章節。
8+
79
> **💻 C# 版**: `WinNT/` 目錄下含有 .NET 實作版本,詳見其自身的 [README.md](WinNT/README.md)
810
>
911
> C#: [![.NET](https://github.com/vChewing/KeyKeyUserDBKit/actions/workflows/ci.yml/badge.svg)](https://github.com/vChewing/KeyKeyUserDBKit/actions/workflows/ci.yml) [![NuGet](https://img.shields.io/nuget/v/vChewing.Utils.KeyKeyUserDBKit)](https://www.nuget.org/packages/vChewing.Utils.KeyKeyUserDBKit) [![License: LGPL v3](https://img.shields.io/badge/License-LGPL%20v3-blue.svg)](https://www.gnu.org/licenses/lgpl-3.0)
@@ -28,6 +30,31 @@ Yahoo! 奇摩輸入法 (KeyKey) 使用者資料庫解密 Swift Package。
2830
- 📖 讀取使用者詞彙資料(單元圖 (Unigram)、雙元圖 (Bigram)、候選字覆蓋)
2931
- 🔄 支援 `Sequence``AsyncSequence` 迭代
3032

33+
## 使用前注意
34+
35+
奇摩輸入法的使用者片語辭典格式有兩種:`文殊文字檔(MJSR Text)` 以及 `SmartMandarinUserData.db`
36+
37+
這裡闡述一些注意事項。
38+
39+
> ☠️不遵守的話,本工具恐無法完整讀取檔案。雖然不會損毀原始檔案就是了。
40+
41+
### 1. `文殊文字檔(MJSR Text)` 注意事項:
42+
43+
使用奇摩輸入法自身的辭典編輯器匯出的文字檔案會是 `文殊文字檔(Manjusri Text)` 格式(下文簡稱 MJSR 資料)。請務必注意該格式不要被擅自編輯:
44+
45+
- 如果第一行有被修改過或遺失的話,則整篇檔案都會被拒絕讀入。
46+
- 如果檔案末尾的 `<database></database>` XML 章節遺失的話,您將無法復原「雙元圖快取」與「候選字覆蓋」這兩類資料。
47+
- 至於 Unigram 則都是以明文形式存儲在 MJSR 資料內的。
48+
49+
### 2. `SmartMandarinUserData.db` 存取時的注意事項(WinNT 與 macOS 須知):
50+
51+
該資料檔案是經過 CEROD 加密的 SQLite 檔案、且被奇摩輸入法實時存取。
52+
53+
- 讀取資料時,奇摩輸入法本體必須不得正在運行於系統當中。不然的話,本工具恐無法完整讀取所有的資料、甚至直接無法讀取任何資料。
54+
- 如果輸入法已經運行的話,請務必手動結束輸入法的 Process(處理程序,進程)、且不得使用暴力手段強行終止。
55+
- **這是為了給輸入法充足的時間來寫入 SQLite 日誌內容**
56+
- 對此感到棘手者,請在系統輸入法清單內暫時移除奇摩輸入法、然後重新開機、再讀取 `SmartMandarinUserData.db` 檔案。
57+
3158
## 專案結構
3259

3360
```
@@ -118,7 +145,7 @@ for gram in allGrams {
118145

119146
// 或分別讀取各類型資料
120147
let unigrams = try db.fetchUnigrams() // 單元圖
121-
let bigrams = try db.fetchBigrams() // 雙元圖
148+
let bigrams = try db.fetchBigrams() // 雙元圖快取
122149
let bigrams5 = try db.fetchBigrams(limit: 5) // 限制筆數
123150
let overrides = try db.fetchCandidateOverrides() // 候選字覆蓋
124151

WinNT/README.md

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66

77
這是 KeyKeyUserDBKit Swift Package 的 .NET 10 移植版本,可用於 Windows & Linux & macOS 等所有受 .NET 10 支援的平台系統版本。
88

9+
請務必詳讀下文「使用前注意」章節。
10+
911
## 目的
1012

1113
奇摩輸入法在 2012 年停止開發,最終官方支援的 macOS 系統版本是 macOS 10.8 Mountain Lion。從 macOS 10.9 Mavericks 開始,該輸入法原廠的片語編輯器徹底罷工。雖然官方釋出的最終原始碼(僅限 Yahoo 奇摩被允許授權公開的部分,不包含 SQLite CEROD)小修小補之後仍舊可以將片語編輯器重新建置,但因為 CEROD 原始碼的缺失、導致輸入法本體無法建置成「可以無縫讀取既有使用者片語資料」的樣子。
@@ -26,6 +28,31 @@
2628
- 📖 讀取使用者詞彙資料(單元圖、雙元圖、候選字覆蓋)
2729
- 🔄 支援 `IEnumerable<Gram>``IAsyncEnumerable<Gram>` 迭代
2830

31+
## 使用前注意
32+
33+
奇摩輸入法的使用者片語辭典格式有兩種:`文殊文字檔(MJSR Text)` 以及 `SmartMandarinUserData.db`
34+
35+
這裡闡述一些注意事項。
36+
37+
> ☠️不遵守的話,本工具恐無法完整讀取檔案。雖然不會損毀原始檔案就是了。
38+
39+
### 1. `文殊文字檔(MJSR Text)` 注意事項:
40+
41+
使用奇摩輸入法自身的辭典編輯器匯出的文字檔案會是 `文殊文字檔(Manjusri Text)` 格式(下文簡稱 MJSR 資料)。請務必注意該格式不要被擅自編輯:
42+
43+
- 如果第一行有被修改過或遺失的話,則整篇檔案都會被拒絕讀入。
44+
- 如果檔案末尾的 `<database></database>` XML 章節遺失的話,您將無法復原「雙元圖快取」與「候選字覆蓋」這兩類資料。
45+
- 至於 Unigram 則都是以明文形式存儲在 MJSR 資料內的。
46+
47+
### 2. `SmartMandarinUserData.db` 存取時的注意事項(WinNT 與 macOS 須知):
48+
49+
該資料檔案是經過 CEROD 加密的 SQLite 檔案、且被奇摩輸入法實時存取。
50+
51+
- 讀取資料時,奇摩輸入法本體必須不得正在運行於系統當中。不然的話,本工具恐無法完整讀取所有的資料、甚至直接無法讀取任何資料。
52+
- 如果輸入法已經運行的話,請務必手動結束輸入法的 Process(處理程序,進程)、且不得使用暴力手段強行終止。
53+
- **這是為了給輸入法充足的時間來寫入 SQLite 日誌內容**
54+
- 對此感到棘手者,請在系統輸入法清單內暫時移除奇摩輸入法、然後重新開機、再讀取 `SmartMandarinUserData.db` 檔案。
55+
2956
## 專案結構
3057

3158
```
@@ -104,7 +131,7 @@ foreach (var gram in allGrams)
104131

105132
// 或分別讀取各類型資料
106133
var unigrams = db.FetchUnigrams(); // 單元圖
107-
var bigrams = db.FetchBigrams(); // 雙元圖
134+
var bigrams = db.FetchBigrams(); // 雙元圖快取
108135
var bigrams5 = db.FetchBigrams(5); // 限制筆數
109136
var overrides = db.FetchCandidateOverrides(); // 候選字覆蓋
110137

0 commit comments

Comments
 (0)