diff --git a/resource/config.json b/resource/config.json index 0310e1f395..4d41b5c566 100644 --- a/resource/config.json +++ b/resource/config.json @@ -27,26 +27,18 @@ "swipeWithPauseRequiredDistance_Doc": "暂停下干员滑动多远距离后开始按暂停", "penguinReport": { "Doc": "企鹅物流汇报: https://penguin-stats.cn/", - "cmdFormat": "curl -H \"Content-Type: application/json\" -s -S -m 10 -i -d \"[body]\" \"https://penguin-stats.io/PenguinStats/api/v2/report\" --ssl-no-revoke --http1.1 [extra]", - "cmdFormat_Doc": "命令格式,想打印详细信息可以尝试添加 -v -i", - "cprFormat": { - "url": "https://penguin-stats.io/PenguinStats/api/v2/report", - "timeout": 10000, - "headers": { - "Content-Type": "application/json" - } + "url": "https://penguin-stats.io/PenguinStats/api/v2/report", + "timeout": 10000, + "headers": { + "Content-Type": "application/json" } }, "yituliuReport": { "Doc": "一图流汇报:https://yituliu.site/maarecruitdata", - "cmdFormat": "curl -H \"Content-Type: application/json\" -s -S -m 5 -i -d \"[body]\" \"https://houduan.yituliu.site/tool/recruitUpload\" --ssl-no-revoke --http1.1 [extra]", - "cmdFormat_Doc": "命令格式,想打印详细信息可以尝试添加 -v -i", - "cprFormat": { - "url": "https://houduan.yituliu.site/tool/recruitUpload", - "timeout": 5000, - "headers": { - "Content-Type": "application/json" - } + "url": "https://houduan.yituliu.site/tool/recruitUpload", + "timeout": 5000, + "headers": { + "Content-Type": "application/json" } }, "depotExportTemplate": { @@ -143,4 +135,4 @@ "screencapEncode": "[Adb] -s [AdbSerial] exec-out \"screencap -p 2>/tmp/maa-assistant-arknights.log\"" } ] -} \ No newline at end of file +} diff --git a/src/MaaCore/Config/GeneralConfig.cpp b/src/MaaCore/Config/GeneralConfig.cpp index 418fe1a8e6..d1f73cf822 100644 --- a/src/MaaCore/Config/GeneralConfig.cpp +++ b/src/MaaCore/Config/GeneralConfig.cpp @@ -20,24 +20,30 @@ bool asst::GeneralConfig::parse(const json::value& json) m_options.minitouch_extra_swipe_duration = options_json.get("minitouchExtraSwipeDuration", -1); m_options.swipe_with_pause_required_distance = options_json.get("swipeWithPauseRequiredDistance", 50); if (auto order = options_json.find("minitouchProgramsOrder")) { + m_options.minitouch_programs_order.clear(); for (const auto& type : *order) { m_options.minitouch_programs_order.emplace_back(type.as_string()); } } - m_options.penguin_report.cmd_format = options_json.get("penguinReport", "cmdFormat", std::string()); - m_options.penguin_report.cpr_format.url = options_json.get("penguinReport", "cprFormat", "url", std::string()); - m_options.penguin_report.cpr_format.timeout = options_json.get("penguinReport", "cprFormat", "timeout", 10000); - if (auto headers = options_json.at("penguinReport").at("cprFormat").find("headers")) { - for (const auto& [key, value] : *headers) { - m_options.penguin_report.cpr_format.headers.emplace(key, value.as_string()); + + if (auto penguin_opt = options_json.find("penguinReport")) { + m_options.penguin_report.url = penguin_opt->get("url", std::string()); + m_options.penguin_report.timeout = penguin_opt->get("timeout", 10000); + if (auto headers_opt = penguin_opt->find("headers")) { + m_options.penguin_report.headers.clear(); + for (const auto& [key, value] : *headers_opt) { + m_options.penguin_report.headers.emplace(key, value.as_string()); + } } } - m_options.yituliu_report.cmd_format = options_json.get("yituliuReport", "cmdFormat", std::string()); - m_options.yituliu_report.cpr_format.url = options_json.get("yituliuReport", "cprFormat", "url", std::string()); - m_options.yituliu_report.cpr_format.timeout = options_json.get("yituliuReport", "cprFormat", "timeout", 5000); - if (auto headers = options_json.at("yituliuReport").at("cprFormat").find("headers")) { - for (const auto& [key, value] : *headers) { - m_options.yituliu_report.cpr_format.headers.emplace(key, value.as_string()); + if (auto yituliu_opt = options_json.find("yituliuReport")) { + m_options.yituliu_report.url = yituliu_opt->get("url", std::string()); + m_options.yituliu_report.timeout = yituliu_opt->get("timeout", 5000); + if (auto headers_opt = yituliu_opt->find("headers")) { + m_options.yituliu_report.headers.clear(); + for (const auto& [key, value] : *headers_opt) { + m_options.yituliu_report.headers.emplace(key, value.as_string()); + } } } m_options.depot_export_template.ark_planner = diff --git a/src/MaaCore/Config/GeneralConfig.h b/src/MaaCore/Config/GeneralConfig.h index 0da5a1b586..ea833e1224 100644 --- a/src/MaaCore/Config/GeneralConfig.h +++ b/src/MaaCore/Config/GeneralConfig.h @@ -11,15 +11,11 @@ namespace asst { - struct PenguinReportCfg // 企鹅物流数据汇报 的配置 + struct RequestInfo { - std::string cmd_format; // 命令格式 - struct cpr_format - { - std::string url; // 上传地址 - std::unordered_map headers; // 请求头 - int timeout = 0; // 超时时间 - } cpr_format; + std::string url; // 上传地址 + std::unordered_map headers; // 请求头 + int timeout = 0; // 超时时间 }; struct DepotExportTemplate @@ -27,17 +23,6 @@ namespace asst std::string ark_planner; }; - struct yituliuReportCfg // 一图流大数据汇报 的配置 - { - std::string cmd_format; // 命令格式 - struct cpr_format - { - std::string url; // 上传地址 - std::unordered_map headers; // 请求头 - int timeout = 0; // 超时时间 - } cpr_format; - }; - struct Options { int task_delay = 0; // 任务间延时:越快操作越快,但会增加CPU消耗 @@ -56,10 +41,10 @@ namespace asst int minitouch_extra_swipe_duration = -1; int swipe_with_pause_required_distance = 0; std::vector minitouch_programs_order; - PenguinReportCfg penguin_report; // 企鹅物流汇报: + RequestInfo penguin_report; // 企鹅物流汇报: // 每次到结算界面,汇报掉落数据至企鹅物流 https://penguin-stats.cn/ DepotExportTemplate depot_export_template; // 仓库识别结果导出模板 - yituliuReportCfg yituliu_report; // 一图流大数据汇报:目前只有公招功能,https://yituliu.site/maarecruitdata + RequestInfo yituliu_report; // 一图流大数据汇报:目前只有公招功能,https://yituliu.site/maarecruitdata }; struct AdbCfg diff --git a/src/MaaCore/Task/ReportDataTask.cpp b/src/MaaCore/Task/ReportDataTask.cpp index 77ee49d8e6..d1527d4766 100644 --- a/src/MaaCore/Task/ReportDataTask.cpp +++ b/src/MaaCore/Task/ReportDataTask.cpp @@ -100,11 +100,11 @@ void asst::ReportDataTask::report_to_penguin() return false; }; - std::string url = Config.get_options().penguin_report.cpr_format.url; - int timeout = Config.get_options().penguin_report.cpr_format.timeout; + std::string url = Config.get_options().penguin_report.url; + int timeout = Config.get_options().penguin_report.timeout; cpr::Header headers {}; - for (const auto& [header_key, value] : Config.get_options().penguin_report.cpr_format.headers) { + for (const auto& [header_key, value] : Config.get_options().penguin_report.headers) { headers.emplace(header_key, value); } @@ -154,11 +154,11 @@ void asst::ReportDataTask::report_to_yituliu() LogTraceFunction; constexpr std::string_view YituliuSubtaskName = "ReportToYituliu"; - const std::string& url = Config.get_options().yituliu_report.cpr_format.url; - int timeout = Config.get_options().yituliu_report.cpr_format.timeout; + const std::string& url = Config.get_options().yituliu_report.url; + int timeout = Config.get_options().yituliu_report.timeout; cpr::Header headers = {}; - for (const auto& [header_key, value] : Config.get_options().yituliu_report.cpr_format.headers) { + for (const auto& [header_key, value] : Config.get_options().yituliu_report.headers) { headers.emplace(header_key, value); }