From ad68e046f189990de2a4202aeb8e5d8f77cd368c Mon Sep 17 00:00:00 2001 From: MistEO Date: Wed, 15 Dec 2021 00:18:29 +0800 Subject: [PATCH] =?UTF-8?q?feat.OcrReplace=E6=94=AF=E6=8C=81=E6=AD=A3?= =?UTF-8?q?=E5=88=99=E6=9B=BF=E6=8D=A2=EF=BC=8C=E4=BC=98=E5=8C=96=E5=85=AC?= =?UTF-8?q?=E6=8B=9B=E8=AF=86=E5=88=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/tasks.json | 7 ++++++- src/MeoAssistant/OcrImageAnalyzer.cpp | 7 ++++--- src/MeoAssistant/ProcessTaskImageAnalyzer.cpp | 6 ++++-- src/MeoAssistant/RecruitImageAnalyzer.cpp | 8 ++++---- 4 files changed, 18 insertions(+), 10 deletions(-) diff --git a/resource/tasks.json b/resource/tasks.json index b721d9cfb5..7700c1628c 100644 --- a/resource/tasks.json +++ b/resource/tasks.json @@ -1089,7 +1089,12 @@ 480, 120 ], - "ocrReplace": [] + "ocrReplace": [ + [ + ".+击干员", + "狙击干员" + ] + ] }, "RecruitRefresh": { "action": "clickSelf", diff --git a/src/MeoAssistant/OcrImageAnalyzer.cpp b/src/MeoAssistant/OcrImageAnalyzer.cpp index d8489d0bfc..dde277210a 100644 --- a/src/MeoAssistant/OcrImageAnalyzer.cpp +++ b/src/MeoAssistant/OcrImageAnalyzer.cpp @@ -1,6 +1,7 @@ #include "OcrImageAnalyzer.h" -#include "AsstUtils.hpp" +#include + #include "Logger.hpp" #include "Resource.h" @@ -12,8 +13,8 @@ bool asst::OcrImageAnalyzer::analyze() if (!m_replace.empty()) { TextRectProc text_replace = [&](TextRect& tr) -> bool { - for (const auto& [old_str, new_str] : m_replace) { - tr.text = utils::string_replace_all(tr.text, old_str, new_str); + for (const auto& [regex, new_str] : m_replace) { + tr.text = std::regex_replace(tr.text, std::regex(regex), new_str); } return true; }; diff --git a/src/MeoAssistant/ProcessTaskImageAnalyzer.cpp b/src/MeoAssistant/ProcessTaskImageAnalyzer.cpp index 51d8e2ac0a..312d40becc 100644 --- a/src/MeoAssistant/ProcessTaskImageAnalyzer.cpp +++ b/src/MeoAssistant/ProcessTaskImageAnalyzer.cpp @@ -1,5 +1,7 @@ #include "ProcessTaskImageAnalyzer.h" +#include + #include "AsstUtils.hpp" #include "Logger.hpp" #include "MatchImageAnalyzer.h" @@ -39,8 +41,8 @@ bool asst::ProcessTaskImageAnalyzer::ocr_analyze(std::shared_ptr task_ // 先尝试从缓存的结果里找 for (const TextRect& tr : m_ocr_cache) { TextRect temp = tr; - for (const auto& [old_str, new_str] : ocr_task_ptr->replace_map) { - temp.text = utils::string_replace_all(temp.text, old_str, new_str); + for (const auto& [regex, new_str] : ocr_task_ptr->replace_map) { + temp.text = std::regex_replace(temp.text, std::regex(regex), new_str); } for (const auto& text : ocr_task_ptr->text) { bool flag = false; diff --git a/src/MeoAssistant/RecruitImageAnalyzer.cpp b/src/MeoAssistant/RecruitImageAnalyzer.cpp index 4d862029d9..f7d5129505 100644 --- a/src/MeoAssistant/RecruitImageAnalyzer.cpp +++ b/src/MeoAssistant/RecruitImageAnalyzer.cpp @@ -9,10 +9,10 @@ bool asst::RecruitImageAnalyzer::analyze() m_tags_result.clear(); m_set_time_rect.clear(); - bool ret = time_analyze(); - ret |= tags_analyze(); - ret |= confirm_analyze(); - ret |= refresh_analyze(); + time_analyze(); + refresh_analyze(); + bool ret = tags_analyze(); + ret &= confirm_analyze(); return ret; }