Selaa lähdekoodia

修改url 获取方式
添加代理状态
修改ssl 验证 false

alroyso 2 vuotta sitten
vanhempi
säilyke
0c07f75a3d

+ 17 - 1
SProxy/CApp.cpp

@@ -4,7 +4,7 @@
 
 CApp* SSingleton<CApp>::ms_Singleton = NULL;
 
-CApp::CApp() : m_is_out(0), m_versioninfo(nullptr),m_userinfo(nullptr), m_server_list(nullptr), m_proxy_mode(PROXY_MODE::sys_mode), m_route_mode(ROUT_MODE::cn_mode)
+CApp::CApp() : m_is_out(0), m_versioninfo(nullptr),m_userinfo(nullptr), m_server_list(nullptr), m_sys_config(nullptr), m_proxy_mode(PROXY_MODE::sys_mode), m_route_mode(ROUT_MODE::cn_mode)
 {
 	m_hInst = nullptr;
 }
@@ -29,6 +29,11 @@ void CApp::Init()
 	{
 		m_versioninfo = new CVersion();
 	}
+	
+	if (!m_sys_config)
+	{
+		m_sys_config = new CSysConfig();
+	}
 }
 
 void CApp::UnInit() {
@@ -48,6 +53,12 @@ void CApp::UnInit() {
 		delete m_versioninfo;
 		m_versioninfo = nullptr;
 	}
+
+	if (m_sys_config)
+	{
+		delete m_sys_config;
+		m_sys_config = nullptr;
+	}
 }
 
  
@@ -66,6 +77,11 @@ CVersion* CApp::GetVerinfo()
 	return m_versioninfo;
 }
 
