From 5e19965b0c42c55fe7561a3b94b42ca25c2d685f Mon Sep 17 00:00:00 2001
From: Florent Gallaire <fgallaire@gmail.com>
Date: Sat, 22 Aug 2020 16:11:52 +0200
Subject: [PATCH] Fix 'NoneType' object assignment error from #892 and #954

---
 telebot/apihelper.py | 25 ++++++++++++++++++++-----
 1 file changed, 20 insertions(+), 5 deletions(-)

diff --git a/telebot/apihelper.py b/telebot/apihelper.py
index 5d84add..e75ed53 100644
--- a/telebot/apihelper.py
+++ b/telebot/apihelper.py
@@ -498,7 +498,10 @@ def send_video(token, chat_id, data, duration=None, caption=None, reply_to_messa
         payload['connect-timeout'] = timeout
     if thumb:
         if not util.is_string(thumb):
-            files['thumb'] = thumb
+            if files:
+                files['thumb'] = thumb
+            else:
+                files = {'thumb': thumb}
         else:
             payload['thumb'] = thumb
     if width:
@@ -533,7 +536,10 @@ def send_animation(token, chat_id, data, duration=None, caption=None, reply_to_m
         payload['connect-timeout'] = timeout
     if thumb:
         if not util.is_string(thumb):
-            files['thumb'] = thumb
+            if files:
+                files['thumb'] = thumb
+            else:
+                files = {'thumb': thumb}
         else:
             payload['thumb'] = thumb
     return _make_request(token, method_url, params=payload, files=files, method='post')
@@ -590,7 +596,10 @@ def send_video_note(token, chat_id, data, duration=None, length=None, reply_to_m
         payload['connect-timeout'] = timeout
     if thumb:
         if not util.is_string(thumb):
-            files['thumb'] = thumb
+            if files:
+                files['thumb'] = thumb
+            else:
+                files = {'thumb': thumb}
         else:
             payload['thumb'] = thumb
     return _make_request(token, method_url, params=payload, files=files, method='post')
@@ -625,7 +634,10 @@ def send_audio(token, chat_id, audio, caption=None, duration=None, performer=Non
         payload['connect-timeout'] = timeout
     if thumb:
         if not util.is_string(thumb):
-            files['thumb'] = thumb
+            if files:
+                files['thumb'] = thumb
+            else:
+                files = {'thumb': thumb}
         else:
             payload['thumb'] = thumb
     return _make_request(token, method_url, params=payload, files=files, method='post')
@@ -654,7 +666,10 @@ def send_data(token, chat_id, data, data_type, reply_to_message_id=None, reply_m
         payload['caption'] = caption
     if thumb:
         if not util.is_string(thumb):
-            files['thumb'] = thumb
+            if files:
+                files['thumb'] = thumb
+            else:
+                files = {'thumb': thumb}
         else:
             payload['thumb'] = thumb
     return _make_request(token, method_url, params=payload, files=files, method='post')