opt.界面上解耦自动公招与公招识别

This commit is contained in:
MistEO
2021-12-20 23:13:17 +08:00
parent fb8b323335
commit 08b5d92f6d
4 changed files with 101 additions and 51 deletions

View File

@@ -524,7 +524,7 @@ void Assistant::working_proc()
task_callback(AsstMsg::TaskChainCompleted, task_json, this);
}
if (m_tasks_queue.empty()) {
task_callback(AsstMsg::AllTasksCompleted, json::value(), this);
task_callback(AsstMsg::AllTasksCompleted, task_json, this);
}
//clear_cache();

View File

@@ -50,6 +50,7 @@ bool RecruitTask::_run()
}
json::value all_tags_json;
all_tags_json["tags"] = json::array(all_tags_json_vector);
all_tags_json["task_chain"] = m_task_chain;
/* 过滤tags数量不足的情况可能是识别漏了 */
if (all_tags.size() != RecruitConfiger::CorrectNumberOfTags) {
@@ -174,6 +175,7 @@ bool RecruitTask::_run()
json::value results_json;
results_json["result"] = json::array();
results_json["maybe_level"] = m_maybe_level;
results_json["task_chain"] = m_task_chain;
std::vector<json::value> result_json_vector;
for (const auto& comb : result_vec) {
@@ -223,4 +225,4 @@ void RecruitTask::set_param(std::vector<int> select_level, bool set_time) noexce
{
m_select_level = std::move(select_level);
m_set_time = set_time;
}
}

View File

@@ -105,6 +105,10 @@ namespace MeoAsstGui
case AsstMsg.TaskChainStart:
{
string taskChain = detail["task_chain"].ToString();
if (taskChain == "RecruitCalc")
{
break;
}
tvm.AddLog("开始任务:" + taskChain);
}
break;
@@ -138,15 +142,24 @@ namespace MeoAsstGui
case AsstMsg.TaskChainCompleted:
{
string taskChain = detail["task_chain"].ToString();
if (taskChain == "RecruitCalc")
{
break;
}
tvm.AddLog("完成任务:" + taskChain);
}
break;
case AsstMsg.AllTasksCompleted:
{
string taskChain = detail["task_chain"].ToString();
if (taskChain == "RecruitCalc")
{
break;
}
tvm.Idle = true;
tvm.AddLog("任务已全部完成");
new ToastContentBuilder().AddText("任务已全部完成!").Show();
new ToastContentBuilder().AddText("任务已全部完成!").Show();
tvm.CheckAndShutdown();
}
break;
@@ -198,7 +211,18 @@ namespace MeoAsstGui
break;
case AsstMsg.TaskError:
tvm.AddLog("任务出错:" + detail["task_chain"].ToString(), "darkred");
{
string taskChain = detail["task_chain"].ToString();
if (taskChain == "RecruitCalc")
{
var rvm = _container.Get<RecruitViewModel>();
rvm.RecruitInfo = "识别错误!";
}
else
{
tvm.AddLog("任务出错:" + detail["task_chain"].ToString(), "darkred");
}
}
break;
case AsstMsg.InitFaild:
@@ -243,21 +267,28 @@ namespace MeoAsstGui
case AsstMsg.TextDetected:
break;
case AsstMsg.RecruitTagsDetected:
JArray tags = (JArray)detail["tags"];
string log_content = "";
string info_content = "识别结果: ";
foreach (var tag_name in tags)
case AsstMsg.RecruitTagsDetected:
{
string tag_str = tag_name.ToString();
info_content += tag_str + " ";
log_content += tag_str + "\n";
JArray tags = (JArray)detail["tags"];
string log_content = "";
string info_content = "识别结果: ";
foreach (var tag_name in tags)
{
string tag_str = tag_name.ToString();
info_content += tag_str + " ";
log_content += tag_str + "\n";
}
string taskChain = detail["task_chain"].ToString();
if (taskChain == "RecruitCalc")
{
rvm.RecruitInfo = info_content;
}
else
{
log_content = log_content.EndsWith("\n") ? log_content.TrimEnd('\n') : "错误";
tvm.AddLog("公招识别结果:\n" + log_content);
}
}
rvm.RecruitInfo = info_content;
log_content = log_content.EndsWith("\n") ? log_content.TrimEnd('\n') : "错误";
tvm.AddLog("公招识别结果:\n" + log_content);
break;
case AsstMsg.OcrResultError:
@@ -269,34 +300,46 @@ namespace MeoAsstGui
new ToastContentBuilder().AddText("公招提示:" + special).Show();
break;
case AsstMsg.RecruitResult:
string resultContent = "";
JArray result_array = (JArray)detail["result"];
int combs_level = (int)detail["maybe_level"];
foreach (var combs in result_array)
{
int tag_level = (int)combs["tag_level"];
resultContent += tag_level + "星Tags: ";
foreach (var tag in (JArray)combs["tags"])
{
resultContent += tag.ToString() + " ";
}
resultContent += "\n\t";
foreach (var oper in (JArray)combs["opers"])
{
resultContent += oper["level"].ToString() + " - " + oper["name"].ToString() + " ";
}
resultContent += "\n\n";
}
rvm.RecruitResult = resultContent;
if (combs_level >= 5)
case AsstMsg.RecruitResult:
{
new ToastContentBuilder().AddText("公招出 " + combs_level + " 星了哦!").Show();
tvm.AddLog(combs_level + " 星Tags", "darkorange", "Bold");
}
else
{
tvm.AddLog(combs_level + " 星Tags", "darkcyan");
string resultContent = "";
JArray result_array = (JArray)detail["result"];
int combs_level = (int)detail["maybe_level"];
foreach (var combs in result_array)
{
int tag_level = (int)combs["tag_level"];
resultContent += tag_level + "星Tags: ";
foreach (var tag in (JArray)combs["tags"])
{
resultContent += tag.ToString() + " ";
}
resultContent += "\n\t";
foreach (var oper in (JArray)combs["opers"])
{
resultContent += oper["level"].ToString() + " - " + oper["name"].ToString() + " ";
}
resultContent += "\n\n";
}
string taskChain = detail["task_chain"].ToString();
if (taskChain == "RecruitCalc")
{
rvm.RecruitResult = resultContent;
}
if (combs_level >= 5)
{
new ToastContentBuilder().AddText("公招出 " + combs_level + " 星了哦!").Show();
if (taskChain != "RecruitCalc")
{
tvm.AddLog(combs_level + " 星Tags", "darkorange", "Bold");
}
}
else
{
if (taskChain != "RecruitCalc")
{
tvm.AddLog(combs_level + " 星Tags", "darkcyan");
}
}
}
break;

View File

@@ -109,17 +109,22 @@ namespace MeoAsstGui
ViewStatusStorage.Set("Recruit.AutoSetTime", value.ToString());
}
}
private bool _catched = false;
public async void StartCalc()
{
RecruitInfo = "正在捕获模拟器窗口……";
{
var asstProxy = _container.Get<AsstProxy>();
var task = Task.Run(() =>
if (!_catched)
{
return asstProxy.AsstCatch();
});
bool catchd = await task;
if (!catchd)
RecruitInfo = "正在捕获模拟器窗口……";
var task = Task.Run(() =>
{
return asstProxy.AsstCatch();
});
_catched = await task;
}
if (!_catched)
{
RecruitInfo = "捕获模拟器窗口失败,若是第一次运行,请尝试使用管理员权限";
return;