Releases: Sid-1996/ocr-trigger-clicker
Releases · Sid-1996/ocr-trigger-clicker
Release list
v0.0.4
v0.0.4 更新內容
🎯 一般使用者更新摘要
新增「提示訊息」步驟
可在規則中插入一則彈出提示,適合用來標示流程階段或提醒使用者手動操作,不影響規則繼續執行。
圖片比對可以比顏色了
原本模板比對只看形狀(灰階),現在可以勾選「比對顏色」,讓比對更嚴格、減少誤判。顏色容忍值也調高了,一般使用更不容易誤殺。
群組只跑一次
新增群組預設只執行一輪就停,不再無限循環,更符合直覺。需要重複執行可自行改回循環模式。
錯誤容忍更穩定
修正了「偵測失敗後等待期間可能誤觸發點擊」的問題,流程控制更可靠。
🔧 技術細節
✨ 新功能
- notify 步驟類型:可在流程中顯示提示訊息,不影響規則執行流程
- match_image 比對顏色選項:新增
match_color參數,模板比對後可再以顏色做第二階段篩選,減少誤判
🔧 修正
- fail_duration_sec 容忍期邏輯修復(commit 4cb403c):原本等待期間回傳
continue會讓_run_rule誤判為步驟已通過,導致後續動作(如 click)在容忍期內被誤觸發;修正為回傳stop,本幀提前結束、下幀從步驟 0 重試 - _NotificationStack:改用 label 手動定位取代 QVBoxLayout,解決多則訊息互相覆蓋問題
- 任務匯入白名單:補上
notify類型,防止含提示訊息的規則被拒 - 圖片比對按鈕:改讀 widget 即時值,不再依賴 save(),避免測試時使用過期資料
- dry_run 測試按鈕:補上傳遞
match_color參數 - CompareStepForm:補上
fail_duration_sec與roi_coord遺失問題
🚀 改善
- 群組預設執行模式:
loop→once,新建群組預設只執行一輪,更符合多數使用情境 - color_tolerance 預設值:40 → 100,降低顏色篩選的誤殺率
- 移除 production debug print,減少終端機雜訊
- 更新 ARCHITECTURE.md、README.md 與 index.html 文件
v0.0.3
v0.0.3 Beta
⚠️ 仍在 Beta 階段,API 與設定檔格式可能隨版本更新調整。
修復
- EXE 啟動 crash:log 路徑改用 %%APPDATA%%\ocr-trigger-clicker\logs\,並自動建立目錄,不再因暫存目錄不存在而無法啟動。
- _recv_line 通訊協定偏移:AHK 回覆合併封包時因無 residual buffer 導致後續指令永遠超時(1.5% 機率),新增 per-connection 緩衝區徹底解決。
- 「測試比對」按鈕:截圖時未隱藏主視窗,若 GUI 與目標視窗重疊則永遠無法命中,修正為比照「▶ 測試」先隱藏再截圖。
- .gitignore images/ 路徑過寬:根目錄 images/ 與 docs/images/ 都被忽略,修正為只忽略根目錄層。
新增
- 圖示模板比對(match_image):以圖找圖,支援多尺度搜尋與 NMS 篩選。步驟編輯器內含「測試比對」一鍵驗證是否命中。
- on_fail 異常流程控制:步驟失敗時可選擇停止規則、按鍵、跳躍步驟、跳躍群組、系統通知。
- 步驟層級 fail_duration_sec:容許短暫失敗持續時間,超過才觸發 on_fail,避免因單幀瞬閃誤動作。
- 壓力測試套件:socket 協定(6200 指令)、loader 並發(20 執行緒 × 10000 輪)、OCR 並發(burst/sustained/reinit)、MainLoop 效能剖析。
變更
- 打包腳本補上遺漏的 core/11_template_matching.py 與 gui/14_capture_region.py(_loader 動態載入,PyInstaller 無法追蹤)。
- docs/index.html 更新為 v0.0.3、新增 match_image 說明與 gui2 截圖。
已知問題
- 前景保護啟用後若目標視窗被其他視窗遮擋,僅暫停點擊,OCR 仍會繼續執行。
- 若系統無 DirectX 12 GPU,OCR 會退回 CPU 模式(速度約 5–15 FPS,依 ROI 大小而定)。
v0.0.2
重大更新
🧩 步驟系統(Step System)
規則全面改為統一步驟架構,廢除舊有觸發規則/比較規則分類。
- 每條規則由有序步驟陣列組成:
detect → click → key → wait → wait_rule → collect_rounds → jump - 舊版 JSON 自動遷移,v0.0.1 任務不遺失
- 步驟列表支援拖曳排序(⠿ 把手)、點擊展開編輯、即時摘要
🔍 比對模式三選一
模糊比對 checkbox → 下拉選單三選一(預設近似比對):
- contains — 包含關鍵字
- exact — 完全符合
- fuzzy — 近似比對(可調門檻)
🎯 觸發模式選擇
建立規則時彈窗選擇:
- once — 只觸發一次(多輪比較用)
- repeat — 循環觸發(預設)
🛡️ 規則引擎健壯性
- 跳轉循環偵測(A→B→A 自動攔截)
- 待觸發佇列上限 200 + 每 50 週期 orphan 清理
- Runaway 規則 30 秒後自動恢復
- 規則鎖保護(_process_rules / check_runaway_rule)
- 刪除規則前列出依賴規則,刪除後自動清理殘留參照
- 儲存延遲合併(500ms debounce)+ 關閉前 flush
- JSON 載入失敗降級為 warning,不再崩潰
🧹 移除熱鍵
全面移除所有熱鍵(F8/F9/F10/F12),包含 QShortcut 與 RegisterHotKey 兩套實作。所有操作回歸 GUI 按鈕。
🔒 前景保護固定化
移除前景保護開關 checkbox,前景檢查改為固定強制行為。非前景時靜默等待,不再搶奪焦點。
🐛 Bug 修復
- rapidocr_onnxruntime.version 缺失導致引擎崩潰
- iteration % 1 日誌洪水(每幀輸出)→ 改為每 30 幀
- _handle_wait 使用 time.sleep() 阻塞緊急停止 → 改為 stop_event.wait()
- save_rules 直接覆蓋 JSON → 改為原子寫入(暫存檔 + rename)
- OCR 計時每次都 print stdout → 改為 _DEBUG_OCR_TIMING 開關
- fallback 截圖函數名稱不一致(capture_window_full vs capture_window_content)
- debug panel BGR→RGB 轉換缺失
- 刪除 wait_rule 步驟後規則樹縮排不更新
📦 依賴與打包
- 新增 requirements.txt(僅 6 個執行期依賴)
- build.py:hidden-imports 從 11→6→11 項、excludes 從 16→58 項
- 排除 ~120 個未使用套件(torch、pandas、matplotlib 等)
- 新增 .gitignore 規則(logs/、*.spec、dist/、build/)
📚 文件更新
- README.md:反映移除熱鍵、步驟系統、比對模式、安全機制
- ARCHITECTURE.md:安全機制表更新(移除 F12、前景 always-on)
- diagnostic-report.md:8 項診斷問題標記為 ✅ 已修正
- step-system-refactor.md:頂部標記 ✅ 實作完成
v0.0.1
v0.0.1 更新內容
🎯 一般使用者更新摘要
截圖可以點擊放大了
在偵測區域截圖上點擊,會跳出 lightbox 放大檢視,方便確認 OCR 辨識結果。
首次啟動更友善
新增新手教學導流與首次啟動提示,降低入門門檻。介紹頁改為暗色主題,長時間使用更舒適。
OCR 更穩定
修正了 OCR 連續失敗後計數不會重置的問題,避免需要重開工具才能恢復。
網站 SEO 強化
官網加入結構化資料與 FAQ,搜尋引擎更容易找到相關說明。
🔧 技術細節
新增
修正
- OCR 失敗計數重置(commit d48718c)
改善
- SEO 全面優化 — 結構化資料、meta、FAQ(commit de6e2ad)
- 介紹頁改為暗色主題(commit 44111b0)
- 新手教學導流與首次啟動提示(commit fc2707a、3ab8ed2)