diff --git a/telethon/events/__init__.py b/telethon/events/__init__.py index a91665fb..c39c4784 100644 --- a/telethon/events/__init__.py +++ b/telethon/events/__init__.py @@ -236,11 +236,13 @@ class NewMessage(_EventBuilder): self.incoming = incoming self.outgoing = outgoing if isinstance(pattern, str): - self.pattern = re.compile(pattern).match - elif not pattern or callable(pattern): + self.pattern = [re.compile(pattern).match] + elif isinstance(pattern, (list, tuple)): self.pattern = pattern + elif not pattern or callable(pattern): + self.pattern = [pattern] elif hasattr(pattern, 'match') and callable(pattern.match): - self.pattern = pattern.match + self.pattern = [pattern.match] else: raise TypeError('Invalid pattern type given') @@ -300,8 +302,11 @@ class NewMessage(_EventBuilder): return if self.pattern: - match = self.pattern(event.message.message or '') - if not match: + for pattern in self.pattern: + match = pattern(event.message.message or '') + if match is not None: + break + else: return event.pattern_match = match