mirror of
https://github.com/eternnoir/pyTelegramBotAPI.git
synced 2023-08-10 21:12:57 +03:00
Merge pull request #906 from daveusa31/master
Added ability to set default parse_mode in main TeleBot class.
This commit is contained in:
commit
e9f925e14c
@ -85,15 +85,17 @@ class TeleBot:
|
||||
"""
|
||||
|
||||
def __init__(
|
||||
self, token, threaded=True, skip_pending=False, num_threads=2,
|
||||
self, token, parse_mode=None, threaded=True, skip_pending=False, num_threads=2,
|
||||
next_step_backend=None, reply_backend=None
|
||||
):
|
||||
"""
|
||||
:param token: bot API token
|
||||
:param parse_mode: default parse_mode
|
||||
:return: Telebot object.
|
||||
"""
|
||||
|
||||
self.token = token
|
||||
self.parse_mode = parse_mode
|
||||
self.update_listener = []
|
||||
self.skip_pending = skip_pending
|
||||
|
||||
@ -632,6 +634,8 @@ class TeleBot:
|
||||
:param timeout:
|
||||
:return: API reply.
|
||||
"""
|
||||
parse_mode = self.parse_mode if not parse_mode else parse_mode
|
||||
|
||||
return types.Message.de_json(
|
||||
apihelper.send_message(self.token, chat_id, text, disable_web_page_preview, reply_to_message_id,
|
||||
reply_markup, parse_mode, disable_notification, timeout))
|
||||
@ -689,6 +693,8 @@ class TeleBot:
|
||||
:param reply_markup:
|
||||
:return: API reply.
|
||||
"""
|
||||
parse_mode = self.parse_mode if not parse_mode else parse_mode
|
||||
|
||||
return types.Message.de_json(
|
||||
apihelper.send_photo(self.token, chat_id, photo, caption, reply_to_message_id, reply_markup,
|
||||
parse_mode, disable_notification, timeout))
|
||||
@ -731,6 +737,8 @@ class TeleBot:
|
||||
:param timeout:
|
||||
:return: Message
|
||||
"""
|
||||
parse_mode = self.parse_mode if not parse_mode else parse_mode
|
||||
|
||||
return types.Message.de_json(
|
||||
apihelper.send_voice(self.token, chat_id, voice, caption, duration, reply_to_message_id, reply_markup,
|
||||
parse_mode, disable_notification, timeout))
|
||||
@ -749,6 +757,8 @@ class TeleBot:
|
||||
:param timeout:
|
||||
:return: API reply.
|
||||
"""
|
||||
parse_mode = self.parse_mode if not parse_mode else parse_mode
|
||||
|
||||
return types.Message.de_json(
|
||||
apihelper.send_data(self.token, chat_id, data, 'document', reply_to_message_id, reply_markup,
|
||||
parse_mode, disable_notification, timeout, caption=caption))
|
||||
@ -785,9 +795,11 @@ class TeleBot:
|
||||
:param reply_markup:
|
||||
:param disable_notification:
|
||||
:param timeout:
|
||||
:param thumb:
|
||||
:param thumb:
|
||||
:return:
|
||||
"""
|
||||
parse_mode = self.parse_mode if not parse_mode else parse_mode
|
||||
|
||||
return types.Message.de_json(
|
||||
apihelper.send_video(self.token, chat_id, data, duration, caption, reply_to_message_id, reply_markup,
|
||||
parse_mode, supports_streaming, disable_notification, timeout, thumb))
|
||||
@ -807,6 +819,8 @@ class TeleBot:
|
||||
:param timeout:
|
||||
:return:
|
||||
"""
|
||||
parse_mode = self.parse_mode if not parse_mode else parse_mode
|
||||
|
||||
return types.Message.de_json(
|
||||
apihelper.send_animation(self.token, chat_id, animation, duration, caption, reply_to_message_id, reply_markup,
|
||||
parse_mode, disable_notification, timeout))
|
||||
@ -1165,6 +1179,8 @@ class TeleBot:
|
||||
:param reply_markup:
|
||||
:return:
|
||||
"""
|
||||
parse_mode = self.parse_mode if not parse_mode else parse_mode
|
||||
|
||||
result = apihelper.edit_message_text(self.token, text, chat_id, message_id, inline_message_id, parse_mode,
|
||||
disable_web_page_preview, reply_markup)
|
||||
if type(result) == bool: # if edit inline message return is bool not Message.
|
||||
@ -1367,6 +1383,8 @@ class TeleBot:
|
||||
:param reply_markup:
|
||||
:return:
|
||||
"""
|
||||
parse_mode = self.parse_mode if not parse_mode else parse_mode
|
||||
|
||||
result = apihelper.edit_message_caption(self.token, caption, chat_id, message_id, inline_message_id,
|
||||
parse_mode, reply_markup)
|
||||
if type(result) == bool:
|
||||
|
100
telebot/util.py
100
telebot/util.py
@ -25,67 +25,67 @@ thread_local = threading.local()
|
||||
|
||||
|
||||
class WorkerThread(threading.Thread):
|
||||
count = 0
|
||||
count = 0
|
||||
|
||||
def __init__(self, exception_callback=None, queue=None, name=None):
|
||||
if not name:
|
||||
name = "WorkerThread{0}".format(self.__class__.count + 1)
|
||||
self.__class__.count += 1
|
||||
if not queue:
|
||||
queue = Queue.Queue()
|
||||
def __init__(self, exception_callback=None, queue=None, name=None):
|
||||
if not name:
|
||||
name = "WorkerThread{0}".format(self.__class__.count + 1)
|
||||
self.__class__.count += 1
|
||||
if not queue:
|
||||
queue = Queue.Queue()
|
||||
|
||||
threading.Thread.__init__(self, name=name)
|
||||
self.queue = queue
|
||||
self.daemon = True
|
||||
threading.Thread.__init__(self, name=name)
|
||||
self.queue = queue
|
||||
self.daemon = True
|
||||
|
||||
self.received_task_event = threading.Event()
|
||||
self.done_event = threading.Event()
|
||||
self.exception_event = threading.Event()
|
||||
self.continue_event = threading.Event()
|
||||
self.received_task_event = threading.Event()
|
||||
self.done_event = threading.Event()
|
||||
self.exception_event = threading.Event()
|
||||
self.continue_event = threading.Event()
|
||||
|
||||
self.exception_callback = exception_callback
|
||||
self.exc_info = None
|
||||
self._running = True
|
||||
self.start()
|
||||
self.exception_callback = exception_callback
|
||||
self.exc_info = None
|
||||
self._running = True
|
||||
self.start()
|
||||
|
||||
def run(self):
|
||||
while self._running:
|
||||
try:
|
||||
task, args, kwargs = self.queue.get(block=True, timeout=.5)
|
||||
self.continue_event.clear()
|
||||
self.received_task_event.clear()
|
||||
self.done_event.clear()
|
||||
self.exception_event.clear()
|
||||
logger.debug("Received task")
|
||||
self.received_task_event.set()
|
||||
def run(self):
|
||||
while self._running:
|
||||
try:
|
||||
task, args, kwargs = self.queue.get(block=True, timeout=.5)
|
||||
self.continue_event.clear()
|
||||
self.received_task_event.clear()
|
||||
self.done_event.clear()
|
||||
self.exception_event.clear()
|
||||
logger.debug("Received task")
|
||||
self.received_task_event.set()
|
||||
|
||||
task(*args, **kwargs)
|
||||
logger.debug("Task complete")
|
||||
self.done_event.set()
|
||||
except Queue.Empty:
|
||||
pass
|
||||
except Exception as e:
|
||||
logger.error(type(e).__name__ + " occurred, args=" + str(e.args) + "\n" + traceback.format_exc())
|
||||
self.exc_info = sys.exc_info()
|
||||
self.exception_event.set()
|
||||
task(*args, **kwargs)
|
||||
logger.debug("Task complete")
|
||||
self.done_event.set()
|
||||
except Queue.Empty:
|
||||
pass
|
||||
except Exception as e:
|
||||
logger.error(type(e).__name__ + " occurred, args=" + str(e.args) + "\n" + traceback.format_exc())
|
||||
self.exc_info = sys.exc_info()
|
||||
self.exception_event.set()
|
||||
|
||||
if self.exception_callback:
|
||||
self.exception_callback(self, self.exc_info)
|
||||
self.continue_event.wait()
|
||||
if self.exception_callback:
|
||||
self.exception_callback(self, self.exc_info)
|
||||
self.continue_event.wait()
|
||||
|
||||
def put(self, task, *args, **kwargs):
|
||||
self.queue.put((task, args, kwargs))
|
||||
def put(self, task, *args, **kwargs):
|
||||
self.queue.put((task, args, kwargs))
|
||||
|
||||
def raise_exceptions(self):
|
||||
if self.exception_event.is_set():
|
||||
six.reraise(self.exc_info[0], self.exc_info[1], self.exc_info[2])
|
||||
def raise_exceptions(self):
|
||||
if self.exception_event.is_set():
|
||||
six.reraise(self.exc_info[0], self.exc_info[1], self.exc_info[2])
|
||||
|
||||
def clear_exceptions(self):
|
||||
self.exception_event.clear()
|
||||
self.continue_event.set()
|
||||
def clear_exceptions(self):
|
||||
self.exception_event.clear()
|
||||
self.continue_event.set()
|
||||
|
||||
def stop(self):
|
||||
self._running = False
|
||||
def stop(self):
|
||||
self._running = False
|
||||
|
||||
|
||||
class ThreadPool:
|
||||
|
Loading…
Reference in New Issue
Block a user