Skip to content

Commit

Permalink
MessageParser: Log and skip current regexp on error
Browse files Browse the repository at this point in the history
  • Loading branch information
progval committed Sep 22, 2023
1 parent 91accc0 commit 850b4c3
Showing 1 changed file with 17 additions and 14 deletions.
31 changes: 17 additions & 14 deletions plugins/MessageParser/plugin.py
Original file line number Diff line number Diff line change
Expand Up @@ -192,20 +192,23 @@ def do_privmsg_notice(self, irc, msg):
return
max_triggers = self.registryValue('maxTriggers', channel, irc.network)
for (channel, regexp, action) in results:
for match in re.finditer(regexp, msg.args[1]):
if match is not None:
thisaction = action
self._updateRank(irc.network, channel, regexp)
for (i, j) in enumerate(match.groups()):
if match.group(i+1) is not None:
# Need a lambda to prevent re.sub from
# interpreting backslashes in the replacement
thisaction = re.sub(r'\$' + str(i+1), lambda _: match.group(i+1), thisaction)
actions.append((regexp, thisaction))
if max_triggers != 0 and max_triggers == len(actions):
break
if max_triggers != 0 and max_triggers == len(actions):
break
try:
for match in re.finditer(regexp, msg.args[1]):
if match is not None:
thisaction = action
self._updateRank(irc.network, channel, regexp)
for (i, j) in enumerate(match.groups()):
if match.group(i+1) is not None:
# Need a lambda to prevent re.sub from
# interpreting backslashes in the replacement
thisaction = re.sub(r'\$' + str(i+1), lambda _: match.group(i+1), thisaction)
actions.append((regexp, thisaction))
if max_triggers != 0 and max_triggers == len(actions):
break
if max_triggers != 0 and max_triggers == len(actions):
break
except Exception:
self.log.exception('Error while handling %r', regexp)


for (regexp, action) in actions:
Expand Down

0 comments on commit 850b4c3

Please sign in to comment.