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