Changed events.NewMessage to accept a list of patterns instead of just 1

This commit is contained in:
Emilio Molinari 2018-03-21 15:38:43 +01:00
parent 95f368201e
commit 071ebcb4ef

View File

@ -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