From ae5d183db077bc87179647653def52df3d1a45fb Mon Sep 17 00:00:00 2001 From: abdullaev388 Date: Sat, 19 Feb 2022 15:53:58 +0500 Subject: [PATCH] slight TextFilter class improvement --- telebot/asyncio_filters.py | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/telebot/asyncio_filters.py b/telebot/asyncio_filters.py index cb0120b..232870a 100644 --- a/telebot/asyncio_filters.py +++ b/telebot/asyncio_filters.py @@ -92,39 +92,33 @@ class TextFilter: if self.ignore_case: text = text.lower() - - if self.equals: - self.equals = self.equals.lower() - elif self.contains: - self.contains = tuple(map(str.lower, self.contains)) - elif self.starts_with: - self.starts_with = tuple(map(str.lower, self.starts_with)) - elif self.ends_with: - self.ends_with = tuple(map(str.lower, self.ends_with)) + prepare_func = lambda string: str(string).lower() + else: + prepare_func = str if self.equals: - result = self.equals == text + result = prepare_func(self.equals) == text if result: return True elif not result and not any((self.contains, self.starts_with, self.ends_with)): return False if self.contains: - result = any([i in text for i in self.contains]) + result = any([prepare_func(i) in text for i in self.contains]) if result: return True elif not result and not any((self.starts_with, self.ends_with)): return False if self.starts_with: - result = any([text.startswith(i) for i in self.starts_with]) + result = any([text.startswith(prepare_func(i)) for i in self.starts_with]) if result: return True elif not result and not self.ends_with: return False if self.ends_with: - return any([text.endswith(i) for i in self.ends_with]) + return any([text.endswith(prepare_func(i)) for i in self.ends_with]) return False