From bafdd47c1457c73de3b419f3aa2c5d4e4e98acab Mon Sep 17 00:00:00 2001 From: MistEO Date: Mon, 14 Feb 2022 23:38:23 +0800 Subject: [PATCH] =?UTF-8?q?feat.=E6=96=B0=E5=A2=9E=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E4=BC=81=E9=B9=85=E7=89=A9=E6=B5=81=E8=87=AA=E5=8A=A8=E8=8E=B7?= =?UTF-8?q?=E5=8F=96id?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/回调消息协议.md | 10 ++++++++++ resource/config.json | 2 +- src/MeoAssistant/StageDropsTaskPlugin.cpp | 9 +++++++++ src/MeoAsstGui/Helper/AsstProxy.cs | 14 +++++++++++++- 4 files changed, 33 insertions(+), 2 deletions(-) diff --git a/docs/回调消息协议.md b/docs/回调消息协议.md index 69d5de4b57..290050b2e0 100644 --- a/docs/回调消息协议.md +++ b/docs/回调消息协议.md @@ -362,3 +362,13 @@ Todo "index": 0 // 设施序号 } ``` + +- `PenguinId` + 企鹅物流 ID + + ```jsonc + // 对应的 details 字段举例 + { + "id": string + } + ``` diff --git a/resource/config.json b/resource/config.json index 8ff486f960..5b91099429 100644 --- a/resource/config.json +++ b/resource/config.json @@ -17,7 +17,7 @@ "penguinReport": { "Doc": "企鹅数据汇报:每次到结算界面,汇报掉落数据至企鹅数据 https://penguin-stats.cn/。true-开启,false-关闭,默认true", "enable": true, - "cmdFormat": "curl -H \"Content-Type: application/json\" -d \"[body]\" \"https://penguin-stats.cn/PenguinStats/api/v2/report\" [extra]", + "cmdFormat": "curl -H \"Content-Type: application/json\" -s -i -d \"[body]\" \"https://penguin-stats.cn/PenguinStats/api/v2/report\" [extra]", "cmdFormat_Doc": "命令格式,想打印详细信息可以尝试添加 -v -i" } }, diff --git a/src/MeoAssistant/StageDropsTaskPlugin.cpp b/src/MeoAssistant/StageDropsTaskPlugin.cpp index c82a974af5..178c9568bb 100644 --- a/src/MeoAssistant/StageDropsTaskPlugin.cpp +++ b/src/MeoAssistant/StageDropsTaskPlugin.cpp @@ -2,6 +2,7 @@ #include #include +#include #include "Controller.h" #include "Resource.h" @@ -164,6 +165,14 @@ void asst::StageDropsTaskPlugin::upload_to_penguin() std::string response = utils::callcmd(cmd_line); + static const std::regex penguinid_regex(R"(X-Penguin-Set-Penguinid: (\d+))"); + std::smatch penguinid_sm; + if (std::regex_search(response, penguinid_sm, penguinid_regex)) { + json::value id_info = basic_info_with_what("PenguinId"); + id_info["details"]["id"] = std::string(penguinid_sm[1]); + callback(AsstMsg::SubTaskExtraInfo, id_info); + } + Log.trace("response:\n", response); callback(AsstMsg::SubTaskCompleted, info); diff --git a/src/MeoAsstGui/Helper/AsstProxy.cs b/src/MeoAsstGui/Helper/AsstProxy.cs index 10d55dbcac..d04b7ae3ad 100644 --- a/src/MeoAsstGui/Helper/AsstProxy.cs +++ b/src/MeoAsstGui/Helper/AsstProxy.cs @@ -1,4 +1,4 @@ -// MeoAsstGui - A part of the MeoAssistantArknights project +// MeoAsstGui - A part of the MeoAssistantArknights project // Copyright (C) 2021 MistEO and Contributors // // This program is free software: you can redistribute it and/or modify @@ -465,6 +465,18 @@ namespace MeoAsstGui mainModel.AddLog("关卡识别错误", "darkred"); } break; + + case "PenguinId": + { + var settings = _container.Get(); + if (settings.PenguinId == String.Empty) + { + string id = subTaskDetails["id"].ToString(); + settings.PenguinId = id; + AsstSetPenguinId(id); + } + } + break; } }