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
2010-05-24 13:38:06 +00:00
# Copyright (c) 2008-2010 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
bugSnarfer = yn ( " Enable detecting bugs numbers and URL in all channels? " , default = Bugtracker . bugSnarfer . _default )
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 )
replyWhenNotFound = yn ( " Respond when a bug is not found? " , default = Bugtracker . replyWhenNotFound . _default )
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 )
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
2010-05-29 13:36:43 +00:00
conf . registerChannelValue ( Bugtracker , ' bugReporter ' ,
2006-08-18 23:22:54 +00:00
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 ' ,
2010-05-29 13:36:43 +00:00
registry . String ( ' lp ' , """ 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
2010-05-19 13:55:10 +00:00
conf . registerGlobalValue ( Bugtracker , ' reportercache ' ,
2009-10-12 18:26:35 +00:00
registry . String ( ' ' , """ Name of the basedir for the bugreporter cache """ , private = True ) )
2010-05-19 13:55:10 +00:00
conf . registerGlobalValue ( Bugtracker , ' imap_server ' ,
2007-01-23 23:42:45 +00:00
registry . String ( ' ' , """ IMAP server for bugmail account """ , private = True ) )
2010-05-19 13:55:10 +00:00
conf . registerGlobalValue ( Bugtracker , ' imap_user ' ,
2007-01-23 23:42:45 +00:00
registry . String ( ' ' , """ IMAP user for bugmail account """ , private = True ) )
2010-05-19 13:55:10 +00:00
conf . registerGlobalValue ( Bugtracker , ' imap_password ' ,
2007-01-23 23:42:45 +00:00
registry . String ( ' ' , """ IMAP password for bugmail account """ , private = True ) )
2010-05-19 13:55:10 +00:00
conf . registerGlobalValue ( Bugtracker , ' imap_ssl ' ,
2009-10-12 18:26:35 +00:00
registry . Boolean ( False , """ Use SSL for imap connections """ , private = True ) )
2007-01-23 23:42:45 +00:00