adapt_parameters method renamed and cleaned

This commit is contained in:
Davte 2019-06-29 20:27:46 +02:00
parent 46a8e2f81b
commit 5aade209d3

View File

@ -94,23 +94,18 @@ class TelegramBot(object):
return response['result'] return response['result']
@staticmethod @staticmethod
def clean_parameters(parameters, exclude=[]): def adapt_parameters(parameters, exclude=[]):
"""Remove key-value couples from `parameters` dict. """Build a aiohttp.FormData object from given `paramters`.
Remove the couple having `self` as key, keys in `exclude` list, Exclude `self`, empty values and parameters in `exclude` list.
and couples with empty value. Cast integers to string to avoid TypeError during json serialization.
Adapt files parameters.
""" """
exclude.append('self') exclude.append('self')
data = aiohttp.FormData() data = aiohttp.FormData()
for key, value in parameters.items(): for key, value in parameters.items():
if (key in exclude or value is None): if not (key in exclude or value is None):
pass if type(value) is int:
elif type(value) is int: value = str(value)
data.add_field(key, str(value))
elif key in ['photo', 'audio', 'document']:
data.add_field(key, value)
else:
data.add_field(key, value) data.add_field(key, value)
return data return data
@ -151,7 +146,7 @@ class TelegramBot(object):
""" """
response_object = None response_object = None
session, session_must_be_closed = self.get_session(method) session, session_must_be_closed = self.get_session(method)
parameters = self.clean_parameters(parameters, exclude=exclude) parameters = self.adapt_parameters(parameters, exclude=exclude)
try: try:
async with session.post( async with session.post(
"https://api.telegram.org/bot" "https://api.telegram.org/bot"