X-Git-Url: https://jfr.im/git/erebus.git/blobdiff_plain/4477123de1254afa80243f7f9eab62c5cbf7b786..3cec5bdc665d310ac628e80b007dd2d71ae7d7bd:/config.py diff --git a/config.py b/config.py index e0c6047..9755f84 100644 --- a/config.py +++ b/config.py @@ -3,7 +3,7 @@ # "Config" class (reading/providing access to bot.config) from __future__ import print_function -import sys +import sys, os if sys.version_info.major < 3: import ConfigParser @@ -12,7 +12,7 @@ else: class Config(object): def __init__(self, filename, writeout=True): - self.__dict__['config'] = ConfigParser.RawConfigParser() + self.__dict__['config'] = ConfigParser.RawConfigParser(delimiters=('=',)) self.__dict__['filename'] = filename self.__dict__['writeout'] = writeout self.config.read(filename) @@ -40,20 +40,35 @@ class Config(object): return self.config.get(section, key) except: return default - def getboolean(self, section, key): - val = self.get(section, key, False) - if val == False or val == "0" or val.lower() == "false": + def getint(self, section, key, default=0): + try: + return int(self.config.get(section, key)) + except: + return default + def getboolean(self, section, key, default=False): + val = self.get(section, key, default) + if type(val) is bool: + return val + elif val == "0" or val.lower() == "false": return False else: return True def set(self, section, key, value): - self.config.set(section, key, value) + if not self.config.has_section(section): + self.config.add_section(section) + self.config.set(section, key, str(value)) + if self.writeout: self.write() + + def delete(self, section, key): + if self.config.has_section(section): + self.config.remove_option(section, key) if self.writeout: self.write() def write(self): - with open(self.filename, 'wb') as configfile: + with open(self.filename+'.tmp', 'w') as configfile: self.config.write(configfile) + os.rename(configfile.name, self.filename) def __del__(self): if self.writeout: self.write()