diff --git a/gsuid_core/utils/api/mys/request.py b/gsuid_core/utils/api/mys/request.py index c33523b..e868669 100644 --- a/gsuid_core/utils/api/mys/request.py +++ b/gsuid_core/utils/api/mys/request.py @@ -67,7 +67,8 @@ from .models import ( LoginTicketInfo, ) -proxy_url = core_plugins_config.get_config('proxy').data +Gproxy = core_plugins_config.get_config('Gproxy').data +Nproxy = core_plugins_config.get_config('Nproxy').data ssl_verify = core_plugins_config.get_config('MhySSLVerify').data RECOGNIZE_SERVER = { '1': 'cn_gf01', @@ -81,7 +82,8 @@ RECOGNIZE_SERVER = { class BaseMysApi: - proxy_url: Optional[str] = proxy_url if proxy_url else None + Gproxy: Optional[str] = Gproxy if Gproxy else None + Nproxy: Optional[str] = Nproxy if Nproxy else None mysVersion = mys_version _HEADER = { 'x-rpc-app_version': mysVersion, @@ -378,6 +380,13 @@ class BaseMysApi: data: Optional[Dict[str, Any]] = None, use_proxy: Optional[bool] = False, ) -> Union[Dict, int]: + if use_proxy and self.Gproxy: + proxy = self.Gproxy + elif self.Nproxy and not use_proxy: + proxy = self.Nproxy + else: + proxy = None + async with ClientSession( connector=TCPConnector(verify_ssl=ssl_verify) ) as client: @@ -414,7 +423,7 @@ class BaseMysApi: headers=header, params=params, json=data, - proxy=self.proxy_url if use_proxy else None, + proxy=proxy, timeout=300, ) as resp: try: @@ -1159,13 +1168,20 @@ class MysApi(BaseMysApi): data['game_biz'] = 'hk4e_global' use_proxy = True + if use_proxy and self.Gproxy: + proxy = self.Gproxy + elif self.Nproxy and not use_proxy: + proxy = self.Nproxy + else: + proxy = None + async with ClientSession() as client: async with client.request( method='POST', url=url, headers=header, json=data, - proxy=self.proxy_url if use_proxy else None, + proxy=proxy, timeout=300, ) as resp: raw_data = await resp.json() diff --git a/gsuid_core/utils/plugins_config/config_default.py b/gsuid_core/utils/plugins_config/config_default.py index efa0704..fc55b58 100644 --- a/gsuid_core/utils/plugins_config/config_default.py +++ b/gsuid_core/utils/plugins_config/config_default.py @@ -3,7 +3,8 @@ from typing import Dict from .models import GSC, GsStrConfig, GsBoolConfig, GsListStrConfig CONIFG_DEFAULT: Dict[str, GSC] = { - 'proxy': GsStrConfig('设置代理', '设置国际服的代理地址', ''), + 'Gproxy': GsStrConfig('设置米游社国际代理', '设置国际服的代理地址', ''), + 'Nproxy': GsStrConfig('设置米游社常规代理', '设置常规的代理地址', ''), '_pass_API': GsStrConfig('神奇API', '设置某种神奇的API', ''), 'restart_command': GsStrConfig( '重启命令', diff --git a/gsuid_core/utils/plugins_config/gs_config.py b/gsuid_core/utils/plugins_config/gs_config.py index 7cdd260..430e9ea 100644 --- a/gsuid_core/utils/plugins_config/gs_config.py +++ b/gsuid_core/utils/plugins_config/gs_config.py @@ -53,6 +53,13 @@ class StringConfig: def __getitem__(self, key) -> GSC: return self.config[key] + def sort_config(self): + _config = {} + for i in self.config_list: + _config[i] = self.config[i] + self.config = _config + self.write_config() + def write_config(self): with open(self.CONFIG_PATH, 'wb') as file: file.write(msgjson.format(msgjson.encode(self.config), indent=4)) @@ -78,7 +85,7 @@ class StringConfig: self.config.pop(key) # 重新写回 - self.write_config() + self.sort_config() def get_config(self, key: str) -> Any: if key in self.config: