2010-05-24 13:38:06 +00:00
# -*- Encoding: utf-8 -*-
2006-06-26 17:57:20 +00:00
###
2007-01-23 23:42:45 +00:00
# Copyright (c) 2005-2007 Dennis Kaarsemaker
2011-05-28 06:33:21 +00:00
# Copyright (c) 2008-2011 Terence Simpson
2006-06-26 17:57:20 +00:00
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of version 2 of the GNU General Public License as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
###
import supybot . conf as conf
import supybot . registry as registry
import supybot . ircutils as ircutils
2010-05-19 13:55:10 +00:00
class Bugtrackers ( registry . SpaceSeparatedListOfStrings ) :
List = ircutils . IrcSet
2006-06-26 17:57:20 +00:00
def configure ( advanced ) :
2010-05-29 13:36:43 +00:00
from supybot . questions import expect , something , yn , output
2010-05-28 22:51:28 +00:00
def anything ( prompt , default = None ) :
""" Because supybot is pure fail """
from supybot . questions import expect
return expect ( prompt , [ ] , default = default )
2010-05-29 13:36:43 +00:00
Bugtracker = conf . registerPlugin ( ' Bugtracker ' , True )
def getRepeatdelay ( ) :
output ( " How many seconds should the bot wait before repeating bug information? " )
repeatdelay = something ( " Enter a number greater or equal to 0 " , default = Bugtracker . repeatdelay . _default )
try :
repeatdelay = int ( repeatdelay )
if repeatdelay < 0 :
raise TypeError
except TypeError :
output ( " %r is an invalid value, it must be an integer greater or equal to 0 " % repeatdelay )
return getRepeatdelay ( )
else :
return repeatdelay
2011-05-28 06:33:21 +00:00
output ( " Each of the next 3 questions can be set per-channel with the ' @Config channel ' command " )
2010-05-29 13:36:43 +00:00
bugSnarfer = yn ( " Enable detecting bugs numbers and URL in all channels? " , default = Bugtracker . bugSnarfer . _default )
2011-02-16 14:45:27 +00:00
cveSnarfer = yn ( " Enable detecting CVE numbers and URL in all channels? " , default = Bugtracker . cveSnarfer . _default )
oopsSnarfer = yn ( " Enable detecting Launchpad OOPS IDs in all channels? " , default = Bugtracker . oopsSnarfer . _default )
2010-05-29 13:36:43 +00:00
if advanced :
replyNoBugtracker = something ( " What should the bot reply with when a a user requests information from an unknown bug tracker? " , default = Bugtracker . replyNoBugtracker . _default )
snarfTarget = something ( " What should be the default bug tracker used when one isn ' t specified? " , default = Bugtracker . snarfTarget . _default )
2011-05-28 06:33:21 +00:00
replyWhenNotFound = yn ( " Should the bot report when a bug is not found? " , default = Bugtracker . replyWhenNotFound . _default )
2010-05-29 13:36:43 +00:00
repeatdelay = getRepeatdelay ( )
else :
replyNoBugtracker = Bugtracker . replyNoBugtracker . _default
snarfTarget = Bugtracker . snarfTarget . _default
replyWhenNotFound = Bugtracker . replyWhenNotFound . _default
repeatdelay = Bugtracker . repeatdelay . _default
showassignee = yn ( " Show the assignee of a bug in the reply? " , default = Bugtracker . showassignee . _default )
extended = yn ( " Show tracker-specific extended infomation? " , default = Bugtracker . extended . _default )
Bugtracker . bugSnarfer . setValue ( bugSnarfer )
2011-02-16 14:45:27 +00:00
Bugtracker . cveSnarfer . setValue ( cveSnarfer )
Bugtracker . oopsSnarfer . setValue ( oopsSnarfer )
2010-05-29 13:36:43 +00:00
Bugtracker . replyNoBugtracker . setValue ( replyNoBugtracker )
Bugtracker . snarfTarget . setValue ( snarfTarget )
Bugtracker . replyWhenNotFound . setValue ( replyWhenNotFound )
Bugtracker . repeatdelay . setValue ( repeatdelay )
Bugtracker . showassignee . setValue ( showassignee )
Bugtracker . extended . setValue ( extended )
2006-06-26 17:57:20 +00:00
Bugtracker = conf . registerPlugin ( ' Bugtracker ' )
2010-05-19 13:55:10 +00:00
conf . registerChannelValue ( Bugtracker , ' bugSnarfer ' ,
2006-06-26 17:57:20 +00:00
registry . Boolean ( False , """ Determines whether the bug snarfer will be
enabled , such that any Bugtracker URLs and bug ### seen in the channel
will have their information reported into the channel . """ ))
2010-05-19 13:55:10 +00:00
2011-02-16 14:45:27 +00:00
conf . registerChannelValue ( Bugtracker , ' cveSnarfer ' ,
registry . Boolean ( False , """ Determines whether the CVE snarfer will be
enabled , such that any CVE URLs and CVE - ? ? ? ? - ? ? ? ? seen in the channel
will have their information reported into the channel . """ ))
conf . registerChannelValue ( Bugtracker , ' oopsSnarfer ' ,
registry . Boolean ( False , """ Determines whether the OOPS snarfer will be
enabled , such that any OOPS ### seen in the channel
will have their information reported into the channel . """ ))
2011-05-28 06:33:21 +00:00
#conf.registerChannelValue(Bugtracker, 'bugReporter',
# registry.String('', """Report new bugs (experimental)"""))
2010-05-19 13:55:10 +00:00
conf . registerChannelValue ( Bugtracker , ' replyNoBugtracker ' ,
2006-06-26 17:57:20 +00:00
registry . String ( ' I don \' t have a bugtracker %s . ' , """ Determines the phrase
to use when notifying the user that there is no information about that
bugtracker site . """ ))
2010-05-19 13:55:10 +00:00
conf . registerChannelValue ( Bugtracker , ' snarfTarget ' ,
2011-05-28 06:33:21 +00:00
registry . String ( ' launchpad ' , """ Determines the bugtracker to query when the
2006-06-26 17:57:20 +00:00
snarf command is triggered """ ))
2010-05-19 13:55:10 +00:00
conf . registerGlobalValue ( Bugtracker , ' bugtrackers ' ,
2006-06-26 17:57:20 +00:00
Bugtrackers ( [ ] , """ Determines what bugtrackers will be added to the bot when it starts. """ ) )
2010-05-19 13:55:10 +00:00
conf . registerGlobalValue ( Bugtracker , ' replyWhenNotFound ' ,
2006-06-26 17:57:20 +00:00
registry . Boolean ( False , """ Whether to send a message when a bug could not be
found """ ))
2010-05-19 13:55:10 +00:00
conf . registerChannelValue ( Bugtracker , ' repeatdelay ' ,
2006-12-27 14:33:59 +00:00
registry . Integer ( 60 , """ Number of seconds to wait between repeated bug calls """ ) )
2010-05-19 13:55:10 +00:00
conf . registerChannelValue ( Bugtracker , ' showassignee ' ,
2007-09-17 19:00:51 +00:00
registry . Boolean ( False , """ Whether to show the assignee in bug reports """ ) )
2010-05-19 13:55:10 +00:00
conf . registerChannelValue ( Bugtracker , ' extended ' ,
registry . Boolean ( False , " Show optional extneded bug information, specific to trackers " ) )
2007-01-23 23:42:45 +00:00
2011-05-28 06:33:21 +00:00
#conf.registerGlobalValue(Bugtracker, 'reportercache',
# registry.String('', """Name of the basedir for the bugreporter cache""", private=True))
2010-05-19 13:55:10 +00:00
2011-05-28 06:33:21 +00:00
#conf.registerGlobalValue(Bugtracker, 'imap_server',
# registry.String('', """IMAP server for bugmail account""",private=True))
2010-05-19 13:55:10 +00:00
2011-05-28 06:33:21 +00:00
#conf.registerGlobalValue(Bugtracker, 'imap_user',
# registry.String('', """IMAP user for bugmail account""", private=True))
2010-05-19 13:55:10 +00:00
2011-05-28 06:33:21 +00:00
#conf.registerGlobalValue(Bugtracker, 'imap_password',
# registry.String('', """IMAP password for bugmail account""", private=True))
2010-05-19 13:55:10 +00:00
2011-05-28 06:33:21 +00:00
#conf.registerGlobalValue(Bugtracker, 'imap_ssl',
# registry.Boolean(False, """Use SSL for imap connections""", private=True))
2007-01-23 23:42:45 +00:00