+CSysConfig* CApp::GetSysconfig()
+{
+	return m_sys_config;
+}
+
 void CApp::SetOut(int out)
 {
 	m_is_out = out;

+ 3 - 1
SProxy/CApp.h

@@ -3,6 +3,7 @@
 #include "CUserInfo.h"
 #include "CServerList.h"
 #include "CVersion.h"
+#include "CSysConfig.h"
 
 enum struct PROXY_MODE {
 
@@ -41,7 +42,7 @@ public:
 
 	void UnInit();
 
- 
+	CSysConfig* CApp::GetSysconfig();
 	CUserInfo* GetUserinfo();
 	CServerList* GetServerList();
 	CVersion* GetVerinfo();
@@ -88,6 +89,7 @@ private:
 	CServerList* m_server_list;
 	CUserInfo* m_userinfo;
 	CVersion* m_versioninfo;
+	CSysConfig* m_sys_config;
 	PROXY_MODE m_proxy_mode;
 	ROUT_MODE  m_route_mode;
 	HINSTANCE  m_hInst;

+ 81 - 1
SProxy/CManageNetWork.cpp

@@ -29,6 +29,7 @@ void CManageNetWork::init()
 	SNotifyCenter::getSingleton().addEvent(EVENTID(EventDoWNload));
 	SNotifyCenter::getSingleton().addEvent(EVENTID(EventNodeList));
 	SNotifyCenter::getSingleton().addEvent(EVENTID(EventVerions));
+	SNotifyCenter::getSingleton().addEvent(EVENTID(EventSysconfig));
 
 
 	if (!m_base_curl)
@@ -105,13 +106,49 @@ void CManageNetWork::GetVersion()
 
 }
 
+void CManageNetWork::GetSysConfig()
+{
+	if (!m_base_curl)
+	{
+		return;
+	}
+	m_Asyntask.AddTask(&CManageNetWork::ThreadFun_Sys_Config, this, (LPARAM)m_base_curl);
+}
+
 void CManageNetWork::ThreadFun_login(LPARAM lParam)
 {
 	IBaseCurl* lpAsyncParam = reinterpret_cast<IBaseCurl*>(lParam);
 	int code = 200;
 	SStringW msg = L"";
 	std::string data;
-	HTTPRET httpstatus = m_base_curl->PostLogin(this->m_username, this->m_password, data);
+
+	HTTPRET httpstatus = m_base_curl->GetSysConfigFromUser(this->m_username, this->m_password, data);
+	if (httpstatus == HTTPRET::http_user_expired_at)
+	{
+		code = -2;
+		msg = m_base_curl->GetLastErrorW();
+
+	}
+	else if (httpstatus == HTTPRET::http_user_transfer_enable) {
+		code = -3;
+		msg = m_base_curl->GetLastErrorW();
+	}
+	else if (httpstatus == HTTPRET::http_f) {
+		code = 0;
+		msg = m_base_curl->GetLastErrorW();
+	}
+
+	if (!data.empty())
+	{
+		if (!CApp::getSingletonPtr()->GetSysconfig()->Inti(data)) {
+
+		}
+		
+	}
+
+	data.empty();
+
+	httpstatus = m_base_curl->PostLogin(this->m_username, this->m_password, data);
 	if (httpstatus == HTTPRET::http_user_expired_at)
 	{
 		code = -2;
@@ -164,6 +201,49 @@ void CManageNetWork::ThreadFun_Dowlon_Config(LPARAM lParam)
 	pEvt->Release();
 }
 
+
+void CManageNetWork::ThreadFun_Sys_Config(LPARAM lParam)
+{
+	IBaseCurl* lpAsyncParam = reinterpret_cast<IBaseCurl*>(lParam);
+	int code = 200;
+	SStringW msg = L"";
+	std::string data;
+	//if (m_base_curl->Version(data) == HTTPRET::http_f) {
+	//	code = 0;
+	//	msg = m_base_curl->GetLastErrorW();
+	//}
+	HTTPRET httpstatus = m_base_curl->GetSysConfig(data);
+	if (httpstatus == HTTPRET::http_user_expired_at)
+	{
+		code = -2;
+		msg = m_base_curl->GetLastErrorW();
+
+	}
+	else if (httpstatus == HTTPRET::http_user_transfer_enable) {
+		code = -3;
+		msg = m_base_curl->GetLastErrorW();
+	}
+	else if (httpstatus == HTTPRET::http_f) {
+		code = 0;
+		msg = m_base_curl->GetLastErrorW();
+	}
+	if (!data.empty())
+	{
+		if (!CApp::getSingletonPtr()->GetSysconfig()->Inti(data))
+		{
+			code = -1;
+			msg = CApp::getSingletonPtr()->GetSysconfig()->GetLastErrorW();
+		}
+
+	}
+	EventSysconfig* pEvt = new EventSysconfig(nullptr);
+	pEvt->status = code;
+	pEvt->msg = msg;
+	SNotifyCenter::getSingleton().FireEventAsync(pEvt);
+	pEvt->Release();
+}
+
+
 void CManageNetWork::ThreadFun_Version_Config(LPARAM lParam)
 {
 	IBaseCurl* lpAsyncParam = reinterpret_cast<IBaseCurl*>(lParam);

+ 3 - 0
SProxy/CManageNetWork.h

@@ -27,10 +27,13 @@ public:
 
 	void GetVersion();
 
+	void GetSysConfig();
+
 private:
 	void ThreadFun_login(LPARAM lParam);
 	void ThreadFun_Dowlon_Config(LPARAM lParam);
 	void ThreadFun_Version_Config(LPARAM lParam);
+	void ThreadFun_Sys_Config(LPARAM lParam);
 	void ThreadFun_Node_Config(LPARAM lParam);
 	void LoadFileToData();
 

+ 56 - 5
SProxy/CNetWork.cpp

@@ -61,6 +61,32 @@ HTTPRET CNetWork::GetServerNode(std::string& data) {
 	return HTTPRET::http_yes;
 }
 
+
+HTTPRET CNetWork::GetSysConfig(std::string& data)
+{
+	std::vector<cpr::Parameter> p;
+	std::string text = GetUrl("/api/client/v3/getconfig", p);
+	if (text.empty()) {
+		if (m_http_status == 445)
+		{
+			return HTTPRET::http_user_expired_at;
+		}
+		else if (m_http_status == 446)
+		{
+			return HTTPRET::http_user_transfer_enable;
+		}
+		else {
+			return HTTPRET::http_f;
+		}
+
+	}
+
+	data = text.c_str();
+
+	return HTTPRET::http_yes;
+}
+
+
 HTTPRET CNetWork::PostLogin(LPCSTR username, LPCSTR password, std::string& data)
 {
 	std::vector<cpr::Pair> p;
@@ -86,6 +112,31 @@ HTTPRET CNetWork::PostLogin(LPCSTR username, LPCSTR password, std::string& data)
     return HTTPRET::http_yes;
 }
 
+HTTPRET  CNetWork::GetSysConfigFromUser(LPCSTR username, LPCSTR password, std::string& data) {
+	std::vector<cpr::Parameter> p;
+	p.push_back({ "email",username });
+	p.push_back({ "password",password });
+	std::string text = GetUrl("/api/client/v3/getconfig", p);
+	if (text.empty()) {
+		if (m_http_status == 445)
+		{
+			return HTTPRET::http_user_expired_at;
+		}
+		else if (m_http_status == 446)
+		{
+			return HTTPRET::http_user_transfer_enable;
+		}
+		else {
+			return HTTPRET::http_f;
+		}
+
+	}
+
+	data = text.c_str();
+
+	return HTTPRET::http_yes;
+}
+
 void CNetWork::SetUrl(LPCSTR url)
 {
 	m_url = url;
@@ -138,10 +189,10 @@ std::string CNetWork::GetUrl(std::string path, std::vector<cpr::Parameter> param
 
 		if (parame.empty())
 		{
-			r = cpr::Get(cpr::Url{ s.c_str() }, hander, cpr::Timeout{ 60 * 100 });
+			r = cpr::Get(cpr::Url{ s.c_str() }, cpr::VerifySsl{ false }, hander, cpr::Timeout{ 60 * 1000 });
 		}
 		else {
-			r = cpr::Get(cpr::Url{ s.c_str() }, ps, hander, cpr::Timeout{ 60 * 100 });
+			r = cpr::Get(cpr::Url{ s.c_str() }, cpr::VerifySsl{ false }, ps, hander, cpr::Timeout{ 60 * 1000 });
 		}
 		if (r.status_code == 200 || r.status_code == 201)
 		{
@@ -202,12 +253,12 @@ std::string CNetWork::PostUrl(std::string path, std::vector<cpr::Pair> parame, s
 
 		if (parame.empty())
 		{
-			r = cpr::Get(cpr::Url{ s.c_str() }, hander, cpr::Timeout{ 60 * 100 });
+			r = cpr::Get(cpr::Url{ s.c_str() }, hander, cpr::VerifySsl{false}, cpr::Timeout{ 60 * 1000 });
 		}
 		else {
-			r = cpr::Post(cpr::Url{ s.c_str() }, cpr::Payload{ parame.begin(),parame.end() }, hander, cpr::Timeout{ 60 * 100 });
+			r = cpr::Post(cpr::Url{ s.c_str() }, cpr::VerifySsl{ false }, cpr::Payload{ parame.begin(),parame.end() }, hander, cpr::Timeout{ 60 * 1000 });
 		}
-
+		Logger::getSingletonPtr()->DEBUG(r.url.c_str());
 		if (r.status_code == 200 || r.status_code == 201)
 		{
 			res_test = std::move(r.text);

+ 5 - 2
SProxy/CNetWork.h

@@ -12,8 +12,11 @@ public:
 
 	HTTPRET GetServerNode(std::string& data);
 
+	HTTPRET PostLogin(LPCSTR username, LPCSTR password, std::string& data);	 
+	HTTPRET GetSysConfigFromUser(LPCSTR username, LPCSTR password, std::string& data);
+
+	HTTPRET GetSysConfig(std::string& data);
 
-	HTTPRET PostLogin(LPCSTR username, LPCSTR password, std::string& data);
 	void SetUrl(LPCSTR url);
 
 	SStringA  GetLastErrorA();
@@ -31,7 +34,7 @@ private:
 	std::string GetUrl(std::string path, std::vector<cpr::Parameter> parame, std::string token = "");
 	std::string PostUrl(std::string path, std::vector<cpr::Pair> parame,std::string token = "");
 	std::string Retrying(std::string path, std::vector<cpr::Parameter> parame, std::string token = "");
-	 
+	
 	void Init();
 	void UnInit();
 	std::string UpdateError(cpr::ErrorCode code,std::string msg);

+ 89 - 0
SProxy/CSysConfig.cpp

@@ -0,0 +1,89 @@
+#include "stdafx.h"
+#include "CSysConfig.h"
+#include "CManageNetWork.h"
+CSysConfig::CSysConfig()
+{
+	userbuylink.empty();
+	userattrlink.empty();
+	useronlinekflink.empty();
+	user_tag = 0;
+}
+
+CSysConfig::~CSysConfig()
+{
+}
+
+bool CSysConfig::Inti(std::string data)
+{
+	if (data.empty())
+	{
+		return false;
+	}
+
+	try
+	{
+		nlohmann::json j = nlohmann::json::parse(data.begin(), data.end());
+
+		if (j["ret"].get<int>() == 1)
+		{
+			//
+			auto stime = j["data"]["user_login_url"].get<std::string>();
+			userbuylink = j["data"]["user_login_url"].get<std::string>();
+			userattrlink = j["data"]["affurl"].get<std::string>();
+			useronlinekflink = j["data"]["user_ticket"].get<std::string>();
+			user_reg = j["data"]["user_reg"].get<std::string>();
+			user_reset = j["data"]["user_reset"].get<std::string>();
+			user_tutorial = j["data"]["user_tutorial"].get<std::string>();
+			user_tag = j["data"]["tag"].get<int>();
+			return true;
+
+		}
+		else
+		{
+			this->m_error_msg = S_CA2W(j["msg"].get<std::string>().c_str(), CP_UTF8).GetBuffer(0);
+			return false;
+		}
+
+
+	}
+	catch (...)
+	{
+		this->m_error_msg = L"½âÎöÊý¾Ý´íÎó";
+		return false;
+	}
+	return false;
+}
+
+SStringW CSysConfig::GetBuyLink()
+{
+	if (user_tag == 1)
+	{
+		return S_CA2W(userbuylink.c_str(), CP_UTF8);
+	}
+	return  SStringW().Format(L"%s?email=%s&password=%s", S_CA2W(userbuylink.c_str(), CP_UTF8).GetBuffer(0), CManageNetWork::getSingletonPtr()->GetUsername(), CManageNetWork::getSingletonPtr()->GetPassWord());
+}
+
+
+SStringW CSysConfig::GetOnlineLink()
+{
+	if (user_tag == 1)
+	{
+		return S_CA2W(useronlinekflink.c_str(), CP_UTF8);
+	}
+	return  SStringW().Format(L"%s?email=%s&password=%s", S_CA2W(useronlinekflink.c_str(), CP_UTF8).GetBuffer(0), CManageNetWork::getSingletonPtr()->GetUsername(), CManageNetWork::getSingletonPtr()->GetPassWord());
+}
+
+
+SStringW CSysConfig::GetAffLink()
+{
+	if (user_tag == 1)
+	{
+		return S_CA2W(userattrlink.c_str(), CP_UTF8);
+	}
+	return  SStringW().Format(L"%s?email=%s&password=%s", S_CA2W(userattrlink.c_str(), CP_UTF8).GetBuffer(0), CManageNetWork::getSingletonPtr()->GetUsername(), CManageNetWork::getSingletonPtr()->GetPassWord());
+}
+
+SStringW CSysConfig::GetTutorialLink()
+{
+	return S_CA2W(user_tutorial.c_str(), CP_UTF8).GetBuffer(0);
+}

+ 25 - 0
SProxy/CSysConfig.h

@@ -0,0 +1,25 @@
+#pragma once
+#include "CBaseMode.h"
+class CSysConfig : public CBaseMode
+{
+public:
+	CSysConfig();
+	~CSysConfig();
+
+	bool Inti(std::string data);
+
+	SStringW GetBuyLink();
+	SStringW GetOnlineLink();
+	SStringW GetAffLink();
+	SStringW GetTutorialLink();
+	std::string user_reg;
+	std::string user_reset;
+private:
+	std::string userbuylink;
+	std::string userattrlink;
+	std::string useronlinekflink;
+	std::string user_tutorial;
+	int user_tag;
+
+};
+

+ 2 - 2
SProxy/CUserInfo.cpp

@@ -3,7 +3,7 @@
 
 #include "FileOperate.h"
 
-CUserInfo::CUserInfo() : id(0), port(0)
+CUserInfo::CUserInfo() : id(0), port(0), enable(0)
 {
 }
 
@@ -39,7 +39,7 @@ bool CUserInfo::Init(std::string data)
 			this->uuid = j["data"]["user"].at("uuid").get<std::string>();
 			this->level = j["data"]["user"].at("level").get<std::string>();
 			this->port = j["data"]["user"].at("port").get<int>();
-		
+			this->enable = j["data"]["user"].at("enable").get<int>();
 			
 			return true;
 

+ 1 - 1
SProxy/CUserInfo.h

@@ -25,7 +25,7 @@ public:
 	std::string uuid;		   //uuid
 	std::string level;		   //用户级别
 	std::string access_token;
-
+	int enable;
 	std::string affurl; //推荐地址
 	std::string swoftdownload; //软件下载地址
 	std::string clash_config; //配置地址

+ 5 - 0
SProxy/IBaseCurl.h

@@ -27,6 +27,11 @@ public:
 	//登录xia'zai
 	virtual HTTPRET PostLogin(LPCSTR username, LPCSTR password, std::string& data) = 0;
 
+	//獲取系統配置
+	virtual HTTPRET GetSysConfig(std::string& data) = 0;
+	//根据用户名和密码获取配置
+	virtual HTTPRET GetSysConfigFromUser(LPCSTR username, LPCSTR password, std::string& data) = 0;
+
 	//获取线路
 	virtual HTTPRET GetServerNode(std::string& data) = 0;
 

BIN
SProxy/LoginDlg.cpp


BIN
SProxy/LoginDlg.h


BIN
SProxy/MainDlg.cpp


+ 2 - 0
SProxy/SProxy.vcxproj

@@ -214,6 +214,7 @@
     <ClCompile Include="CProcessManager.cpp" />
     <ClCompile Include="CServerList.cpp" />
     <ClCompile Include="CServerListMode.cpp" />
+    <ClCompile Include="CSysConfig.cpp" />
     <ClCompile Include="CThread.cpp" />
     <ClCompile Include="CTool.cpp" />
     <ClCompile Include="CUserInfo.cpp" />
@@ -256,6 +257,7 @@
     <ClInclude Include="CProcessManager.h" />
     <ClInclude Include="CServerList.h" />
     <ClInclude Include="CServerListMode.h" />
+    <ClInclude Include="CSysConfig.h" />
     <ClInclude Include="CThread.h" />
     <ClInclude Include="CTool.h" />
     <ClInclude Include="CUserInfo.h" />

+ 6 - 0
SProxy/SProxy.vcxproj.filters

@@ -128,6 +128,9 @@
     <ClCompile Include="SysProxy.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
+    <ClCompile Include="CSysConfig.cpp">
+      <Filter>Model</Filter>
+    </ClCompile>
   </ItemGroup>
   <ItemGroup>
     <ResourceCompile Include="SProxy.rc">
@@ -243,6 +246,9 @@
     <ClInclude Include="SysProxy.h">
       <Filter>Header Files</Filter>
     </ClInclude>
+    <ClInclude Include="CSysConfig.h">
+      <Filter>Model</Filter>
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <None Include="res\soui_res.rc2">

+ 1 - 1
SProxy/comm.h

@@ -21,4 +21,4 @@ constexpr auto CONNECT_NODE_MSG = L"
 constexpr auto SUEECS_NODE_MSG = L"»ñÈ¡½Úµã³É¹¦.."; 
 
 
-constexpr auto VERSION = L"1.1.3";
+constexpr auto VERSION = L"1.1.5";

+ 19 - 0
SProxy/event.h

@@ -98,6 +98,25 @@ public:
 };
 
 
+#define EVT_SYSCONFIG (SOUI::EVT_EXTERNAL_BEGIN + 1005)
+
+class EventSysconfig : public TplEventArgs<EventSysconfig>
+{
+	SOUI_CLASS_NAME(EventSysconfig, L"on_event_sysconfig")
+public:
+	EventSysconfig(SOUI::SWindow* pSender) : TplEventArgs<EventSysconfig>(pSender)
+	{
+
+	}
+	enum {
+		EventID = EVT_SYSCONFIG
+	};
+
+	int		 status;
+	SStringW msg;
+};
+
+
 enum struct ConnectState
 {
 	Stop,

+ 2 - 2
SProxy/uires/xml/dlg_login.xml

@@ -38,9 +38,9 @@ appWnd="1"
 
             <window size="-2,35" layout="hbox"   gravity="center"  extend="0,10,44,0">
 
-                  <link href="https://user.vipone.xyz/register"   colorText="#A79BB8" font="adding:12,bold:1"  extend="130,0,0,0">注册</link>
+                  <link href="https://user.viptwo.xy" name="reglink"   colorText="#A79BB8" font="adding:12,bold:1"  extend="130,0,0,0">注册</link>
 
-                  <link href="https://user.vipone.xyz/reset"   colorText="#A79BB8" font="adding:12,bold:1"  extend="10,0,0,0">忘记密码</link>
+                  <link href="https:/user.viptwo.xyz" name="resetlink"  colorText="#A79BB8" font="adding:12,bold:1"  extend="10,0,0,0">忘记密码</link>
 
             </window>
           

+ 1 - 0
SProxy/uires/xml/page_home.xml

@@ -19,6 +19,7 @@
                             <link name="username_jiaocheng" extend="35,0,0,0" colorText="#ffffff">使用教程</link>
                             <link name="username_chongzhi" extend="35,0,0,0" colorText="#ffffff">充值续费</link>
                             <link name="username_tuiguang" extend="35,0,0,0" colorText="#ffffff">推广地址</link>
+                            <link name="username_online_kf" extend="35,0,0,0" colorText="#ffffff">在线客服</link>
                     </window>
                      <img skin="skin_line" extend="35,10,0,0"/>
                       <window size="-2,-1" layout="vbox"   gravity="left"  extend="0,10,0,0">