mirror of
https://github.com/eternnoir/pyTelegramBotAPI.git
synced 2023-08-10 21:12:57 +03:00
Fix backward comptability
This commit is contained in:
parent
e860f114c6
commit
26db76f207
@ -1,4 +1,5 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
import copy
|
||||||
import time
|
import time
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
|
||||||
@ -89,8 +90,9 @@ def _make_request(token, method_name, method='get', params=None, files=None):
|
|||||||
connect_timeout = CONNECT_TIMEOUT
|
connect_timeout = CONNECT_TIMEOUT
|
||||||
|
|
||||||
if files:
|
if files:
|
||||||
|
files_copy = copy.deepcopy(files)
|
||||||
# process types.InputFile
|
# process types.InputFile
|
||||||
for key, value in files.items():
|
for key, value in files_copy.items():
|
||||||
if isinstance(value, types.InputFile):
|
if isinstance(value, types.InputFile):
|
||||||
files[key] = value.file
|
files[key] = value.file
|
||||||
|
|
||||||
|
@ -83,11 +83,17 @@ async def _process_request(token, url, method='get', params=None, files=None, re
|
|||||||
if not got_result:
|
if not got_result:
|
||||||
raise RequestTimeout("Request timeout. Request: method={0} url={1} params={2} files={3} request_timeout={4}".format(method, url, params, files, request_timeout, current_try))
|
raise RequestTimeout("Request timeout. Request: method={0} url={1} params={2} files={3} request_timeout={4}".format(method, url, params, files, request_timeout, current_try))
|
||||||
|
|
||||||
|
def _prepare_file(obj):
|
||||||
|
"""
|
||||||
|
Prepares file for upload.
|
||||||
|
"""
|
||||||
|
name = getattr(obj, 'name', None)
|
||||||
|
if name and isinstance(name, str) and name[0] != '<' and name[-1] != '>':
|
||||||
|
return os.path.basename(name)
|
||||||
|
|
||||||
def _prepare_data(params=None, files=None):
|
def _prepare_data(params=None, files=None):
|
||||||
"""
|
"""
|
||||||
prepare data for request.
|
Adds the parameters and files to the request.
|
||||||
|
|
||||||
:param params:
|
:param params:
|
||||||
:param files:
|
:param files:
|
||||||
@ -98,13 +104,20 @@ def _prepare_data(params=None, files=None):
|
|||||||
if params:
|
if params:
|
||||||
for key, value in params.items():
|
for key, value in params.items():
|
||||||
data.add_field(key, str(value))
|
data.add_field(key, str(value))
|
||||||
|
|
||||||
if files:
|
if files:
|
||||||
for key, f in files.items():
|
for key, f in files.items():
|
||||||
if isinstance(f, types.InputFile):
|
if isinstance(f, tuple):
|
||||||
f = f.file
|
if len(f) == 2:
|
||||||
|
file_name, file = f
|
||||||
|
else:
|
||||||
|
raise ValueError('Tuple must have exactly 2 elements: filename, fileobj')
|
||||||
|
elif isinstance(f, types.InputFile):
|
||||||
|
file_name = f.file_name
|
||||||
|
file = f.file
|
||||||
|
else:
|
||||||
|
file_name, file = _prepare_file(f) or key, f
|
||||||
|
|
||||||
data.add_field(key, f, filename=key)
|
data.add_field(key, file, filename=file_name)
|
||||||
|
|
||||||
return data
|
return data
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user