diff --git a/resource/config.json b/resource/config.json index 07513ad00d..44c1daccfa 100644 --- a/resource/config.json +++ b/resource/config.json @@ -1,5 +1,5 @@ { - "version": "0.7", + "version": "0.8", "options": { "connectType": 0, "connectType_Doc": "连接类型:0-连接电脑上的模拟器,1-连接USB连接的安卓设备,2-连接局域网中的安卓设备。默认0", @@ -8,11 +8,11 @@ "taskDelay": 1000, "taskDelay_Doc": "识别的延迟:越快识别频率越快,但会增加CPU消耗。单位毫秒,默认1000", "printWindow": false, - "printWindow_Doc": "截图功能:开启后每次结算界面会截图到screenshot目录下。true-开启,false-关闭,默认true", - "uploadToPenguin": true, - "uploadToPenguin_Doc": "上传企鹅物流https://penguin-stats.cn/:每次到结算界面,是否上传企鹅物流数据统计网站。true-开启,false-关闭,默认true", - "penguinApi": "https://penguin-stats.cn/PenguinStats/api/v2/report", - "penguinApi_Doc": "企鹅物流汇报接口", + "printWindow_Doc": "截图功能:开启后每次结算界面会截图到screenshot目录下。true-开启,false-关闭,默认false", + "penguinReport": true, + "penguinReport_Doc": "企鹅数据汇报:每次到结算界面,是否汇报掉落数据至企鹅数据 https://penguin-stats.cn/。true-开启,false-关闭,默认true", + "penguinReportCmdLine": "curl -H \"Content-Type: application/json\" -d \"[body]\" \"https://penguin-stats.cn/PenguinStats/api/v2/report\"", + "penguinReportCmdLine_Doc": "企鹅数据汇报的命令,想打印详细信息可以尝试添加 -v -i", "controlDelayRange": [ 0, 0 diff --git a/src/MeoAssistance/GeneralConfiger.cpp b/src/MeoAssistance/GeneralConfiger.cpp index 3b25fd3d6c..6ca97e030e 100644 --- a/src/MeoAssistance/GeneralConfiger.cpp +++ b/src/MeoAssistance/GeneralConfiger.cpp @@ -15,9 +15,11 @@ bool asst::GeneralConfiger::parse(const json::value& json) m_options.control_delay_lower = options_json.at("controlDelayRange")[0].as_integer(); m_options.control_delay_upper = options_json.at("controlDelayRange")[1].as_integer(); m_options.print_window = options_json.at("printWindow").as_boolean(); - m_options.upload_to_penguin = options_json.at("uploadToPenguin").as_boolean(); - m_options.penguin_api = options_json.at("penguinApi").as_string(); - m_options.penguin_server = options_json.get("penguinServer", "CN"); + m_options.penguin_report = options_json.at("penguinReport").as_boolean(); + m_options.penguin_report_cmd_line = options_json.at("penguinReportCmdLine").as_string(); + m_options.penguin_report_server = options_json.get("penguinReportServer", "CN"); + + m_options.ocr_gpu_index = options_json.get("ocrGpuIndex", -1); m_options.ocr_thread_number = options_json.at("ocrThreadNumber").as_integer(); } diff --git a/src/MeoAssistance/GeneralConfiger.h b/src/MeoAssistance/GeneralConfiger.h index 8bdd44cbb5..a45e088b70 100644 --- a/src/MeoAssistance/GeneralConfiger.h +++ b/src/MeoAssistance/GeneralConfiger.h @@ -22,9 +22,9 @@ namespace asst { int control_delay_lower = 0; // 点击随机延时下限:每次点击操作会进行随机延时 int control_delay_upper = 0; // 点击随机延时上限:每次点击操作会进行随机延时 bool print_window = false; // 截图功能:开启后每次结算界面会截图到screenshot目录下 - bool upload_to_penguin = false; // 上传企鹅物流:每次到结算界面,是否上传企鹅物流数据统计网站 https://penguin-stats.cn/ - std::string penguin_api; // 企鹅物流汇报接口 - std::string penguin_server; // 企鹅物流汇报接口"server"字段,"CN", "US", "JP" and "KR". + bool penguin_report = false; // 企鹅数据汇报:每次到结算界面,是否汇报掉落数据至企鹅数据 https://penguin-stats.cn/ + std::string penguin_report_cmd_line;// 企鹅数据汇报的命令 + std::string penguin_report_server; // 企鹅数据汇报接口"server"字段,"CN", "US", "JP" and "KR". int ocr_gpu_index = -1; // OcrLite使用GPU编号,-1(使用CPU)/0(使用GPU0)/1(使用GPU1)/... int ocr_thread_number = 0; // OcrLite线程数量 }; diff --git a/src/MeoAssistance/OcrPack.cpp b/src/MeoAssistance/OcrPack.cpp index 7225676bab..587d49c851 100644 --- a/src/MeoAssistance/OcrPack.cpp +++ b/src/MeoAssistance/OcrPack.cpp @@ -30,7 +30,7 @@ bool asst::OcrPack::load(const std::string & dir) void asst::OcrPack::set_param(int gpu_index, int thread_number) { - (void*)gpu_index; // gpu_index是ncnn的参数,onnx架构的没有,预留参数接口 + // gpu_index是ncnn的参数,onnx架构的没有,预留参数接口 m_ocr_ptr->setNumThread(thread_number); } diff --git a/src/MeoAssistance/PenguinPack.cpp b/src/MeoAssistance/PenguinPack.cpp index e868359cbf..dfba956544 100644 --- a/src/MeoAssistance/PenguinPack.cpp +++ b/src/MeoAssistance/PenguinPack.cpp @@ -55,7 +55,7 @@ bool asst::PenguinPack::load_json(const std::string& stage_path, const std::stri std::vector drops_vector; for (const json::value& drop_info : stage_info.at("dropInfos").as_array()) { if (drop_info.exist("itemId")) { - // 幸运掉落,家具啥的,企鹅物流不接,忽略掉 + // 幸运掉落,家具啥的,企鹅数据不接,忽略掉 if (drop_info.at("dropType").as_string() == "FURNITURE") { continue; } diff --git a/src/MeoAssistance/PenguinUploader.cpp b/src/MeoAssistance/PenguinUploader.cpp index 67f75d4293..df6ef0b336 100644 --- a/src/MeoAssistance/PenguinUploader.cpp +++ b/src/MeoAssistance/PenguinUploader.cpp @@ -25,7 +25,8 @@ std::string asst::PenguinUploader::cvt_json(const std::string& rec_res) // Doc: https://developer.penguin-stats.io/public-api/api-v2-instruction/report-api json::value body; - body["server"] = resource.cfg().get_options().penguin_server; + auto& opt = resource.cfg().get_options(); + body["server"] = opt.penguin_report_server; body["stageId"] = rec["stage"]["stageId"]; body["drops"] = rec["drops"]; body["source"] = "MeoAssistance"; @@ -36,10 +37,11 @@ std::string asst::PenguinUploader::cvt_json(const std::string& rec_res) bool asst::PenguinUploader::request_penguin(const std::string& body) { - std::string curl_cmd = R"(curl -H "Content-Type: application/json" -v -i )"; - curl_cmd += "-d \"" + utils::string_replace_all(body, "\"", "\\\"") + "\" \"" + resource.cfg().get_options().penguin_api + '"'; + auto& opt = resource.cfg().get_options(); + std::string body_escape = utils::string_replace_all(body, "\"", "\\\""); + std::string cmd_line = utils::string_replace_all(opt.penguin_report_cmd_line, "[body]", body_escape); - log.trace("request_penguin |", curl_cmd); + log.trace("request_penguin |", cmd_line); SECURITY_ATTRIBUTES pipe_sec_attr = { 0 }; pipe_sec_attr.nLength = sizeof(SECURITY_ATTRIBUTES); @@ -58,7 +60,7 @@ bool asst::PenguinUploader::request_penguin(const std::string& body) PROCESS_INFORMATION pi = { 0 }; - BOOL p_ret = CreateProcessA(NULL, const_cast(curl_cmd.c_str()), NULL, NULL, TRUE, CREATE_NO_WINDOW, NULL, NULL, &si, &pi); + BOOL p_ret = CreateProcessA(NULL, const_cast(cmd_line.c_str()), NULL, NULL, TRUE, CREATE_NO_WINDOW, NULL, NULL, &si, &pi); if (p_ret) { std::string pipe_str; DWORD read_num = 0; diff --git a/src/MeoAssistance/ProcessTask.cpp b/src/MeoAssistance/ProcessTask.cpp index 1a013880dc..97c8a147be 100644 --- a/src/MeoAssistance/ProcessTask.cpp +++ b/src/MeoAssistance/ProcessTask.cpp @@ -104,7 +104,7 @@ bool ProcessTask::run() static const std::string dirname = utils::get_cur_dir() + "screenshot\\"; save_image(image, dirname); } - if (opt.upload_to_penguin) { + if (opt.penguin_report) { PenguinUploader::upload(res); } } diff --git a/src/MeoAssistance/Resource.cpp b/src/MeoAssistance/Resource.cpp index b546349a51..8661782c03 100644 --- a/src/MeoAssistance/Resource.cpp +++ b/src/MeoAssistance/Resource.cpp @@ -60,8 +60,8 @@ bool asst::Resource::load(const std::string& dir) m_last_error = m_ocr_pack_unique_ins.get_last_error(); return false; } - /* 加载企鹅统计库所需要的资源 */ - m_penguin_pack_unique_ins.set_language(opt.penguin_server); + /* 加载企鹅数据识别库所需要的资源 */ + m_penguin_pack_unique_ins.set_language(opt.penguin_report_server); if (!m_penguin_pack_unique_ins.load(dir + PenguinResourceFilename)) { m_last_error = m_penguin_pack_unique_ins.get_last_error(); return false;