SedRegex: also catch errors in the regexp_wrapper() step

E.g. sre_constants.error: invalid group reference

From: e137d29eb9
This commit is contained in:
James Lu 2016-12-26 08:05:06 -08:00
parent 5370296bbf
commit 6445e90ec7

View File

@ -149,6 +149,7 @@ class SedRegex(callbacks.PluginRegexp):
messageprefix = msg.nick messageprefix = msg.nick
else: else:
messageprefix = '%s thinks %s' % (msg.nick, m.nick) messageprefix = '%s thinks %s' % (msg.nick, m.nick)
try:
if regexp_wrapper(text, pattern, timeout=0.05, plugin_name=self.name(), if regexp_wrapper(text, pattern, timeout=0.05, plugin_name=self.name(),
fcn_name='replacer'): fcn_name='replacer'):
if self.registryValue('boldReplacementText', msg.args[0]): if self.registryValue('boldReplacementText', msg.args[0]):
@ -163,6 +164,10 @@ class SedRegex(callbacks.PluginRegexp):
irc.reply(_("%s meant to say: %s") % irc.reply(_("%s meant to say: %s") %
(messageprefix, subst), prefixNick=False) (messageprefix, subst), prefixNick=False)
return return
except (ValueError, re.error) as e:
if self.registryValue('displayErrors', msg.args[0]):
irc.error('%s.%s: %s' % (e.__class__.__module__, e.__class__.__name__, e))
return
self.log.debug(_("SedRegex: Search %r not found in the last %i messages of %s."), self.log.debug(_("SedRegex: Search %r not found in the last %i messages of %s."),
msg.args[1], len(irc.state.history), msg.args[0]) msg.args[1], len(irc.state.history), msg.args[0])