Queer European MD passionate about IT
Sfoglia il codice sorgente

adapt_parameters method renamed and cleaned

Davte 5 anni fa
parent
commit
5aade209d3
1 ha cambiato i file con 8 aggiunte e 13 eliminazioni
  1. 8 13
      davtelepot/bot.py

+ 8 - 13
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"