From 05bf2b6f6fec86a0ae40e047b68c85276b9a74d2 Mon Sep 17 00:00:00 2001 From: arm64v8a <48624112+arm64v8a@users.noreply.github.com> Date: Sat, 14 Oct 2023 15:36:56 +0900 Subject: [PATCH] update user-agent --- main/HTTPRequestHelper.cpp | 2 +- main/NekoGui.cpp | 18 +++++++++++++++++- main/NekoGui_DataStore.hpp | 2 ++ main/main.cpp | 10 ---------- ui/dialog_basic_settings.cpp | 1 + 5 files changed, 21 insertions(+), 12 deletions(-) diff --git a/main/HTTPRequestHelper.cpp b/main/HTTPRequestHelper.cpp index a43010f..08a1a42 100644 --- a/main/HTTPRequestHelper.cpp +++ b/main/HTTPRequestHelper.cpp @@ -38,7 +38,7 @@ namespace NekoGui_network { #if (QT_VERSION >= QT_VERSION_CHECK(5, 9, 0)) request.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::NoLessSafeRedirectPolicy); #endif - request.setHeader(QNetworkRequest::KnownHeaders::UserAgentHeader, NekoGui::dataStore->user_agent); + request.setHeader(QNetworkRequest::KnownHeaders::UserAgentHeader, NekoGui::dataStore->GetUserAgent()); if (NekoGui::dataStore->sub_insecure) { QSslConfiguration c; c.setPeerVerifyMode(QSslSocket::PeerVerifyMode::VerifyNone); diff --git a/main/NekoGui.cpp b/main/NekoGui.cpp index ab4cbd2..ea2d03f 100644 --- a/main/NekoGui.cpp +++ b/main/NekoGui.cpp @@ -230,7 +230,7 @@ namespace NekoGui { _add(new configItem("extraCore", dynamic_cast(extraCore), itemType::jsonStore)); _add(new configItem("inbound_auth", dynamic_cast(inbound_auth), itemType::jsonStore)); - _add(new configItem("user_agent", &user_agent, itemType::string)); + _add(new configItem("user_agent2", &user_agent, itemType::string)); _add(new configItem("test_url", &test_latency_url, itemType::string)); _add(new configItem("test_url_dl", &test_download_url, itemType::string)); _add(new configItem("test_dl_timeout", &test_download_timeout, itemType::integer)); @@ -304,6 +304,22 @@ namespace NekoGui { } } + QString DataStore::GetUserAgent(bool isDefault) const { + if (user_agent.isEmpty()) { + isDefault = true; + } + if (isDefault) { + QString version = SubStrBefore(NKR_VERSION, "-"); + if (!version.contains(".")) version = "2.0"; + if (IS_NEKO_BOX) { + return "NekoBox/PC/" + version + " (Prefer ClashMeta Format)"; + } else { + return "NekoRay/PC/" + version + " (Prefer ClashMeta Format)"; + } + } + return user_agent; + } + // preset routing Routing::Routing(int preset) : JsonStore() { if (preset == 1) { diff --git a/main/NekoGui_DataStore.hpp b/main/NekoGui_DataStore.hpp index 189e4d8..2cb8f5b 100644 --- a/main/NekoGui_DataStore.hpp +++ b/main/NekoGui_DataStore.hpp @@ -179,6 +179,8 @@ namespace NekoGui { DataStore(); void UpdateStartedId(int id); + + QString GetUserAgent(bool isDefault = false) const; }; extern DataStore *dataStore; diff --git a/main/main.cpp b/main/main.cpp index 5524be0..c67f913 100644 --- a/main/main.cpp +++ b/main/main.cpp @@ -263,16 +263,6 @@ int main(int argc, char* argv[]) { MW_dialog_message("", "Raise"); }); - // Do preset update - if (NekoGui::dataStore->user_agent.isEmpty() || NekoGui::dataStore->user_agent.startsWith("Nekoray/1.0") || NekoGui::dataStore->user_agent.startsWith("ClashForAndroid")) { - if (IS_NEKO_BOX) { - NekoGui::dataStore->user_agent = "NekoBox/PC/2.0 (Prefer ClashMeta Format)"; - } else { - NekoGui::dataStore->user_agent = "NekoRay/PC/2.0 (Prefer ClashMeta Format)"; - } - NekoGui::dataStore->Save(); - } - UI_InitMainWindow(); return QApplication::exec(); } diff --git a/ui/dialog_basic_settings.cpp b/ui/dialog_basic_settings.cpp index 152d1f9..bcff7e9 100644 --- a/ui/dialog_basic_settings.cpp +++ b/ui/dialog_basic_settings.cpp @@ -157,6 +157,7 @@ DialogBasicSettings::DialogBasicSettings(QWidget *parent) // Subscription ui->user_agent->setText(NekoGui::dataStore->user_agent); + ui->user_agent->setPlaceholderText(NekoGui::dataStore->GetUserAgent(true)); D_LOAD_BOOL(sub_use_proxy) D_LOAD_BOOL(sub_clear) D_LOAD_BOOL(sub_insecure)