Advertisement
Guest User

Joy.

a guest
Jan 6th, 2017
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.15 KB | None | 0 0
  1. import ConfigParser, sys
  2.  
  3. class irc:
  4.  
  5. def __init__(self):
  6. self.server = ""
  7. self.port = 0
  8. self.username = ""
  9. self.password = ""
  10. self.ssl = False
  11. self.verbose = False
  12. self.key = ""
  13. self.realname = ""
  14. self.email = ""
  15. self.admins = []
  16. self.channels = channels()
  17.  
  18. class channel:
  19.  
  20. def __init__(self):
  21. self.name = ""
  22. self.fish = False
  23. self.key = ""
  24.  
  25. class channels:
  26.  
  27. def __init__(self):
  28. self.channels = []
  29.  
  30. def find(self, channel):
  31. for chan in self.channels:
  32. if chan.name == channel:
  33. return chan
  34. return False
  35.  
  36. def add(self, chanobj):
  37. if isinstance(chanobj, channel):
  38. self.channels.append(chanobj)
  39.  
  40. def delete(self, channel):
  41. for chan in self.channels:
  42. if chan.name == channel:
  43. self.channels.remove(chan)
  44. return False
  45.  
  46. def isfish(self, channel):
  47. for chan in self.channels:
  48. if chan.name == channel and chan.fish:
  49. return True
  50. return False
  51.  
  52. class adc:
  53.  
  54. def __init__(self):
  55. self.address = ""
  56. self.username = ""
  57. self.password = ""
  58. self.desc = ""
  59. self.key = ""
  60. self.relann = False
  61. self.admins = []
  62.  
  63. class config:
  64.  
  65. def __init__(self):
  66. self.irc = irc()
  67. self.adc = adc()
  68. self.cfg = ConfigParser.SafeConfigParser()
  69. self.reload()
  70. self.loadconfig()
  71.  
  72. def reload(self):
  73. self.cfg.read("config.ini")
  74.  
  75. def mapsection(self, section):
  76. dict1 = {}
  77. options = self.cfg.options(section)
  78. for option in options:
  79. try:
  80. dict1[option] = self.cfg.get(section, option)
  81. except:
  82. print("exception on %s!" % option)
  83. dict1[option] = None
  84. return dict1
  85.  
  86. def loadirc(self):
  87. irc = self.mapsection("irc")
  88. self.irc.server = irc['server']
  89. self.irc.port = self.cfg.getint("irc", "port")
  90. self.irc.ssl = self.cfg.getboolean("irc", "ssl")
  91. self.irc.verbose = self.cfg.getboolean("irc", "verbose")
  92. self.irc.username = irc['username']
  93. self.irc.password = irc['password']
  94. self.irc.realname = irc['realname']
  95. self.irc.email = irc['email']
  96. self.irc.key = irc['key']
  97. if ", " in irc['admins']:
  98. t = irc['admins'].split(", ")
  99. for e in t:
  100. if e != "":
  101. self.irc.admins.append(e)
  102. if ", " in irc['channels']:
  103. d = irc['channels'].split(", ")
  104. for r in d:
  105. chan = channel()
  106. chan.name = self.cfg.get(r, "name")
  107. chan.fish = self.cfg.getboolean(r, "fish")
  108. chan.key = self.cfg.get(r, "key")
  109. self.irc.channels.add(chan)
  110. else:
  111. chan = channel()
  112. chan.name = self.cfg.get(irc['channels'], "name")
  113. chan.fish = self.cfg.getboolean(irc['channels'], "fish")
  114. chan.key = self.cfg.get(irc['channels'], "key")
  115. self.irc.channels.add(chan)
  116.  
  117. def loadadc(self):
  118. adc = self.mapsection("adc")
  119. self.adc.address = adc['address']
  120. self.adc.username = adc['username']
  121. self.adc.password = adc['password']
  122. self.adc.desc = adc['desc']
  123. self.adc.key = adc['key']
  124. self.adc.relann = self.cfg.getboolean("adc", "relann")
  125. if ", " in adc['admins']:
  126. t = adc['admins']
  127. for e in t:
  128. self.adc.admins.append(self.cfg.get(e, "name"))
  129. else:
  130. self.adc.admins.append(adc['admins'])
  131.  
  132. def saveirc(self):
  133. self.cfg.set("irc", "server", self.irc.server)
  134. self.cfg.set("irc", "port", str(self.irc.server))
  135. self.cfg.set("irc", "ssl", str(self.irc.ssl))
  136. self.cfg.set("irc", "verbose", str(self.irc.verbose))
  137. self.cfg.set("irc", "username", self.irc.username)
  138. self.cfg.set("irc", "password", self.irc.password)
  139. self.cfg.set("irc", "realname", self.irc.realname)
  140. self.cfg.set("irc", "email", self.irc.email)
  141. self.cfg.set("irc", "key", self.irc.key)
  142. admins = ""
  143. if len(self.irc.admins) > 1:
  144. for value in self.irc.admins:
  145. admins += value+ ", "
  146. admins = admins[0:len(admins)-2]
  147. elif len(self.irc.admins) == 1:
  148. admins = self.irc.admins[0]
  149. self.cfg.set("irc", "admins", admins)
  150. channels = ""
  151. if len(self.irc.channels.channels) > 1:
  152. for idx, obj in enumerate(self.irc.channels.channels):
  153. key = "channel"+str(idx+1)
  154. channels += key + ", "
  155. self.cfg.set(key, "name", obj.name)
  156. self.cfg.set(key, "fish", str(obj.fish))
  157. self.cfg.set(key, "key", obj.key)
  158. elif len(self.irc.channels.channels) == 1:
  159. key = "channel1"
  160. obj = self.irc.channels.channels[0]
  161. channels += key
  162. self.cfg.set(key, "name", obj.name)
  163. self.cfg.set(key, "fish", str(obj.fish))
  164. self.cfg.set(key, "key", obj.key)
  165. self.cfg.set("irc", "channels", channels)
  166. self.cfg.write(sys.stdout)
  167.  
  168. def saveadc(self):
  169. self.cfg.set("adc", "address", self.adc.address)
  170. self.cfg.set("adc", "username", self.adc.username)
  171. self.cfg.set("adc", "password", self.adc.password)
  172. self.cfg.set("adc", "desc", self.adc.desc)
  173. self.cfg.set("adc", "key", self.adc.key)
  174. self.cfg.set("adc", "relann", str(self.adc.relann))
  175. admins = ""
  176. if len(self.adc.admins) > 1:
  177. for value in self.adc.admins:
  178. admins += value+ ", "
  179. admins = admins[0:len(admins)-2]
  180. elif len(self.adc.admins) == 1:
  181. admins = self.adc.admins[0]
  182. self.cfg.set("adc", "admins", admins)
  183. self.cfg.write(sys.stdout)
  184.  
  185. def loadconfig(self):
  186. self.reload()
  187. self.loadirc()
  188. self.loadadc()
  189.  
  190. def saveconfig(self):
  191. self.saveirc()
  192. self.saveadc()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement