1 # Erebus IRC bot - Author: John Runyon
2 # "Config" class (reading/providing access to bot.config)
7 def __init__(self
, filename
, writeout
=True):
8 self
.__dict
__['config'] = ConfigParser
.RawConfigParser()
9 self
.__dict
__['filename'] = filename
10 self
.__dict
__['writeout'] = writeout
11 self
.config
.read(filename
)
13 def __getattr__(self
, key
):
14 return self
.config
.get('erebus', key
)
16 def __setattr__(self
, key
, value
):
17 self
.config
.set('erebus', key
, value
)
19 def __getitem__(self
, section
): #!! READ-ONLY !!
20 return {item: self.config.get(section, item) for item in self.config.options(section)}
23 return self
.config
.get('levels', cmd
)
25 def setlevel(self
, cmd
, level
):
26 self
.config
.set('levels', cmd
, level
)
28 def items(self
, section
='erebus'):
29 return self
.config
.items(section
)
31 def get(self
, section
, key
, default
=None):
33 return self
.config
.get(section
, key
)
36 def getboolean(self
, section
, key
):
37 val
= self
.get(section
, key
, False)
38 if val
== False or val
== "0" or val
.lower() == "false" or val
.strip() == "":
43 def set(self
, section
, key
, value
):
44 self
.config
.set(section
, key
, value
)
47 with open(self
.filename
, 'wb') as configfile
:
48 self
.config
.write(configfile
)
51 if self
.writeout
: self
.write()
53 def setup(fn
='bot.config', writeout
=True):
54 return Config(fn
, writeout
)
56 if __name__
== '__main__':
58 cfg
= Config(sys
.argv
[1], False)
60 for s
in cfg
.config
.sections():
61 for k
, v
in cfg
.items(s
):
62 print "[%r][%r] = %r" % (s
, k
, v
)
63 # for k, v in cfg.items():
64 # print 'erebus.'+k, '=', v