Bugtracker: Make error reporting optional, disable by default.
This commit is contained in:
parent
cd4cd70afa
commit
cafa17ea1c
|
@ -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'],
|
||||
|
|
|
@ -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"""))
|
||||
|
||||
|
|
|
@ -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])
|
||||
|
|
Loading…
Reference in New Issue