mirror of
https://github.com/MatsuriDayo/nekoray.git
synced 2025-12-18 04:54:38 +03:00
minor refactor
This commit is contained in:
178
main/NekoGui_DataStore.hpp
Normal file
178
main/NekoGui_DataStore.hpp
Normal file
@@ -0,0 +1,178 @@
|
||||
// DO NOT INCLUDE THIS
|
||||
|
||||
namespace NekoGui {
|
||||
|
||||
class Routing : public JsonStore {
|
||||
public:
|
||||
QString direct_ip;
|
||||
QString direct_domain;
|
||||
QString proxy_ip;
|
||||
QString proxy_domain;
|
||||
QString block_ip;
|
||||
QString block_domain;
|
||||
QString def_outbound = "proxy";
|
||||
QString custom = "{\"rules\": []}";
|
||||
|
||||
// DNS
|
||||
QString remote_dns = "https://8.8.8.8/dns-query";
|
||||
QString remote_dns_strategy = "";
|
||||
QString direct_dns = "localhost";
|
||||
QString direct_dns_strategy = "";
|
||||
bool dns_routing = true;
|
||||
bool use_dns_object = false;
|
||||
QString dns_object = "";
|
||||
|
||||
// Misc
|
||||
QString domain_strategy = "AsIs";
|
||||
QString outbound_domain_strategy = "AsIs";
|
||||
int sniffing_mode = SniffingMode::FOR_ROUTING;
|
||||
|
||||
explicit Routing(int preset = 0);
|
||||
|
||||
[[nodiscard]] QString DisplayRouting() const;
|
||||
|
||||
static QStringList List();
|
||||
|
||||
static void SetToActive(const QString &name);
|
||||
};
|
||||
|
||||
class ExtraCore : public JsonStore {
|
||||
public:
|
||||
QString core_map;
|
||||
|
||||
explicit ExtraCore();
|
||||
|
||||
[[nodiscard]] QString Get(const QString &id) const;
|
||||
|
||||
void Set(const QString &id, const QString &path);
|
||||
|
||||
void Delete(const QString &id);
|
||||
};
|
||||
|
||||
class InboundAuthorization : public JsonStore {
|
||||
public:
|
||||
QString username;
|
||||
QString password;
|
||||
|
||||
InboundAuthorization();
|
||||
|
||||
[[nodiscard]] bool NeedAuth() const;
|
||||
};
|
||||
|
||||
class DataStore : public JsonStore {
|
||||
public:
|
||||
// Running
|
||||
|
||||
QString core_token;
|
||||
int core_port = 19810;
|
||||
int started_id = -1919;
|
||||
bool core_running = false;
|
||||
bool prepare_exit = false;
|
||||
bool spmode_vpn = false;
|
||||
bool spmode_system_proxy = false;
|
||||
bool need_keep_vpn_off = false;
|
||||
QString appdataDir = "";
|
||||
QStringList ignoreConnTag = {};
|
||||
|
||||
Routing *routing = new Routing;
|
||||
int imported_count = 0;
|
||||
bool refreshing_group_list = false;
|
||||
bool refreshing_group = false;
|
||||
int resolve_count = 0;
|
||||
|
||||
// Flags
|
||||
QStringList argv = {};
|
||||
bool flag_use_appdata = false;
|
||||
bool flag_many = false;
|
||||
bool flag_tray = false;
|
||||
bool flag_debug = false;
|
||||
bool flag_linux_run_core_as_admin = false;
|
||||
|
||||
// Saved
|
||||
|
||||
// Misc
|
||||
QString log_level = "warning";
|
||||
QString test_url = "http://cp.cloudflare.com/";
|
||||
int test_concurrent = 5;
|
||||
int traffic_loop_interval = 1000;
|
||||
bool connection_statistics = false;
|
||||
int current_group = 0; // group id
|
||||
QString mux_protocol = "";
|
||||
int mux_concurrency = 8;
|
||||
bool mux_default_on = false;
|
||||
QString theme = "0";
|
||||
QString v2ray_asset_dir = "";
|
||||
int language = 0;
|
||||
QString mw_size = "";
|
||||
bool check_include_pre = false;
|
||||
QString system_proxy_format = "";
|
||||
QStringList log_ignore = {};
|
||||
bool start_minimal = false;
|
||||
int max_log_line = 200;
|
||||
QString splitter_state = "";
|
||||
|
||||
// Subscription
|
||||
QString user_agent = ""; // set at main.cpp
|
||||
bool sub_use_proxy = false;
|
||||
bool sub_clear = false;
|
||||
bool sub_insecure = false;
|
||||
|
||||
// Security
|
||||
bool skip_cert = false;
|
||||
int enable_js_hook = 0;
|
||||
QString utlsFingerprint = "";
|
||||
|
||||
// Remember
|
||||
QStringList remember_spmode = {};
|
||||
int remember_id = -1919;
|
||||
bool remember_enable = false;
|
||||
|
||||
// Socks & HTTP Inbound
|
||||
QString inbound_address = "127.0.0.1";
|
||||
int inbound_socks_port = 2080; // or Mixed
|
||||
int inbound_http_port = -2081;
|
||||
InboundAuthorization *inbound_auth = new InboundAuthorization;
|
||||
QString custom_inbound = "{\"inbounds\": []}";
|
||||
|
||||
// Routing
|
||||
QString custom_route_global = "{\"rules\": []}";
|
||||
QString active_routing = "Default";
|
||||
|
||||
// VPN
|
||||
bool fake_dns = false;
|
||||
bool vpn_internal_tun = true;
|
||||
int vpn_implementation = 0;
|
||||
int vpn_mtu = 9000;
|
||||
bool vpn_ipv6 = false;
|
||||
bool vpn_hide_console = false;
|
||||
bool vpn_strict_route = false;
|
||||
bool vpn_rule_white = false;
|
||||
QString vpn_rule_process = "";
|
||||
QString vpn_rule_cidr = "";
|
||||
|
||||
// Hotkey
|
||||
QString hotkey_mainwindow = "";
|
||||
QString hotkey_group = "";
|
||||
QString hotkey_route = "";
|
||||
QString hotkey_system_proxy_menu = "";
|
||||
|
||||
// Core
|
||||
int core_box_clash_api = -9090;
|
||||
QString core_box_clash_api_secret = "";
|
||||
QString core_box_underlying_dns = "";
|
||||
bool core_ray_direct_dns = false;
|
||||
bool core_ray_windows_disable_auto_interface = false;
|
||||
|
||||
// Other Core
|
||||
ExtraCore *extraCore = new ExtraCore;
|
||||
|
||||
// Methods
|
||||
|
||||
DataStore();
|
||||
|
||||
void UpdateStartedId(int id);
|
||||
};
|
||||
|
||||
extern DataStore *dataStore;
|
||||
|
||||
} // namespace NekoGui
|
||||
Reference in New Issue
Block a user