MCPcopy Create free account
hub / github.com/MaaXYZ/MaaFramework / check_task

Method check_task

source/MaaPiCli/Impl/Parser.cpp:226–267  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

224}
225
226bool Parser::check_task(const InterfaceData& data, Configuration::Task& config_task)
227{
228 auto data_iter = std::ranges::find(data.task, config_task.name, std::mem_fn(&InterfaceData::Task::name));
229 if (data_iter == data.task.end()) {
230 LogWarn << "Task not found" << VAR(config_task.name);
231 return false;
232 }
233
234 for (auto& config_option : config_task.option) {
235 auto option_iter = data.option.find(config_option.name);
236 if (option_iter == data.option.end()) {
237 LogWarn << "Option not found" << VAR(config_task.name) << VAR(config_option.name);
238 return false;
239 }
240
241 const InterfaceData::Option& data_option = option_iter->second;
242
243 switch (data_option.type) {
244 case InterfaceData::Option::Type::Select:
245 case InterfaceData::Option::Type::Switch: {
246 auto case_iter = std::ranges::find(data_option.cases, config_option.value, std::mem_fn(&InterfaceData::Option::Case::name));
247 if (case_iter == data_option.cases.end()) {
248 LogWarn << "Case not found" << VAR(config_task.name) << VAR(config_option.name) << VAR(config_option.value);
249 return false;
250 }
251 } break;
252 case InterfaceData::Option::Type::Checkbox: {
253 for (const auto& val : config_option.values) {
254 auto case_iter = std::ranges::find(data_option.cases, val, std::mem_fn(&InterfaceData::Option::Case::name));
255 if (case_iter == data_option.cases.end()) {
256 LogWarn << "Checkbox case not found" << VAR(config_task.name) << VAR(config_option.name) << VAR(val);
257 return false;
258 }
259 }
260 } break;
261 case InterfaceData::Option::Type::Input:
262 break;
263 }
264 }
265
266 return true;
267}
268
269MAA_PROJECT_INTERFACE_NS_END

Callers

nothing calls this directly

Calls 1

findMethod · 0.45

Tested by

no test coverage detected