update
This commit is contained in:
36
lib/support/telepot2/aio/hack.py
Normal file
36
lib/support/telepot2/aio/hack.py
Normal file
@@ -0,0 +1,36 @@
|
||||
try:
|
||||
import aiohttp
|
||||
from urllib.parse import quote
|
||||
|
||||
def content_disposition_header(disptype, quote_fields=True, **params):
|
||||
if not disptype or not (aiohttp.helpers.TOKEN > set(disptype)):
|
||||
raise ValueError('bad content disposition type {!r}'
|
||||
''.format(disptype))
|
||||
|
||||
value = disptype
|
||||
if params:
|
||||
lparams = []
|
||||
for key, val in params.items():
|
||||
if not key or not (aiohttp.helpers.TOKEN > set(key)):
|
||||
raise ValueError('bad content disposition parameter'
|
||||
' {!r}={!r}'.format(key, val))
|
||||
|
||||
###### Do not encode filename
|
||||
if key == 'filename':
|
||||
qval = val
|
||||
else:
|
||||
qval = quote(val, '') if quote_fields else val
|
||||
|
||||
lparams.append((key, '"%s"' % qval))
|
||||
|
||||
sparams = '; '.join('='.join(pair) for pair in lparams)
|
||||
value = '; '.join((value, sparams))
|
||||
return value
|
||||
|
||||
# Override original version
|
||||
aiohttp.payload.content_disposition_header = content_disposition_header
|
||||
|
||||
# In case aiohttp changes and this hack no longer works, I don't want it to
|
||||
# bog down the entire library.
|
||||
except (ImportError, AttributeError):
|
||||
pass
|
||||
Reference in New Issue
Block a user