diff options
| author | darktux <darktux@y2nlvhmmk5jnsvechppxnbyzmmv3vbl7dvzn6ltwcdbpgxixp3clkgqd.onion> | 2024-04-05 01:58:30 +0200 |
|---|---|---|
| committer | Briar <205427297+icybriarr@users.noreply.github.com> | 2025-04-04 03:40:47 +0200 |
| commit | 2032d035a344cc6a6868ab3c6f0e7250b1f745ea (patch) | |
| tree | c02c383ebcb7c1ff34c2c7fb3c14acf4c141c97c /src/web_service/telemetry_json.cpp | |
| parent | 5056d87da345d44f4112dc4cd0bf1601b2003e18 (diff) | |
Removed telemetry and anonymized SCM (git) strings
Diffstat (limited to 'src/web_service/telemetry_json.cpp')
| -rw-r--r-- | src/web_service/telemetry_json.cpp | 130 |
1 files changed, 0 insertions, 130 deletions
diff --git a/src/web_service/telemetry_json.cpp b/src/web_service/telemetry_json.cpp deleted file mode 100644 index 51c7920045..0000000000 --- a/src/web_service/telemetry_json.cpp +++ /dev/null @@ -1,130 +0,0 @@ -// SPDX-FileCopyrightText: 2017 Citra Emulator Project -// SPDX-License-Identifier: GPL-2.0-or-later - -#include <nlohmann/json.hpp> -#include "common/detached_tasks.h" -#include "web_service/telemetry_json.h" -#include "web_service/web_backend.h" -#include "web_service/web_result.h" - -namespace WebService { - -namespace Telemetry = Common::Telemetry; - -struct TelemetryJson::Impl { - Impl(std::string host_, std::string username_, std::string token_) - : host{std::move(host_)}, username{std::move(username_)}, token{std::move(token_)} {} - - nlohmann::json& TopSection() { - return sections[static_cast<u8>(Telemetry::FieldType::None)]; - } - - const nlohmann::json& TopSection() const { - return sections[static_cast<u8>(Telemetry::FieldType::None)]; - } - - template <class T> - void Serialize(Telemetry::FieldType type, const std::string& name, T value) { - sections[static_cast<u8>(type)][name] = value; - } - - void SerializeSection(Telemetry::FieldType type, const std::string& name) { - TopSection()[name] = sections[static_cast<unsigned>(type)]; - } - - nlohmann::json output; - std::array<nlohmann::json, 7> sections; - std::string host; - std::string username; - std::string token; -}; - -TelemetryJson::TelemetryJson(std::string host, std::string username, std::string token) - : impl{std::make_unique<Impl>(std::move(host), std::move(username), std::move(token))} {} -TelemetryJson::~TelemetryJson() = default; - -void TelemetryJson::Visit(const Telemetry::Field<bool>& field) { - impl->Serialize(field.GetType(), field.GetName(), field.GetValue()); -} - -void TelemetryJson::Visit(const Telemetry::Field<double>& field) { - impl->Serialize(field.GetType(), field.GetName(), field.GetValue()); -} - -void TelemetryJson::Visit(const Telemetry::Field<float>& field) { - impl->Serialize(field.GetType(), field.GetName(), field.GetValue()); -} - -void TelemetryJson::Visit(const Telemetry::Field<u8>& field) { - impl->Serialize(field.GetType(), field.GetName(), field.GetValue()); -} - -void TelemetryJson::Visit(const Telemetry::Field<u16>& field) { - impl->Serialize(field.GetType(), field.GetName(), field.GetValue()); -} - -void TelemetryJson::Visit(const Telemetry::Field<u32>& field) { - impl->Serialize(field.GetType(), field.GetName(), field.GetValue()); -} - -void TelemetryJson::Visit(const Telemetry::Field<u64>& field) { - impl->Serialize(field.GetType(), field.GetName(), field.GetValue()); -} - -void TelemetryJson::Visit(const Telemetry::Field<s8>& field) { - impl->Serialize(field.GetType(), field.GetName(), field.GetValue()); -} - -void TelemetryJson::Visit(const Telemetry::Field<s16>& field) { - impl->Serialize(field.GetType(), field.GetName(), field.GetValue()); -} - -void TelemetryJson::Visit(const Telemetry::Field<s32>& field) { - impl->Serialize(field.GetType(), field.GetName(), field.GetValue()); -} - -void TelemetryJson::Visit(const Telemetry::Field<s64>& field) { - impl->Serialize(field.GetType(), field.GetName(), field.GetValue()); -} - -void TelemetryJson::Visit(const Telemetry::Field<std::string>& field) { - impl->Serialize(field.GetType(), field.GetName(), field.GetValue()); -} - -void TelemetryJson::Visit(const Telemetry::Field<const char*>& field) { - impl->Serialize(field.GetType(), field.GetName(), std::string(field.GetValue())); -} - -void TelemetryJson::Visit(const Telemetry::Field<std::chrono::microseconds>& field) { - impl->Serialize(field.GetType(), field.GetName(), field.GetValue().count()); -} - -void TelemetryJson::Complete() { - impl->SerializeSection(Telemetry::FieldType::App, "App"); - impl->SerializeSection(Telemetry::FieldType::Session, "Session"); - impl->SerializeSection(Telemetry::FieldType::Performance, "Performance"); - impl->SerializeSection(Telemetry::FieldType::UserConfig, "UserConfig"); - impl->SerializeSection(Telemetry::FieldType::UserSystem, "UserSystem"); - - auto content = impl->TopSection().dump(); - // Send the telemetry async but don't handle the errors since they were written to the log - Common::DetachedTasks::AddTask([host{impl->host}, content]() { - Client{host, "", ""}.PostJson("/telemetry", content, true); - }); -} - -bool TelemetryJson::SubmitTestcase() { - impl->SerializeSection(Telemetry::FieldType::App, "App"); - impl->SerializeSection(Telemetry::FieldType::Session, "Session"); - impl->SerializeSection(Telemetry::FieldType::UserFeedback, "UserFeedback"); - impl->SerializeSection(Telemetry::FieldType::UserSystem, "UserSystem"); - impl->SerializeSection(Telemetry::FieldType::UserConfig, "UserConfig"); - - auto content = impl->TopSection().dump(); - Client client(impl->host, impl->username, impl->token); - auto value = client.PostJson("/gamedb/testcase", content, false); - - return value.result_code == WebResult::Code::Success; -} - -} // namespace WebService |
