1
0
mirror of https://github.com/yt-dlp/yt-dlp.git synced 2025-06-27 17:08:32 +00:00
This commit is contained in:
doe1080 2025-06-17 16:20:43 +01:00 committed by GitHub
commit 5bf88a25b0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 8 additions and 4 deletions

View File

@ -798,6 +798,9 @@ def test_update_url_query(self):
self.assertEqual(parse_qs(update_url_query(
'http://example.com/path', {'test': '第二行тест'})),
parse_qs('http://example.com/path?test=%E7%AC%AC%E4%BA%8C%E8%A1%8C%D1%82%D0%B5%D1%81%D1%82'))
self.assertEqual(update_url_query(
'http://example.com/path', {'filter': 'type(image/png)'}, safe='()'),
'http://example.com/path?filter=type(image%2Fpng)')
def test_multipart_encode(self):
self.assertEqual(

View File

@ -2574,10 +2574,11 @@ def urlencode_postdata(*args, **kargs):
@partial_application
def update_url(url, *, query_update=None, **kwargs):
def update_url(url, *, query_update=None, safe='', **kwargs):
"""Replace URL components specified by kwargs
@param url str or parse url tuple
@param query_update update query
@param safe characters not percent-encoded in query
@returns str
"""
if isinstance(url, str):
@ -2590,13 +2591,13 @@ def update_url(url, *, query_update=None, **kwargs):
kwargs['query'] = urllib.parse.urlencode({
**urllib.parse.parse_qs(url.query),
**query_update,
}, True)
}, True, safe)
return urllib.parse.urlunparse(url._replace(**kwargs))
@partial_application
def update_url_query(url, query):
return update_url(url, query_update=query)
def update_url_query(url, query, *, safe=''):
return update_url(url, query_update=query, safe=safe)
def _multipart_encode_impl(data, boundary):