Initial commit: 台銀即期賣出匯率換算工具
This commit is contained in:
80
README.md
Normal file
80
README.md
Normal file
@@ -0,0 +1,80 @@
|
||||
# 台銀即期賣出匯率換算工具
|
||||
|
||||
一個跨平台的小工具,抓取台灣銀行官方 USD / JPY / EUR 即期賣出匯率,並提供即時台幣換算功能。
|
||||
|
||||
## 特色
|
||||
|
||||
- **即時匯率**:從台銀官網 CSV(`rate.bot.com.tw/xrt/flcsv/0/day`)抓取,免 API key
|
||||
- **雙向換算**:每個幣別獨立輸入框,輸入外幣金額立即換算出台幣
|
||||
- **一鍵複製**:按「複製」即把純數字(如 `3162.00`)寫入剪貼簿,可直接貼到 Excel
|
||||
- **零依賴**:單一執行檔,使用者不需要安裝 Python、Rust 或任何 runtime
|
||||
- **跨平台**:Windows 與 macOS 共用同一份 Rust 原始碼
|
||||
|
||||
## 檔案結構
|
||||
|
||||
```
|
||||
02/
|
||||
├── bot_rates.exe # Windows 執行檔(5.4 MB)
|
||||
├── bot_rates.zip # Windows 執行檔的 zip 壓縮(2.7 MB,方便傳送)
|
||||
├── BotRates.app/ # macOS 應用程式 bundle
|
||||
│ └── Contents/
|
||||
│ ├── Info.plist
|
||||
│ └── MacOS/BotRates # macOS 執行檔(5.2 MB)
|
||||
├── bot_rates_rs/ # Rust 原始碼
|
||||
│ ├── Cargo.toml
|
||||
│ ├── .cargo/config.toml # 交叉編譯 linker 設定
|
||||
│ └── src/main.rs
|
||||
├── bot_rates.py # 早期 Python CLI 版(僅列印匯率)
|
||||
├── bot_rates_gui.py # 早期 Python tkinter GUI 版(已被 Rust 版取代)
|
||||
├── build.bat # Python → exe 打包腳本(已不需要)
|
||||
├── README.md
|
||||
├── QUICKSTART.md
|
||||
└── SUMMARY.md
|
||||
```
|
||||
|
||||
## 使用方式
|
||||
|
||||
### 一般使用者
|
||||
|
||||
**Windows**:解壓 `bot_rates.zip`,雙擊 `bot_rates.exe` 即可執行。
|
||||
|
||||
**macOS**:雙擊 `BotRates.app`。首次開啟若跳出「無法驗證開發者」提示,請在「系統設定 → 隱私權與安全性」按「仍要打開」,或執行 `xattr -cr BotRates.app`。
|
||||
|
||||
啟動後:
|
||||
1. 每一列左側顯示幣別和即期賣出匯率
|
||||
2. 中間輸入外幣金額(預設 100)
|
||||
3. 右側自動顯示台幣換算結果
|
||||
4. 按「複製」按鈕即可把換算結果貼到其他軟體
|
||||
5. 左下角顯示最後更新時間,右下角「重新整理」可重新抓匯率
|
||||
|
||||
### 開發者(重新編譯)
|
||||
|
||||
需要 Rust 工具鏈與 mingw-w64(僅 Windows 交叉編譯需要):
|
||||
|
||||
```bash
|
||||
# macOS 版
|
||||
cd bot_rates_rs
|
||||
RUST_MIN_STACK=16777216 cargo build --release
|
||||
# 輸出:target/release/bot_rates
|
||||
|
||||
# Windows 版(從 macOS 交叉編譯)
|
||||
brew install mingw-w64
|
||||
rustup target add x86_64-pc-windows-gnu
|
||||
RUST_MIN_STACK=16777216 cargo build --release --target x86_64-pc-windows-gnu
|
||||
# 輸出:target/x86_64-pc-windows-gnu/release/bot_rates.exe
|
||||
```
|
||||
|
||||
> `RUST_MIN_STACK=16777216` 是為了避免 LLVM 在優化階段堆疊溢位(`eframe` 依賴龐大,optimize pipeline 會大量遞迴)。
|
||||
|
||||
## 技術棧
|
||||
|
||||
| 用途 | 函式庫 |
|
||||
|------|--------|
|
||||
| GUI framework | `eframe` / `egui` 0.27(immediate mode,無系統依賴) |
|
||||
| HTTPS 請求 | `ureq` + `rustls`(純 Rust TLS,不需要 OpenSSL 或 SChannel) |
|
||||
| 中文字型 | 執行期載入系統字型:Windows 的 `msjh.ttc`、macOS 的 `PingFang.ttc` |
|
||||
|
||||
## 資料來源
|
||||
|
||||
- 台灣銀行牌告匯率 CSV:<https://rate.bot.com.tw/xrt/flcsv/0/day>
|
||||
- 欄位索引:`即期賣出` 位於第 14 欄(index 13)
|
||||
Reference in New Issue
Block a user