diff --git a/resource/config.json b/resource/config.json index db35a64c86..73b54109ca 100644 --- a/resource/config.json +++ b/resource/config.json @@ -32,6 +32,7 @@ "penguinReport": { "Doc": "企鹅物流汇报: https://penguin-stats.cn/", "url": "https://penguin-stats.io/PenguinStats/api/v2/report", + "url_Doc": "企鹅的汇报用的同一个url,就不区分recruit和drop了", "timeout": 10000, "headers": { "Content-Type": "application/json" @@ -39,7 +40,8 @@ }, "yituliuReport": { "Doc": "一图流汇报:https://yituliu.site/maarecruitdata", - "url": "https://backend.yituliu.site/maa/upload/recruit", + "recruitUrl": "https://backend.yituliu.site/maa/upload/recruit", + "dropUrl": "https://backend.yituliu.site/maa/upload/drop", "timeout": 5000, "headers": { "Content-Type": "application/json" diff --git a/src/MaaCore/Config/GeneralConfig.cpp b/src/MaaCore/Config/GeneralConfig.cpp index 4a1018db8b..01b9478166 100644 --- a/src/MaaCore/Config/GeneralConfig.cpp +++ b/src/MaaCore/Config/GeneralConfig.cpp @@ -42,7 +42,8 @@ bool asst::GeneralConfig::parse(const json::value& json) } } if (auto yituliu_opt = options_json.find("yituliuReport")) { - m_options.yituliu_report.url = yituliu_opt->get("url", std::string()); + m_options.yituliu_report.drop_url = yituliu_opt->get("dropUrl", std::string()); + m_options.yituliu_report.recruit_url = yituliu_opt->get("recruitUrl", 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(); diff --git a/src/MaaCore/Config/GeneralConfig.h b/src/MaaCore/Config/GeneralConfig.h index dbfab61e03..3a30239546 100644 --- a/src/MaaCore/Config/GeneralConfig.h +++ b/src/MaaCore/Config/GeneralConfig.h @@ -14,6 +14,8 @@ namespace asst struct RequestInfo { std::string url; // 上传地址 + std::string drop_url; + std::string recruit_url; std::unordered_map headers; // 请求头 int timeout = 0; // 超时时间 }; diff --git a/src/MaaCore/Task/Fight/StageDropsTaskPlugin.cpp b/src/MaaCore/Task/Fight/StageDropsTaskPlugin.cpp index 8ceb9e705e..b38f761bd6 100644 --- a/src/MaaCore/Task/Fight/StageDropsTaskPlugin.cpp +++ b/src/MaaCore/Task/Fight/StageDropsTaskPlugin.cpp @@ -420,7 +420,7 @@ void asst::StageDropsTaskPlugin::upload_to_yituliu() m_report_yituliu_task_ptr = std::make_shared(report_penguin_callback, this); } - m_report_yituliu_task_ptr->set_report_type(ReportType::YituliuBigData) + m_report_yituliu_task_ptr->set_report_type(ReportType::YituliuBigDataStageDrops) .set_body(body.to_string()) .set_extra_headers(extra_headers) .set_retry_times(5) diff --git a/src/MaaCore/Task/Miscellaneous/AutoRecruitTask.cpp b/src/MaaCore/Task/Miscellaneous/AutoRecruitTask.cpp index 7562fab4ed..b108753711 100644 --- a/src/MaaCore/Task/Miscellaneous/AutoRecruitTask.cpp +++ b/src/MaaCore/Task/Miscellaneous/AutoRecruitTask.cpp @@ -787,7 +787,7 @@ void asst::AutoRecruitTask::upload_to_yituliu(const json::value& details) m_report_yituliu_task_ptr = std::make_shared(report_yituliu_callback, this); } - m_report_yituliu_task_ptr->set_report_type(ReportType::YituliuBigData) + m_report_yituliu_task_ptr->set_report_type(ReportType::YituliuBigDataAutoRecruit) .set_body(body.to_string()) .set_retry_times(0) .run(); diff --git a/src/MaaCore/Task/ReportDataTask.cpp b/src/MaaCore/Task/ReportDataTask.cpp index d1527d4766..8632ee5ac4 100644 --- a/src/MaaCore/Task/ReportDataTask.cpp +++ b/src/MaaCore/Task/ReportDataTask.cpp @@ -45,8 +45,9 @@ bool asst::ReportDataTask::_run() case ReportType::PenguinStats: report_func = std::bind(&ReportDataTask::report_to_penguin, this); break; - case ReportType::YituliuBigData: - report_func = std::bind(&ReportDataTask::report_to_yituliu, this); + case ReportType::YituliuBigDataAutoRecruit: + case ReportType::YituliuBigDataStageDrops: + report_func = std::bind(&ReportDataTask::report_to_yituliu, this, m_report_type); break; default: return false; @@ -149,13 +150,23 @@ void asst::ReportDataTask::report_to_penguin() } } -void asst::ReportDataTask::report_to_yituliu() +void asst::ReportDataTask::report_to_yituliu(ReportType reportType) { LogTraceFunction; - constexpr std::string_view YituliuSubtaskName = "ReportToYituliu"; - const std::string& url = Config.get_options().yituliu_report.url; - int timeout = Config.get_options().yituliu_report.timeout; + constexpr std::string_view yituliu_subtask_name = "ReportToYituliu"; + const std::string* url_ptr = nullptr; + switch (reportType) { + case ReportType::YituliuBigDataAutoRecruit: + url_ptr = &Config.get_options().yituliu_report.recruit_url; + break; + case ReportType::YituliuBigDataStageDrops: + url_ptr = &Config.get_options().yituliu_report.drop_url; + break; + default: + return; + } + const int timeout = Config.get_options().yituliu_report.timeout; cpr::Header headers = {}; for (const auto& [header_key, value] : Config.get_options().yituliu_report.headers) { @@ -166,7 +177,7 @@ void asst::ReportDataTask::report_to_yituliu() headers.emplace(field); } - report(YituliuSubtaskName, url, headers, timeout); + report(yituliu_subtask_name, *url_ptr, headers, timeout); } cpr::Response asst::ReportDataTask::report(std::string_view subtask, const std::string& url, const cpr::Header& headers, diff --git a/src/MaaCore/Task/ReportDataTask.h b/src/MaaCore/Task/ReportDataTask.h index 6d49e55887..4d564bcade 100644 --- a/src/MaaCore/Task/ReportDataTask.h +++ b/src/MaaCore/Task/ReportDataTask.h @@ -14,7 +14,8 @@ namespace asst { Invalid, PenguinStats, - YituliuBigData, + YituliuBigDataAutoRecruit, + YituliuBigDataStageDrops, }; using TaskCallback = std::function; @@ -40,7 +41,7 @@ namespace asst virtual void callback(AsstMsg msg, const json::value& detail) override; void report_to_penguin(); - void report_to_yituliu(); + void report_to_yituliu(ReportType reportType); cpr::Response report( std::string_view subtask, const std::string& url, const cpr::Header& headers, const int timeout, HttpResponsePred success_cond = [](const cpr::Response& response) -> bool {