mirror of
https://github.com/Mikaela/Limnoria.git
synced 2024-12-25 04:02:46 +01:00
Added a few more types, fixed help to include the current value again.
This commit is contained in:
parent
c88a7c3609
commit
da1d09d9e3
@ -76,6 +76,17 @@ class Dictionary(object):
|
|||||||
else:
|
else:
|
||||||
return self.defaults[name]
|
return self.defaults[name]
|
||||||
|
|
||||||
|
def getDefault(self, name):
|
||||||
|
name = callbacks.canonicalName(name)
|
||||||
|
return self.defaults[name]
|
||||||
|
|
||||||
|
def getChannels(self, name):
|
||||||
|
d = ircutils.IrcDict()
|
||||||
|
for (channel, names) in self.channels.iteritems():
|
||||||
|
if name in names:
|
||||||
|
d[channel] = names[name]
|
||||||
|
return d
|
||||||
|
|
||||||
def set(self, name, value, channel=None):
|
def set(self, name, value, channel=None):
|
||||||
name = callbacks.canonicalName(name)
|
name = callbacks.canonicalName(name)
|
||||||
if name not in self.originalNames:
|
if name not in self.originalNames:
|
||||||
@ -130,6 +141,14 @@ def NoSpacesStrType(s):
|
|||||||
except Error:
|
except Error:
|
||||||
raise Error, 'Value must be a string with no space characters.'
|
raise Error, 'Value must be a string with no space characters.'
|
||||||
|
|
||||||
|
def SpaceSurroundedStrType(s):
|
||||||
|
s = StrType(s)
|
||||||
|
if s.lstrip() == s:
|
||||||
|
s = ' ' + s
|
||||||
|
if s.rstrip() == s:
|
||||||
|
s += ' '
|
||||||
|
return s
|
||||||
|
|
||||||
def RegexpStrType(s):
|
def RegexpStrType(s):
|
||||||
try:
|
try:
|
||||||
s = StrType(s)
|
s = StrType(s)
|
||||||
@ -166,6 +185,15 @@ def PositiveIntType(s):
|
|||||||
except Error:
|
except Error:
|
||||||
raise Error, 'Value must be a positive integer.'
|
raise Error, 'Value must be a positive integer.'
|
||||||
|
|
||||||
|
def SpaceSeparatedStrListType(s):
|
||||||
|
try:
|
||||||
|
L = []
|
||||||
|
for s in s.split():
|
||||||
|
L.append(StrType(s))
|
||||||
|
return L
|
||||||
|
except Error:
|
||||||
|
raise Error, 'Value must be a space-separated list of strings.'
|
||||||
|
|
||||||
|
|
||||||
class Mixin(object):
|
class Mixin(object):
|
||||||
"""A mixin class to provide a "config" command that can be consistent
|
"""A mixin class to provide a "config" command that can be consistent
|
||||||
@ -252,6 +280,11 @@ class Mixin(object):
|
|||||||
channel = None
|
channel = None
|
||||||
capability = 'admin'
|
capability = 'admin'
|
||||||
(name, value) = privmsgs.getArgs(args, required=1, optional=1)
|
(name, value) = privmsgs.getArgs(args, required=1, optional=1)
|
||||||
|
def help(configurables):
|
||||||
|
s = configurables.help(name)
|
||||||
|
value = configurables.get(name, channel)
|
||||||
|
s = '%s (Current value: %r)' % (s, value)
|
||||||
|
irc.reply(msg, s)
|
||||||
if name in self.configurables:
|
if name in self.configurables:
|
||||||
if value:
|
if value:
|
||||||
if ircdb.checkCapability(msg.prefix, capability):
|
if ircdb.checkCapability(msg.prefix, capability):
|
||||||
@ -263,7 +296,7 @@ class Mixin(object):
|
|||||||
else:
|
else:
|
||||||
irc.error(msg, conf.replyNoCapability % capability)
|
irc.error(msg, conf.replyNoCapability % capability)
|
||||||
else:
|
else:
|
||||||
irc.reply(msg, self.configurables.help(name))
|
help(self.configurables)
|
||||||
elif hasattr(self, 'globalConfigurables') and \
|
elif hasattr(self, 'globalConfigurables') and \
|
||||||
name in self.globalConfigurables:
|
name in self.globalConfigurables:
|
||||||
if value:
|
if value:
|
||||||
@ -278,7 +311,7 @@ class Mixin(object):
|
|||||||
'the "admin" capability.'
|
'the "admin" capability.'
|
||||||
irc.error(msg, s)
|
irc.error(msg, s)
|
||||||
else:
|
else:
|
||||||
irc.reply(msg, self.globalConfigurables.help(name))
|
help(self.globalConfigurables)
|
||||||
else:
|
else:
|
||||||
irc.error(msg, 'There is no config variable %r' % name)
|
irc.error(msg, 'There is no config variable %r' % name)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user