def polling(self): try: new_offset = None while True: req = self.method("getUpdates", { 'offset': new_offset, 'timeout': 30, 'limit': 40 }) if not 'result' in req: continue if len(req['result']) == 0: continue #print(req) new_offset = int(req["result"][-1]['update_id']) + 1 loop = Async() for event in req['result']: if 'callback_query' in event: if 'inline_query' in event['callback_query']: event = InlineQuery( event['callback_query']['inline_query'], self) loop.addTask(event) continue event = CallBackQuery(event['callback_query'], self) loop.addTask(self.callbackHandler(event)) continue elif 'inline_query' in event: event = InlineQuery(event['inline_query'], self) loop.addTask(self.inlineHandler(event)) continue event = Message(event, self) textString = str(event.chat_id) + "_" + str( event.user['id']) if textString in self.nextMessages: print("in") if self.nextMessages[textString]['count'] == 0: event.params = self.nextMessages[textString][ 'params'] loop.addTask(self.nextMessages[textString] ['handler'](event)) self.nextMessages[textString]['count'] = 1 del self.nextMessages[textString] continue if event == None: continue loop.addTask(self.handler(event)) loop.run() except KeyboardInterrupt: sys.exit(0)