Skip to content

Commit e9f925e

Browse files
authored
Merge pull request eternnoir#906 from daveusa31/master
Added ability to set default parse_mode in main TeleBot class.
2 parents 30664f3 + 0304e65 commit e9f925e

File tree

2 files changed

+81
-63
lines changed

2 files changed

+81
-63
lines changed

telebot/__init__.py

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,15 +85,17 @@ class TeleBot:
8585
"""
8686

8787
def __init__(
88-
self, token, threaded=True, skip_pending=False, num_threads=2,
88+
self, token, parse_mode=None, threaded=True, skip_pending=False, num_threads=2,
8989
next_step_backend=None, reply_backend=None
9090
):
9191
"""
9292
:param token: bot API token
93+
:param parse_mode: default parse_mode
9394
:return: Telebot object.
9495
"""
9596

9697
self.token = token
98+
self.parse_mode = parse_mode
9799
self.update_listener = []
98100
self.skip_pending = skip_pending
99101

@@ -632,6 +634,8 @@ def send_message(self, chat_id, text, disable_web_page_preview=None, reply_to_me
632634
:param timeout:
633635
:return: API reply.
634636
"""
637+
parse_mode = self.parse_mode if not parse_mode else parse_mode
638+
635639
return types.Message.de_json(
636640
apihelper.send_message(self.token, chat_id, text, disable_web_page_preview, reply_to_message_id,
637641
reply_markup, parse_mode, disable_notification, timeout))
@@ -689,6 +693,8 @@ def send_photo(self, chat_id, photo, caption=None, reply_to_message_id=None, rep
689693
:param reply_markup:
690694
:return: API reply.
691695
"""
696+
parse_mode = self.parse_mode if not parse_mode else parse_mode
697+
692698
return types.Message.de_json(
693699
apihelper.send_photo(self.token, chat_id, photo, caption, reply_to_message_id, reply_markup,
694700
parse_mode, disable_notification, timeout))
@@ -731,6 +737,8 @@ def send_voice(self, chat_id, voice, caption=None, duration=None, reply_to_messa
731737
:param timeout:
732738
:return: Message
733739
"""
740+
parse_mode = self.parse_mode if not parse_mode else parse_mode
741+
734742
return types.Message.de_json(
735743
apihelper.send_voice(self.token, chat_id, voice, caption, duration, reply_to_message_id, reply_markup,
736744
parse_mode, disable_notification, timeout))
@@ -749,6 +757,8 @@ def send_document(self, chat_id, data, reply_to_message_id=None, caption=None, r
749757
:param timeout:
750758
:return: API reply.
751759
"""
760+
parse_mode = self.parse_mode if not parse_mode else parse_mode
761+
752762
return types.Message.de_json(
753763
apihelper.send_data(self.token, chat_id, data, 'document', reply_to_message_id, reply_markup,
754764
parse_mode, disable_notification, timeout, caption=caption))
@@ -785,9 +795,11 @@ def send_video(self, chat_id, data, duration=None, caption=None, reply_to_messag
785795
:param reply_markup:
786796
:param disable_notification:
787797
:param timeout:
788-
:param thumb:
798+
:param thumb:
789799
:return:
790800
"""
801+
parse_mode = self.parse_mode if not parse_mode else parse_mode
802+
791803
return types.Message.de_json(
792804
apihelper.send_video(self.token, chat_id, data, duration, caption, reply_to_message_id, reply_markup,
793805
parse_mode, supports_streaming, disable_notification, timeout, thumb))
@@ -807,6 +819,8 @@ def send_animation(self, chat_id, animation, duration=None, caption=None, reply_
807819
:param timeout:
808820
:return:
809821
"""
822+
parse_mode = self.parse_mode if not parse_mode else parse_mode
823+
810824
return types.Message.de_json(
811825
apihelper.send_animation(self.token, chat_id, animation, duration, caption, reply_to_message_id, reply_markup,
812826
parse_mode, disable_notification, timeout))
@@ -1165,6 +1179,8 @@ def edit_message_text(self, text, chat_id=None, message_id=None, inline_message_
11651179
:param reply_markup:
11661180
:return:
11671181
"""
1182+
parse_mode = self.parse_mode if not parse_mode else parse_mode
1183+
11681184
result = apihelper.edit_message_text(self.token, text, chat_id, message_id, inline_message_id, parse_mode,
11691185
disable_web_page_preview, reply_markup)
11701186
if type(result) == bool: # if edit inline message return is bool not Message.
@@ -1367,6 +1383,8 @@ def edit_message_caption(self, caption, chat_id=None, message_id=None, inline_me
13671383
:param reply_markup:
13681384
:return:
13691385
"""
1386+
parse_mode = self.parse_mode if not parse_mode else parse_mode
1387+
13701388
result = apihelper.edit_message_caption(self.token, caption, chat_id, message_id, inline_message_id,
13711389
parse_mode, reply_markup)
13721390
if type(result) == bool:

telebot/util.py

Lines changed: 61 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -25,67 +25,67 @@
2525

2626

2727
class WorkerThread(threading.Thread):
28-
count = 0
29-
30-
def __init__(self, exception_callback=None, queue=None, name=None):
31-
if not name:
32-
name = "WorkerThread{0}".format(self.__class__.count + 1)
33-
self.__class__.count += 1
34-
if not queue:
35-
queue = Queue.Queue()
36-
37-
threading.Thread.__init__(self, name=name)
38-
self.queue = queue
39-
self.daemon = True
40-
41-
self.received_task_event = threading.Event()
42-
self.done_event = threading.Event()
43-
self.exception_event = threading.Event()
44-
self.continue_event = threading.Event()
45-
46-
self.exception_callback = exception_callback
47-
self.exc_info = None
48-
self._running = True
49-
self.start()
50-
51-
def run(self):
52-
while self._running:
53-
try:
54-
task, args, kwargs = self.queue.get(block=True, timeout=.5)
55-
self.continue_event.clear()
56-
self.received_task_event.clear()
57-
self.done_event.clear()
58-
self.exception_event.clear()
59-
logger.debug("Received task")
60-
self.received_task_event.set()
61-
62-
task(*args, **kwargs)
63-
logger.debug("Task complete")
64-
self.done_event.set()
65-
except Queue.Empty:
66-
pass
67-
except Exception as e:
68-
logger.error(type(e).__name__ + " occurred, args=" + str(e.args) + "\n" + traceback.format_exc())
69-
self.exc_info = sys.exc_info()
70-
self.exception_event.set()
71-
72-
if self.exception_callback:
73-
self.exception_callback(self, self.exc_info)
74-
self.continue_event.wait()
75-
76-
def put(self, task, *args, **kwargs):
77-
self.queue.put((task, args, kwargs))
78-
79-
def raise_exceptions(self):
80-
if self.exception_event.is_set():
81-
six.reraise(self.exc_info[0], self.exc_info[1], self.exc_info[2])
82-
83-
def clear_exceptions(self):
84-
self.exception_event.clear()
85-
self.continue_event.set()
86-
87-
def stop(self):
88-
self._running = False
28+
count = 0
29+
30+
def __init__(self, exception_callback=None, queue=None, name=None):
31+
if not name:
32+
name = "WorkerThread{0}".format(self.__class__.count + 1)
33+
self.__class__.count += 1
34+
if not queue:
35+
queue = Queue.Queue()
36+
37+
threading.Thread.__init__(self, name=name)
38+
self.queue = queue
39+
self.daemon = True
40+
41+
self.received_task_event = threading.Event()
42+
self.done_event = threading.Event()
43+
self.exception_event = threading.Event()
44+
self.continue_event = threading.Event()
45+
46+
self.exception_callback = exception_callback
47+
self.exc_info = None
48+
self._running = True
49+
self.start()
50+
51+
def run(self):
52+
while self._running:
53+
try:
54+
task, args, kwargs = self.queue.get(block=True, timeout=.5)
55+
self.continue_event.clear()
56+
self.received_task_event.clear()
57+
self.done_event.clear()
58+
self.exception_event.clear()
59+
logger.debug("Received task")
60+
self.received_task_event.set()
61+
62+
task(*args, **kwargs)
63+
logger.debug("Task complete")
64+
self.done_event.set()
65+
except Queue.Empty:
66+
pass
67+
except Exception as e:
68+
logger.error(type(e).__name__ + " occurred, args=" + str(e.args) + "\n" + traceback.format_exc())
69+
self.exc_info = sys.exc_info()
70+
self.exception_event.set()
71+
72+
if self.exception_callback:
73+
self.exception_callback(self, self.exc_info)
74+
self.continue_event.wait()
75+
76+
def put(self, task, *args, **kwargs):
77+
self.queue.put((task, args, kwargs))
78+
79+
def raise_exceptions(self):
80+
if self.exception_event.is_set():
81+
six.reraise(self.exc_info[0], self.exc_info[1], self.exc_info[2])
82+
83+
def clear_exceptions(self):
84+
self.exception_event.clear()
85+
self.continue_event.set()
86+
87+
def stop(self):
88+
self._running = False
8989

9090

9191
class ThreadPool:

0 commit comments

Comments
 (0)