Пример #1
0
 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)