def Execute(self, url, params=None, data=None, headers=None):
        try:
            r = requests.post(url, params=params, data=data, headers=headers)
            if r.status_code != requests.codes.ok:
                raise MyError("Unable to execute the post request")

            tmp_dict = r.json()
            if ("ok" not in tmp_dict) or (GetParameter(tmp_dict, "ok")
                                          == False):
                raise MyError("Bad request")
            else:
                return GetParameter(tmp_dict, "result")
        except:
            raise MyError("Unable to execute the post request")
 def forwardMessage(self, forward_dict):
     try:
         url = self.bot_request_url + "forwardMessage"
         message_dict = self.Execute(url, params=forward_dict)
         return Message(message_dict)
     except:
         raise MyError("Unable to forward the message")
 def sendMessage(self, send_dict):
     try:
         url = self.bot_request_url + "sendMessage"
         message_dict = self.Execute(url, params=send_dict)
         return Message(message_dict)
     except:
         raise MyError("Unable to send the message")
 def getUpdate(self, getupd_dict):
     try:
         url = self.bot_request_url + "getUpdates"
         upd_arr = self.Execute(url, params=getupd_dict)
         return [Update(i) for i in upd_arr]
     except:
         raise MyError("Unable to retrieve updates")
 def sendLocation(self, location_dict):
     try:
         url = self.bot_request_url + "sendLocation"
         tmp_dict = self.Execute(url, location_dict)
         return Message(tmp_dict)
     except:
         raise MyError("Unable to send the location")
 def __init__(self, token):
     try:
         os.system("clear")
         self.bot_token = token
         self.bot_request_url = "https://api.telegram.org/bot" + self.bot_token + "/"
         print(
             "           ***** Welcome to the Telegram Bot Carlo's Interface *****\n\n\n"
         )
         PrintDict(self.getMe().user_dict)
     except:
         raise MyError("Unable to init the bot")
 def sendVideo(self, param_dict, video_path):
     try:
         header = "video/mp4"
         filename = GetFormat(video_path, "/")
         m = MultipartEncoder(
             fields={"video": (filename, open(video_path, "rb"), header)})
         tmp_message = self.Execute(
             self.bot_request_url + "sendVideo",
             params=param_dict,
             data=m,
             headers={"Content-Type": m.content_type})
         return Message(tmp_message)
     except:
         raise MyError("Unable to send video")
 def sendSticker(self, param_dict, sticker_path):
     try:
         header = "image/webp"
         filename = GetFormat(sticker_path, "/")
         m = MultipartEncoder(fields={
             "sticker": (filename, open(sticker_path, "rb"), header)
         })
         tmp_message = self.Execute(
             self.bot_request_url + "sendSticker",
             params=param_dict,
             data=m,
             headers={"Content-Type": m.content_type})
         return Message(tmp_message)
     except:
         raise MyError("Unable to send sticker")
 def sendDocument(self, param_dict, document_path):
     try:
         header = "text/plain"
         filename = GetFormat(document_path, "/")
         m = MultipartEncoder(fields={
             "document": (filename, open(document_path, "rb"), header)
         })
         tmp_message = self.Execute(
             self.bot_request_url + "sendDocument",
             params=param_dict,
             data=m,
             headers={"Content-Type": m.content_type})
         return Message(tmp_message)
     except:
         raise MyError("Unable to send document")
 def getMe(self):
     try:
         me_dict = self.Execute(self.bot_request_url + "getMe")
         return User(me_dict)
     except:
         raise MyError("Unable to getMe")
 def sendChatAction(self, chat_dict):
     try:
         url = self.bot_request_url + "sendChatAction"
         self.Execute(url, params=chat_dict)
     except:
         raise MyError("Unable to send chat action")