2022-07-30 01:25:16 +08:00
|
|
|
import re
|
|
|
|
|
|
|
|
string = 'Host: ${username}\nX-Online-Host: ${Ua}\n'
|
|
|
|
vars_dict = {
|
|
|
|
"username": 'www.baidu.com:80'
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
# print(re.findall('\${(.*?)}', string))
|
|
|
|
|
|
|
|
|
|
|
|
def _sub_variable(text=None, vars_dict=None):
|
|
|
|
if not isinstance(text, str):
|
|
|
|
return text
|
|
|
|
for variable_name in re.findall('\${(.*?)}', text):
|
|
|
|
try:
|
|
|
|
value = vars_dict[variable_name]
|
|
|
|
except:
|
|
|
|
value = ''
|
|
|
|
text = text.replace('${%s}' % variable_name, str(value))
|
|
|
|
return text
|
|
|
|
|
|
|
|
|
|
|
|
def _sub_variable_auto(data=None, vars_dict=None):
|
|
|
|
if isinstance(data, list):
|
|
|
|
for i in range(len(data)):
|
|
|
|
if not isinstance(data[i], str):
|
|
|
|
continue
|
|
|
|
data[i] = _sub_variable(text=data[i], vars_dict=vars_dict)
|
|
|
|
return data
|
|
|
|
if isinstance(data, dict):
|
|
|
|
for k in data.keys():
|
|
|
|
if not isinstance(data[k], str):
|
|
|
|
continue
|
|
|
|
data[k] = _sub_variable(text=data[k], vars_dict=vars_dict)
|
|
|
|
return data
|
|
|
|
if isinstance(data, str): return _sub_variable(data, vars_dict=vars_dict)
|
|
|
|
return data
|
|
|
|
|
|
|
|
|
|
|
|
# print(_sub_variable(text=string, vars_dict=vars_dict))
|
|
|
|
print(_sub_variable_auto(data=["Host: ${username}\n", "X-Host: ${username}\n"], vars_dict=vars_dict))
|
|
|
|
print(_sub_variable_auto(data={
|
|
|
|
"X-Online-Host": '${username}:443',
|
|
|
|
"Host": '${username}${username}',
|
|
|
|
2: 163,
|
|
|
|
3: None
|
|
|
|
}, vars_dict=vars_dict))
|
|
|
|
|
|
|
|
print(_sub_variable_auto(data='H=${username}', vars_dict=vars_dict))
|
|
|
|
print(_sub_variable_auto(data=False, vars_dict=vars_dict))
|
|
|
|
|
|
|
|
# a = '123'
|
|
|
|
# def aa(text=''):
|
|
|
|
# text = text.replace('1','一')
|
|
|
|
# return text
|
|
|
|
#
|
|
|
|
# print(aa(a))
|
|
|
|
# print(a)
|
|
|
|
|
|
|
|
r = {"r": 1}
|
|
|
|
s = {"r": 2}
|
|
|
|
d = {}
|
|
|
|
|
|
|
|
d.update(r)
|
|
|
|
d.update(s)
|
|
|
|
print(d)
|