Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import ConfigParser, sys
- class irc:
- def __init__(self):
- self.server = ""
- self.port = 0
- self.username = ""
- self.password = ""
- self.ssl = False
- self.verbose = False
- self.key = ""
- self.realname = ""
- self.email = ""
- self.admins = []
- self.channels = channels()
- class channel:
- def __init__(self):
- self.name = ""
- self.fish = False
- self.key = ""
- class channels:
- def __init__(self):
- self.channels = []
- def find(self, channel):
- for chan in self.channels:
- if chan.name == channel:
- return chan
- return False
- def add(self, chanobj):
- if isinstance(chanobj, channel):
- self.channels.append(chanobj)
- def delete(self, channel):
- for chan in self.channels:
- if chan.name == channel:
- self.channels.remove(chan)
- return False
- def isfish(self, channel):
- for chan in self.channels:
- if chan.name == channel and chan.fish:
- return True
- return False
- class adc:
- def __init__(self):
- self.address = ""
- self.username = ""
- self.password = ""
- self.desc = ""
- self.key = ""
- self.relann = False
- self.admins = []
- class config:
- def __init__(self):
- self.irc = irc()
- self.adc = adc()
- self.cfg = ConfigParser.SafeConfigParser()
- self.reload()
- self.loadconfig()
- def reload(self):
- self.cfg.read("config.ini")
- def mapsection(self, section):
- dict1 = {}
- options = self.cfg.options(section)
- for option in options:
- try:
- dict1[option] = self.cfg.get(section, option)
- except:
- print("exception on %s!" % option)
- dict1[option] = None
- return dict1
- def loadirc(self):
- irc = self.mapsection("irc")
- self.irc.server = irc['server']
- self.irc.port = self.cfg.getint("irc", "port")
- self.irc.ssl = self.cfg.getboolean("irc", "ssl")
- self.irc.verbose = self.cfg.getboolean("irc", "verbose")
- self.irc.username = irc['username']
- self.irc.password = irc['password']
- self.irc.realname = irc['realname']
- self.irc.email = irc['email']
- self.irc.key = irc['key']
- if ", " in irc['admins']:
- t = irc['admins'].split(", ")
- for e in t:
- if e != "":
- self.irc.admins.append(e)
- if ", " in irc['channels']:
- d = irc['channels'].split(", ")
- for r in d:
- chan = channel()
- chan.name = self.cfg.get(r, "name")
- chan.fish = self.cfg.getboolean(r, "fish")
- chan.key = self.cfg.get(r, "key")
- self.irc.channels.add(chan)
- else:
- chan = channel()
- chan.name = self.cfg.get(irc['channels'], "name")
- chan.fish = self.cfg.getboolean(irc['channels'], "fish")
- chan.key = self.cfg.get(irc['channels'], "key")
- self.irc.channels.add(chan)
- def loadadc(self):
- adc = self.mapsection("adc")
- self.adc.address = adc['address']
- self.adc.username = adc['username']
- self.adc.password = adc['password']
- self.adc.desc = adc['desc']
- self.adc.key = adc['key']
- self.adc.relann = self.cfg.getboolean("adc", "relann")
- if ", " in adc['admins']:
- t = adc['admins']
- for e in t:
- self.adc.admins.append(self.cfg.get(e, "name"))
- else:
- self.adc.admins.append(adc['admins'])
- def saveirc(self):
- self.cfg.set("irc", "server", self.irc.server)
- self.cfg.set("irc", "port", str(self.irc.server))
- self.cfg.set("irc", "ssl", str(self.irc.ssl))
- self.cfg.set("irc", "verbose", str(self.irc.verbose))
- self.cfg.set("irc", "username", self.irc.username)
- self.cfg.set("irc", "password", self.irc.password)
- self.cfg.set("irc", "realname", self.irc.realname)
- self.cfg.set("irc", "email", self.irc.email)
- self.cfg.set("irc", "key", self.irc.key)
- admins = ""
- if len(self.irc.admins) > 1:
- for value in self.irc.admins:
- admins += value+ ", "
- admins = admins[0:len(admins)-2]
- elif len(self.irc.admins) == 1:
- admins = self.irc.admins[0]
- self.cfg.set("irc", "admins", admins)
- channels = ""
- if len(self.irc.channels.channels) > 1:
- for idx, obj in enumerate(self.irc.channels.channels):
- key = "channel"+str(idx+1)
- channels += key + ", "
- self.cfg.set(key, "name", obj.name)
- self.cfg.set(key, "fish", str(obj.fish))
- self.cfg.set(key, "key", obj.key)
- elif len(self.irc.channels.channels) == 1:
- key = "channel1"
- obj = self.irc.channels.channels[0]
- channels += key
- self.cfg.set(key, "name", obj.name)
- self.cfg.set(key, "fish", str(obj.fish))
- self.cfg.set(key, "key", obj.key)
- self.cfg.set("irc", "channels", channels)
- self.cfg.write(sys.stdout)
- def saveadc(self):
- self.cfg.set("adc", "address", self.adc.address)
- self.cfg.set("adc", "username", self.adc.username)
- self.cfg.set("adc", "password", self.adc.password)
- self.cfg.set("adc", "desc", self.adc.desc)
- self.cfg.set("adc", "key", self.adc.key)
- self.cfg.set("adc", "relann", str(self.adc.relann))
- admins = ""
- if len(self.adc.admins) > 1:
- for value in self.adc.admins:
- admins += value+ ", "
- admins = admins[0:len(admins)-2]
- elif len(self.adc.admins) == 1:
- admins = self.adc.admins[0]
- self.cfg.set("adc", "admins", admins)
- self.cfg.write(sys.stdout)
- def loadconfig(self):
- self.reload()
- self.loadirc()
- self.loadadc()
- def saveconfig(self):
- self.saveirc()
- self.saveadc()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement