diff --git a/src/MeoAssistant/InfrastAbstractTask.cpp b/src/MeoAssistant/InfrastAbstractTask.cpp index 859d56c0a9..5b70dc20f7 100644 --- a/src/MeoAssistant/InfrastAbstractTask.cpp +++ b/src/MeoAssistant/InfrastAbstractTask.cpp @@ -71,6 +71,7 @@ asst::infrast::CustomRoomConfig& asst::InfrastAbstractTask::current_room_config( { static infrast::CustomRoomConfig empty; if (!m_is_custom) { + Log.error(__FUNCTION__, "custom is not enabled"); return empty; } @@ -78,7 +79,7 @@ asst::infrast::CustomRoomConfig& asst::InfrastAbstractTask::current_room_config( return m_custom_config[m_cur_facility_index]; } else { - Log.error("tab size is lager than config size", m_cur_facility_index, m_custom_config.size()); + Log.error(__FUNCTION__, "tab size is lager than config size", m_cur_facility_index, m_custom_config.size()); return empty; } } @@ -160,11 +161,12 @@ bool asst::InfrastAbstractTask::swipe_and_select_custom_opers(bool is_dorm_order { LogTraceFunction; + auto& room_config = current_room_config(); { json::value cb_info = basic_info_with_what("CustomInfrastRoomOperators"); auto& details = cb_info["details"]; - details["names"] = json::array(current_room_config().names); - details["candidates"] = json::array(current_room_config().candidates); + details["names"] = json::array(room_config.names); + details["candidates"] = json::array(room_config.candidates); callback(AsstMsg::SubTaskExtraInfo, cb_info); } @@ -172,9 +174,8 @@ bool asst::InfrastAbstractTask::swipe_and_select_custom_opers(bool is_dorm_order ProcessTask(*this, { "InfrastOperListTabSkillUnClicked", "Stop" }).run(); } - std::vector opers_order = current_room_config().names; - opers_order.insert(opers_order.end(), current_room_config().candidates.cbegin(), - current_room_config().candidates.cend()); + std::vector opers_order = room_config.names; + opers_order.insert(opers_order.end(), room_config.candidates.cbegin(), room_config.candidates.cend()); std::vector pre_partial_result; bool retried = false; @@ -188,8 +189,8 @@ bool asst::InfrastAbstractTask::swipe_and_select_custom_opers(bool is_dorm_order if (!select_custom_opers(partial_result)) { return false; } - if (current_room_config().selected >= max_num_of_opers() || - (current_room_config().names.empty() && current_room_config().candidates.empty())) { + if (room_config.selected >= max_num_of_opers() || + (room_config.names.empty() && room_config.candidates.empty())) { break; } if (partial_result == pre_partial_result) { @@ -225,24 +226,25 @@ bool asst::InfrastAbstractTask::swipe_and_select_custom_opers(bool is_dorm_order ProcessTask(*this, { "InfrastOperListTabWorkStatusUnClicked" }).run(); } - if (current_room_config().sort || current_room_config().autofill) { + if (room_config.sort || room_config.autofill) { swipe_to_the_left_of_operlist(swipe_times / 5 + 1); swipe_times = 0; } // 如果只选了一个人没必要排序 - if (current_room_config().sort && current_room_config().selected > 1) { + if (room_config.sort && room_config.selected > 1) { click_clear_button(); order_opers_selection(opers_order); } - return current_room_config().names.empty(); + return room_config.names.empty(); } bool asst::InfrastAbstractTask::select_custom_opers(std::vector& partial_result) { LogTraceFunction; - if (current_room_config().names.empty() && current_room_config().candidates.empty()) { + auto& room_config = current_room_config(); + if (room_config.names.empty() && room_config.candidates.empty()) { Log.warn("opers_name is empty"); return false; } @@ -269,14 +271,14 @@ bool asst::InfrastAbstractTask::select_custom_opers(std::vector& pa const std::string& name = name_analyzer.get_result().front().text; partial_result.emplace_back(name); - if (auto iter = ranges::find(current_room_config().names, name); iter != current_room_config().names.end()) { - current_room_config().names.erase(iter); + if (auto iter = ranges::find(room_config.names, name); iter != room_config.names.end()) { + room_config.names.erase(iter); } - else if (max_num_of_opers() - current_room_config().selected > - current_room_config().names.size()) { // names中的数量,比剩余的空位多,就可以选备选的 - if (auto candd_iter = ranges::find(current_room_config().candidates, name); - candd_iter != current_room_config().candidates.end()) { - current_room_config().candidates.erase(candd_iter); + else if (max_num_of_opers() - room_config.selected > + room_config.names.size()) { // names中的数量,比剩余的空位多,就可以选备选的 + if (auto candd_iter = ranges::find(room_config.candidates, name); + candd_iter != room_config.candidates.end()) { + room_config.candidates.erase(candd_iter); } else { continue; @@ -288,7 +290,7 @@ bool asst::InfrastAbstractTask::select_custom_opers(std::vector& pa if (!oper.selected) { m_ctrler->click(oper.rect); } - if (++current_room_config().selected >= max_num_of_opers()) { + if (++room_config.selected >= max_num_of_opers()) { break; } }