mirror of
https://github.com/eternnoir/pyTelegramBotAPI.git
synced 2023-08-10 21:12:57 +03:00
add PollAnswer, poll_answer_handler; make User Serializable and Dictionaryble; some pep fixes
This commit is contained in:
@@ -119,6 +119,7 @@ class TeleBot:
|
||||
self.shipping_query_handlers = []
|
||||
self.pre_checkout_query_handlers = []
|
||||
self.poll_handlers = []
|
||||
self.poll_answer_handlers = []
|
||||
|
||||
self.typed_middleware_handlers = {
|
||||
'message': [],
|
||||
@@ -293,6 +294,7 @@ class TeleBot:
|
||||
new_shipping_querys = []
|
||||
new_pre_checkout_querys = []
|
||||
new_polls = []
|
||||
new_poll_answers = []
|
||||
|
||||
for update in updates:
|
||||
if apihelper.ENABLE_MIDDLEWARE:
|
||||
@@ -320,6 +322,8 @@ class TeleBot:
|
||||
new_pre_checkout_querys.append(update.pre_checkout_query)
|
||||
if update.poll:
|
||||
new_polls.append(update.poll)
|
||||
if update.poll_answer:
|
||||
new_poll_answers.append(update.poll_answer)
|
||||
|
||||
logger.debug('Received {0} new updates'.format(len(updates)))
|
||||
if len(new_messages) > 0:
|
||||
@@ -342,6 +346,8 @@ class TeleBot:
|
||||
self.process_new_pre_checkout_query(new_pre_checkout_querys)
|
||||
if len(new_polls) > 0:
|
||||
self.process_new_poll(new_polls)
|
||||
if len(new_poll_answers) > 0:
|
||||
self.process_new_poll_answer(new_poll_answers)
|
||||
|
||||
def process_new_messages(self, new_messages):
|
||||
self._notify_next_handlers(new_messages)
|
||||
@@ -376,6 +382,9 @@ class TeleBot:
|
||||
def process_new_poll(self, polls):
|
||||
self._notify_command_handlers(self.poll_handlers, polls)
|
||||
|
||||
def process_new_poll_answer(self, poll_answers):
|
||||
self._notify_command_handlers(self.poll_answer_handlers, poll_answers)
|
||||
|
||||
def process_middlewares(self, update):
|
||||
for update_type, middlewares in self.typed_middleware_handlers.items():
|
||||
if getattr(update, update_type) is not None:
|
||||
@@ -1561,7 +1570,7 @@ class TeleBot:
|
||||
"""
|
||||
return {
|
||||
'function': handler,
|
||||
'filters' : filters
|
||||
'filters': filters
|
||||
}
|
||||
|
||||
def middleware_handler(self, update_types=None):
|
||||
@@ -1900,6 +1909,28 @@ class TeleBot:
|
||||
"""
|
||||
self.poll_handlers.append(handler_dict)
|
||||
|
||||
def poll_answer_handler(self, func=None, **kwargs):
|
||||
"""
|
||||
Poll_answer request handler
|
||||
:param func:
|
||||
:param kwargs:
|
||||
:return:
|
||||
"""
|
||||
def decorator(handler):
|
||||
handler_dict = self._build_handler_dict(handler, func=func, **kwargs)
|
||||
self.add_poll_answer_handler(handler_dict)
|
||||
return handler
|
||||
|
||||
return decorator
|
||||
|
||||
def add_poll_answer_handler(self, handler_dict):
|
||||
"""
|
||||
Adds a poll_answer request handler
|
||||
:param handler_dict:
|
||||
:return:
|
||||
"""
|
||||
self.poll_answer_handlers.append(handler_dict)
|
||||
|
||||
def _test_message_handler(self, message_handler, message):
|
||||
"""
|
||||
Test message handler
|
||||
|
||||
Reference in New Issue
Block a user