From 5c80f112612e6d1701e554da36d87963811983b7 Mon Sep 17 00:00:00 2001 From: coder2020official Date: Sun, 12 Sep 2021 00:21:35 +0500 Subject: [PATCH 1/5] Updated __init__.py --- examples/custom_filters.py | 46 ++++++++++++++++++++++++++++++++++++++ telebot/__init__.py | 4 ++-- 2 files changed, 48 insertions(+), 2 deletions(-) create mode 100644 examples/custom_filters.py diff --git a/examples/custom_filters.py b/examples/custom_filters.py new file mode 100644 index 0000000..23cebe3 --- /dev/null +++ b/examples/custom_filters.py @@ -0,0 +1,46 @@ +import telebot +from telebot import util + +bot = telebot.TeleBot('TOKEN') + + +# AdvancedCustomFilter is for list, string filter values +class MainFilter(util.AdvancedCustomFilter): + key='text' + @staticmethod + def check(message, text): + return message.text in text + +# SimpleCustomFilter is for boolean values, such as is_admin=True +class IsAdmin(util.SimpleCustomFilter): + key='is_admin' + @staticmethod + def check(message: telebot.types.Message): + if bot.get_chat_member(message.chat.id,message.from_user.id).status in ['administrator','creator']: + return True + else: + return False + + +@bot.message_handler(is_admin=True, commands=['admin']) # Check if user is admin +def admin_rep(message): + bot.send_message(message.chat.id, "Hi admin") + +@bot.message_handler(is_admin=False, commands=['admin']) # If user is not admin +def not_admin(message): + bot.send_message(message.chat.id, "You are not admin") + +@bot.message_handler(text=['hi']) # Response to hi message +def welcome_hi(message): + bot.send_message(message.chat.id, 'You said hi') + +@bot.message_handler(text=['bye']) # Response to bye message +def bye_user(message): + bot.send_message(message.chat.id, 'You said bye') + + +# Do not forget to register filters +bot.add_custom_filter(MainFilter) +bot.add_custom_filter(IsAdmin) + +bot.polling(skip_pending=True) # Skip old updates \ No newline at end of file diff --git a/telebot/__init__.py b/telebot/__init__.py index e379435..5816cdf 100644 --- a/telebot/__init__.py +++ b/telebot/__init__.py @@ -3140,9 +3140,9 @@ class TeleBot: filter_check = self.custom_filters.get(message_filter) if not filter_check: return False - elif isinstance(filter_check, util.SimpleCustomFilter): + elif isinstance(filter_check(), util.SimpleCustomFilter): return filter_value == filter_check.check(message) - elif isinstance(filter_check, util.AdvancedCustomFilter): + elif isinstance(filter_check(), util.AdvancedCustomFilter): return filter_check.check(message, filter_value) else: logger.error("Custom filter: wrong type. Should be SimpleCustomFilter or AdvancedCustomFilter.") From 5d611ea7f3ce34f22626ce4aa91d3c7400a2fa23 Mon Sep 17 00:00:00 2001 From: coder2020official Date: Sun, 12 Sep 2021 00:24:52 +0500 Subject: [PATCH 2/5] upd --- examples/custom_filters.py | 2 +- examples/deep_linking.py | 3 +-- examples/echo_bot.py | 2 +- examples/inline_example.py | 2 +- examples/inline_keyboard_example.py | 2 +- examples/payments_example.py | 3 +-- examples/skip_updates_example.py | 2 +- 7 files changed, 7 insertions(+), 9 deletions(-) diff --git a/examples/custom_filters.py b/examples/custom_filters.py index 23cebe3..0294468 100644 --- a/examples/custom_filters.py +++ b/examples/custom_filters.py @@ -43,4 +43,4 @@ def bye_user(message): bot.add_custom_filter(MainFilter) bot.add_custom_filter(IsAdmin) -bot.polling(skip_pending=True) # Skip old updates \ No newline at end of file +bot.polling(skip_pending=True,non_stop=True) # Skip old updates \ No newline at end of file diff --git a/examples/deep_linking.py b/examples/deep_linking.py index f5ea506..e0a7e94 100644 --- a/examples/deep_linking.py +++ b/examples/deep_linking.py @@ -73,5 +73,4 @@ def send_welcome(message): reply = "Please visit me via a provided URL from the website." bot.reply_to(message, reply) - -bot.polling() +bot.polling(skip_pending=True,non_stop=True) # Skip old updates diff --git a/examples/echo_bot.py b/examples/echo_bot.py index b66eb34..ec71f70 100644 --- a/examples/echo_bot.py +++ b/examples/echo_bot.py @@ -25,4 +25,4 @@ def echo_message(message): bot.reply_to(message, message.text) -bot.polling() +bot.polling(skip_pending=True,non_stop=True) # Skip old updates diff --git a/examples/inline_example.py b/examples/inline_example.py index 21f05eb..8bb064d 100644 --- a/examples/inline_example.py +++ b/examples/inline_example.py @@ -61,7 +61,7 @@ def default_query(inline_query): def main_loop(): - bot.polling(True) + bot.polling(skip_pending=True) # Skip old updates while 1: time.sleep(3) diff --git a/examples/inline_keyboard_example.py b/examples/inline_keyboard_example.py index f2b3fce..56b2ae5 100644 --- a/examples/inline_keyboard_example.py +++ b/examples/inline_keyboard_example.py @@ -24,4 +24,4 @@ def callback_query(call): def message_handler(message): bot.send_message(message.chat.id, "Yes/no?", reply_markup=gen_markup()) -bot.polling(none_stop=True) +bot.polling(skip_pending=True,non_stop=True) # Skip old updates diff --git a/examples/payments_example.py b/examples/payments_example.py index d0f52d4..efdddaf 100644 --- a/examples/payments_example.py +++ b/examples/payments_example.py @@ -78,5 +78,4 @@ def got_payment(message): parse_mode='Markdown') -bot.skip_pending = True -bot.polling(none_stop=True, interval=0) +bot.polling(skip_pending=True,non_stop=True) # Skip old updates diff --git a/examples/skip_updates_example.py b/examples/skip_updates_example.py index 0bd631b..01aa414 100644 --- a/examples/skip_updates_example.py +++ b/examples/skip_updates_example.py @@ -10,4 +10,4 @@ def send_welcome(message): def echo_all(message): bot.reply_to(message, message.text) -bot.polling(skip_pending=True)# Skip pending skips old updates +bot.polling(skip_pending=True,non_stop=True) # Skip old updates From e89acc8ba635fd4e7fdac41c9e0acdcfef6e0242 Mon Sep 17 00:00:00 2001 From: coder2020official Date: Sun, 12 Sep 2021 00:27:04 +0500 Subject: [PATCH 3/5] Update custom_filters.py --- examples/custom_filters.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/custom_filters.py b/examples/custom_filters.py index 0294468..e9e40e8 100644 --- a/examples/custom_filters.py +++ b/examples/custom_filters.py @@ -40,7 +40,7 @@ def bye_user(message): # Do not forget to register filters -bot.add_custom_filter(MainFilter) -bot.add_custom_filter(IsAdmin) +bot.add_custom_filter(MainFilter()) +bot.add_custom_filter(IsAdmin()) bot.polling(skip_pending=True,non_stop=True) # Skip old updates \ No newline at end of file From 88f91518c7518dc8648f7fd6be2f96714df444d4 Mon Sep 17 00:00:00 2001 From: coder2020official Date: Sun, 12 Sep 2021 00:27:51 +0500 Subject: [PATCH 4/5] Update __init__.py --- telebot/__init__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/telebot/__init__.py b/telebot/__init__.py index 5816cdf..e379435 100644 --- a/telebot/__init__.py +++ b/telebot/__init__.py @@ -3140,9 +3140,9 @@ class TeleBot: filter_check = self.custom_filters.get(message_filter) if not filter_check: return False - elif isinstance(filter_check(), util.SimpleCustomFilter): + elif isinstance(filter_check, util.SimpleCustomFilter): return filter_value == filter_check.check(message) - elif isinstance(filter_check(), util.AdvancedCustomFilter): + elif isinstance(filter_check, util.AdvancedCustomFilter): return filter_check.check(message, filter_value) else: logger.error("Custom filter: wrong type. Should be SimpleCustomFilter or AdvancedCustomFilter.") From 4e37662ab3048128277a2f85c96bdeaead5c5386 Mon Sep 17 00:00:00 2001 From: coder2020official Date: Sun, 12 Sep 2021 00:30:56 +0500 Subject: [PATCH 5/5] upd --- examples/deep_linking.py | 3 ++- examples/echo_bot.py | 2 +- examples/inline_example.py | 2 +- examples/inline_keyboard_example.py | 2 +- examples/payments_example.py | 3 ++- examples/skip_updates_example.py | 2 +- 6 files changed, 8 insertions(+), 6 deletions(-) diff --git a/examples/deep_linking.py b/examples/deep_linking.py index e0a7e94..f5ea506 100644 --- a/examples/deep_linking.py +++ b/examples/deep_linking.py @@ -73,4 +73,5 @@ def send_welcome(message): reply = "Please visit me via a provided URL from the website." bot.reply_to(message, reply) -bot.polling(skip_pending=True,non_stop=True) # Skip old updates + +bot.polling() diff --git a/examples/echo_bot.py b/examples/echo_bot.py index ec71f70..b66eb34 100644 --- a/examples/echo_bot.py +++ b/examples/echo_bot.py @@ -25,4 +25,4 @@ def echo_message(message): bot.reply_to(message, message.text) -bot.polling(skip_pending=True,non_stop=True) # Skip old updates +bot.polling() diff --git a/examples/inline_example.py b/examples/inline_example.py index 8bb064d..21f05eb 100644 --- a/examples/inline_example.py +++ b/examples/inline_example.py @@ -61,7 +61,7 @@ def default_query(inline_query): def main_loop(): - bot.polling(skip_pending=True) # Skip old updates + bot.polling(True) while 1: time.sleep(3) diff --git a/examples/inline_keyboard_example.py b/examples/inline_keyboard_example.py index 56b2ae5..f2b3fce 100644 --- a/examples/inline_keyboard_example.py +++ b/examples/inline_keyboard_example.py @@ -24,4 +24,4 @@ def callback_query(call): def message_handler(message): bot.send_message(message.chat.id, "Yes/no?", reply_markup=gen_markup()) -bot.polling(skip_pending=True,non_stop=True) # Skip old updates +bot.polling(none_stop=True) diff --git a/examples/payments_example.py b/examples/payments_example.py index efdddaf..d0f52d4 100644 --- a/examples/payments_example.py +++ b/examples/payments_example.py @@ -78,4 +78,5 @@ def got_payment(message): parse_mode='Markdown') -bot.polling(skip_pending=True,non_stop=True) # Skip old updates +bot.skip_pending = True +bot.polling(none_stop=True, interval=0) diff --git a/examples/skip_updates_example.py b/examples/skip_updates_example.py index 01aa414..0bd631b 100644 --- a/examples/skip_updates_example.py +++ b/examples/skip_updates_example.py @@ -10,4 +10,4 @@ def send_welcome(message): def echo_all(message): bot.reply_to(message, message.text) -bot.polling(skip_pending=True,non_stop=True) # Skip old updates +bot.polling(skip_pending=True)# Skip pending skips old updates