@@ -150,11 +150,12 @@ def pathSplit(url):
150
150
return result
151
151
152
152
153
- def mixPayload (url , payloads , scope = []):
153
+ def mixPayload (url , payloads , scope = [], append = False ):
154
154
'''
155
155
:param url: Generic URL.
156
156
:param payloads: Payloads list
157
157
:param scope: [optional] list, e.g. [params, path, query, fragment]
158
+ :param append: append payload for query and fragment, default is replace
158
159
:return: list
159
160
'''
160
161
@@ -186,13 +187,19 @@ def mixPayload(url, payloads, scope=[]):
186
187
if not scope or 'query' in scope :
187
188
for k in qs_dict .keys ():
188
189
tmp_dict = copy .deepcopy (qs_dict )
189
- tmp_dict [k ] = p
190
+ if append :
191
+ tmp_dict [k ] = tmp_dict [k ] + p
192
+ else :
193
+ tmp_dict [k ] = p
190
194
tmp_qs = unquote (urlencode (tmp_dict ))
191
195
192
196
result .add (urlunparse ([u .scheme , u .netloc , u .path , u .params , tmp_qs , u .fragment ]))
193
197
194
198
if (not scope or 'fragment' in scope ) and u .fragment :
195
- result .add (urlunparse ([u .scheme , u .netloc , u .path , u .params , u .query , p ]))
199
+ if append :
200
+ result .add (urlunparse ([u .scheme , u .netloc , u .path , u .params , u .query , u .fragment + p ]))
201
+ else :
202
+ result .add (urlunparse ([u .scheme , u .netloc , u .path , u .params , u .query , p ]))
196
203
197
204
result = list (result )
198
205
0 commit comments