11import json
2- from enum import Enum
32from random import choice
43from typing import Union
54
@@ -39,7 +38,7 @@ def tls_config(self, sni=None, fp=None, alpn=None, ais=False, ech_config_list=No
3938 if alpn :
4039 tls_settings ["alpn" ] = alpn
4140
42- return self ._remove_none_values (tls_settings )
41+ return self ._normalize_and_remove_none_values (tls_settings )
4342
4443 def reality_config (self , sni = None , fp = None , pbk = None , sid = None , spx = None , mldsa65_verify = None ) -> dict :
4544 reality_settings = {
@@ -52,7 +51,7 @@ def reality_config(self, sni=None, fp=None, pbk=None, sid=None, spx=None, mldsa6
5251 "mldsa65Verify" : mldsa65_verify ,
5352 }
5453
55- return self ._remove_none_values (reality_settings )
54+ return self ._normalize_and_remove_none_values (reality_settings )
5655
5756 def ws_config (
5857 self ,
@@ -70,7 +69,7 @@ def ws_config(
7069 }
7170 if random_user_agent :
7271 ws_settings ["headers" ]["User-Agent" ] = choice (self .user_agent_list )
73- return self ._remove_none_values (ws_settings )
72+ return self ._normalize_and_remove_none_values (ws_settings )
7473
7574 def httpupgrade_config (
7675 self , path : str = "" , host : str = "" , random_user_agent : bool = False , http_headers = None
@@ -83,7 +82,7 @@ def httpupgrade_config(
8382 if random_user_agent :
8483 httpupgrade_settings ["headers" ]["User-Agent" ] = choice (self .user_agent_list )
8584
86- return self ._remove_none_values (httpupgrade_settings )
85+ return self ._normalize_and_remove_none_values (httpupgrade_settings )
8786
8887 def xhttp_config (
8988 self ,
@@ -102,7 +101,6 @@ def xhttp_config(
102101 ) -> dict :
103102 xhttp_settings = {}
104103
105- mode = mode .value if isinstance (mode , Enum ) else mode
106104 xhttp_settings ["mode" ] = mode
107105 if path :
108106 xhttp_settings ["path" ] = path
@@ -125,7 +123,7 @@ def xhttp_config(
125123 extra ["headers" ]["User-Agent" ] = choice (self .user_agent_list )
126124
127125 xhttp_settings ["extra" ] = extra
128- return self ._remove_none_values (xhttp_settings )
126+ return self ._normalize_and_remove_none_values (xhttp_settings )
129127
130128 def grpc_config (
131129 self ,
@@ -152,7 +150,7 @@ def grpc_config(
152150 grpc_settings ["user_agent" ] = http_headers ["user-agent" ]
153151 if random_user_agent :
154152 grpc_settings ["user_agent" ] = choice (self .grpc_user_agent_data )
155- return self ._remove_none_values (grpc_settings )
153+ return self ._normalize_and_remove_none_values (grpc_settings )
156154
157155 def tcp_config (
158156 self ,
@@ -220,7 +218,7 @@ def tcp_config(
220218 if random_user_agent :
221219 tcp_settings ["header" ]["request" ]["headers" ]["User-Agent" ] = [choice (self .user_agent_list )]
222220
223- return self ._remove_none_values (tcp_settings )
221+ return self ._normalize_and_remove_none_values (tcp_settings )
224222
225223 def http_config (
226224 self , path : str = "" , host : str = "" , random_user_agent : bool = False , http_headers : dict | None = None
@@ -232,11 +230,11 @@ def http_config(
232230 }
233231 if random_user_agent :
234232 http_settings ["headers" ]["User-Agent" ] = [choice (self .user_agent_list )]
235- return self ._remove_none_values (http_settings )
233+ return self ._normalize_and_remove_none_values (http_settings )
236234
237235 def quic_config (self , path = None , host = None , header = "none" ) -> dict :
238236 quicSettings = {"security" : host , "header" : {"type" : header }, "key" : path }
239- return self ._remove_none_values (quicSettings )
237+ return self ._normalize_and_remove_none_values (quicSettings )
240238
241239 def kcp_config (
242240 self ,
@@ -262,7 +260,7 @@ def kcp_config(
262260 "writeBufferSize" : writeBufferSize if writeBufferSize else 2 ,
263261 "seed" : seed ,
264262 }
265- return self ._remove_none_values (kcp_settings )
263+ return self ._normalize_and_remove_none_values (kcp_settings )
266264
267265 @staticmethod
268266 def stream_setting_config (
@@ -424,7 +422,7 @@ def make_dialer_outbound(
424422 "fragment" : fragment .get ("xray" ) if fragment else None ,
425423 "noises" : [{self .snake_to_camel (k ): v for k , v in noise .items ()} for noise in xray_noises ] or None ,
426424 }
427- dialer_settings = self ._remove_none_values (dialer_settings )
425+ dialer_settings = self ._normalize_and_remove_none_values (dialer_settings )
428426
429427 if dialer_settings :
430428 return {"tag" : dialer_tag , "protocol" : "freedom" , "settings" : dialer_settings }
@@ -665,7 +663,7 @@ def add(self, remark: str, address: str, inbound: dict, settings: dict):
665663
666664 mux_settings : dict = inbound .get ("mux_settings" , {})
667665 if mux_settings and (xray_mux := mux_settings .get ("xray" )):
668- xray_mux = self ._remove_none_values (xray_mux )
666+ xray_mux = self ._normalize_and_remove_none_values (xray_mux )
669667 outbound ["mux" ] = xray_mux
670668
671669 self .add_config (remarks = remark , outbounds = outbounds )
0 commit comments