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,19 +149,24 @@ class SedRegex(callbacks.PluginRegexp):
messageprefix = msg.nick
else:
messageprefix = '%s thinks %s' % (msg.nick, m.nick)
if regexp_wrapper(text, pattern, timeout=0.05, plugin_name=self.name(),
fcn_name='replacer'):
if self.registryValue('boldReplacementText', msg.args[0]):
replacement = ircutils.bold(replacement)
subst = process(pattern.sub, replacement,
text, count, timeout=0.05)
if action: # If the message was an ACTION, prepend the nick back.
subst = '* %s %s' % (m.nick, subst)
try:
if regexp_wrapper(text, pattern, timeout=0.05, plugin_name=self.name(),
fcn_name='replacer'):
if self.registryValue('boldReplacementText', msg.args[0]):
replacement = ircutils.bold(replacement)
subst = process(pattern.sub, replacement,
text, count, timeout=0.05)
if action: # If the message was an ACTION, prepend the nick back.
subst = '* %s %s' % (m.nick, subst)
subst = axe_spaces(subst)
subst = axe_spaces(subst)
irc.reply(_("%s meant to say: %s") %
(messageprefix, subst), prefixNick=False)
irc.reply(_("%s meant to say: %s") %
(messageprefix, subst), prefixNick=False)
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."),