Bugtracker: Make error reporting optional, disable by default.

This commit is contained in:
Krytarik Raido 2020-06-07 21:13:04 +02:00
parent cd4cd70afa
commit cafa17ea1c
3 changed files with 14 additions and 8 deletions

View File

@ -24,7 +24,7 @@ import supybot.world as world
from imp import reload
__version__ = "4.0.1"
__version__ = "4.1.0"
__author__ = supybot.Author("Krytarik Raido", "krytarik", "krytarik@tuxgarage.com")
__contributors__ = {
supybot.Author("Dennis Kaarsemaker", "Seveas", "dennis@kaarsemaker.net"): ['Original Author'],

View File

@ -50,11 +50,13 @@ def configure(advanced):
replyNoBugtracker = something("What should the bot reply with when a user requests information from an unknown bug tracker?", default=Bugtracker.replyNoBugtracker._default)
snarfTarget = something("What should be the default bug tracker used when none is specified?", default=Bugtracker.snarfTarget._default)
replyWhenNotFound = yn("Should the bot report when a bug is not found?", default=Bugtracker.replyWhenNotFound._default)
replyWhenError = yn("Should the bot report when an error occurs on getting a bug?", default=Bugtracker.replyWhenError._default)
repeatdelay = getRepeatdelay()
else:
replyNoBugtracker = Bugtracker.replyNoBugtracker._default
snarfTarget = Bugtracker.snarfTarget._default
replyWhenNotFound = Bugtracker.replyWhenNotFound._default
replyWhenError = Bugtracker.replyWhenError._default
repeatdelay = Bugtracker.repeatdelay._default
showassignee = yn("Show the assignee of a bug in the reply?", default=Bugtracker.showassignee._default)
@ -68,6 +70,7 @@ def configure(advanced):
Bugtracker.replyNoBugtracker.setValue(replyNoBugtracker)
Bugtracker.snarfTarget.setValue(snarfTarget)
Bugtracker.replyWhenNotFound.setValue(replyWhenNotFound)
Bugtracker.replyWhenError.setValue(replyWhenError)
Bugtracker.repeatdelay.setValue(repeatdelay)
Bugtracker.showassignee.setValue(showassignee)
Bugtracker.extended.setValue(extended)
@ -104,6 +107,9 @@ conf.registerGroup(Bugtracker, 'bugtrackers',
conf.registerGlobalValue(Bugtracker, 'replyWhenNotFound',
registry.Boolean(False, """Whether to send a message when a bug could not be found"""))
conf.registerGlobalValue(Bugtracker, 'replyWhenError',
registry.Boolean(False, """Whether to send a message when an error occurred on getting a bug"""))
conf.registerChannelValue(Bugtracker, 'repeatdelay',
registry.Integer(60, """Number of seconds to wait between repeated bug calls"""))

View File

@ -429,9 +429,8 @@ class Bugtracker(callbacks.PluginRegexp):
if self.registryValue('replyWhenNotFound'):
irc.error("Could not find %s bug %d" % (tracker.description, bugid))
except BugtrackerError as e:
if not sure_bug and bugid < 30:
return
irc.error(str(e))
if self.registryValue('replyWhenError') and sure_bug:
irc.error(str(e))
else:
if report:
irc.reply(report)
@ -457,11 +456,12 @@ class Bugtracker(callbacks.PluginRegexp):
return
report = self.get_bug(channel or msg.nick, tracker, 'url', bugid, self.registryValue('showassignee', channel),
self.registryValue('extended', channel), do_url=False)
except BugtrackerError as e:
irc.error(str(e))
except BugNotFoundError:
if self.registryValue('replyWhenNotFound'):
irc.error("Could not find %s bug %s" % (tracker.description, match.group('bug')))
except BugtrackerError as e:
if self.registryValue('replyWhenError'):
irc.error(str(e))
else:
if report:
irc.reply(report)
@ -692,9 +692,9 @@ class Bugzilla(IBugtracker):
bug_n = zilladom.getElementsByTagName('bug')[0]
if bug_n.hasAttribute('error'):
errtxt = bug_n.getAttribute('error')
if errtxt == 'NotFound':
if errtxt in ('NotFound', 'InvalidBugId'):
raise BugNotFoundError
s = 'Error getting %s bug #%d: %s' % (self.description, bugid, errtxt)
s = 'Could not get %s bug #%d: %s' % (self.description, bugid, errtxt)
raise BugtrackerError(s)
try:
title = _getnodetxt(bug_n.getElementsByTagName('short_desc')[0])