MeIiodas

Untitled

May 12th, 2019
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.90 KB | None | 0 0
  1. import os
  2. import configparser
  3.  
  4. class config:
  5. # Check if config.ini exists and load/generate it
  6. def __init__(self, file):
  7. """
  8. Initialize a config file object
  9.  
  10. :param file: file name
  11. """
  12. self.config = configparser.ConfigParser()
  13. self.default = True
  14. self.fileName = file
  15. if os.path.isfile(self.fileName):
  16. # config.ini found, load it
  17. self.config.read(self.fileName)
  18. self.default = False
  19. else:
  20. # config.ini not found, generate a default one
  21. self.generateDefaultConfig()
  22. self.default = True
  23.  
  24. def reload(self):
  25. tempConfig = configparser.ConfigParser()
  26. tempConfig.read(self.fileName)
  27. if not self.checkConfig(tempConfig):
  28. return False
  29. self.config = tempConfig
  30. return True
  31.  
  32.  
  33. # Check if config.ini has all needed the keys
  34. def checkConfig(self, parsedConfig=None):
  35. """
  36. Check is the config file has all required keys
  37.  
  38. :return: True if valid, False if not valid
  39. """
  40. if parsedConfig is None:
  41. parsedConfig = self.config
  42. try:
  43. # Try to get all the required keys
  44. parsedConfig.get("db", "host")
  45. parsedConfig.get("db", "username")
  46. parsedConfig.get("db", "password")
  47. parsedConfig.get("db", "database")
  48. parsedConfig.get("db", "workers")
  49.  
  50. parsedConfig.get("redis", "host")
  51. parsedConfig.get("redis", "port")
  52. parsedConfig.get("redis", "database")
  53. parsedConfig.get("redis", "password")
  54.  
  55. parsedConfig.get("server", "port")
  56. parsedConfig.get("server", "threads")
  57. parsedConfig.get("server", "gzip")
  58. parsedConfig.get("server", "gziplevel")
  59. parsedConfig.get("server", "cikey")
  60. parsedConfig.get("server", "letsapiurl")
  61. parsedConfig.get("server", "deltaurl")
  62. parsedConfig.get("server", "publicdelta")
  63.  
  64. parsedConfig.get("cheesegull", "apiurl")
  65. parsedConfig.get("cheesegull", "apikey")
  66.  
  67. parsedConfig.get("debug", "enable")
  68. parsedConfig.get("debug", "packets")
  69. parsedConfig.get("debug", "time")
  70.  
  71. parsedConfig.get("sentry", "enable")
  72. parsedConfig.get("sentry", "banchodsn")
  73. parsedConfig.get("sentry", "ircdsn")
  74.  
  75. parsedConfig.get("discord", "enable")
  76. parsedConfig.get("discord", "boturl")
  77. parsedConfig.get("discord", "devgroup")
  78.  
  79. parsedConfig.get("datadog", "enable")
  80. parsedConfig.get("datadog", "apikey")
  81. parsedConfig.get("datadog", "appkey")
  82.  
  83. parsedConfig.get("irc", "enable")
  84. parsedConfig.get("irc", "port")
  85. parsedConfig.get("irc", "hostname")
  86.  
  87. parsedConfig.get("localize", "enable")
  88. parsedConfig.get("localize", "ipapiurl")
  89. return True
  90. except configparser.Error:
  91. return False
  92.  
  93. def generateDefaultConfig(self):
  94. """
  95. Write a default config file to disk
  96.  
  97. :return:
  98. """
  99. # Open config.ini in write mode
  100. f = open(self.fileName, "w")
  101.  
  102. # Set keys to config object
  103. self.config.add_section("db")
  104. self.config.set("db", "host", "localhost")
  105. self.config.set("db", "username", "root")
  106. self.config.set("db", "password", "")
  107. self.config.set("db", "database", "ripple")
  108. self.config.set("db", "workers", "4")
  109.  
  110. self.config.add_section("redis")
  111. self.config.set("redis", "host", "localhost")
  112. self.config.set("redis", "port", "6379")
  113. self.config.set("redis", "database", "0")
  114. self.config.set("redis", "password", "")
  115.  
  116. self.config.add_section("server")
  117. self.config.set("server", "port", "5001")
  118. self.config.set("server", "threads", "16")
  119. self.config.set("server", "gzip", "1")
  120. self.config.set("server", "gziplevel", "6")
  121. self.config.set("server", "cikey", "changeme")
  122. self.config.set("server", "letsapiurl", "http://127.0.0.1:50002/letsapi")
  123. self.config.set("server", "deltaurl", "delta.ppy.sh")
  124. self.config.set("server", "publicdelta", "0")
  125.  
  126. self.config.add_section("cheesegull")
  127. self.config.set("cheesegull", "apiurl", "https://cg.mxr.lol/api")
  128. self.config.set("cheesegull", "apikey", "50c8443606cae8d7e4323ceb8d2771e31c2f3da5")
  129.  
  130. self.config.add_section("debug")
  131. self.config.set("debug", "enable", "0")
  132. self.config.set("debug", "packets", "0")
  133. self.config.set("debug", "time", "0")
  134.  
  135. self.config.add_section("sentry")
  136. self.config.set("sentry", "enable", "0")
  137. self.config.set("sentry", "banchodsn", "")
  138. self.config.set("sentry", "ircdsn", "")
  139.  
  140. self.config.add_section("discord")
  141. self.config.set("discord", "enable", "0")
  142. self.config.set("discord", "boturl", "")
  143. self.config.set("discord", "devgroup", "")
  144.  
  145. self.config.add_section("datadog")
  146. self.config.set("datadog", "enable", "0")
  147. self.config.set("datadog", "apikey", "")
  148. self.config.set("datadog", "appkey", "")
  149.  
  150. self.config.add_section("irc")
  151. self.config.set("irc", "enable", "1")
  152. self.config.set("irc", "port", "6667")
  153. self.config.set("irc", "hostname", "ripple")
  154.  
  155. self.config.add_section("localize")
  156. self.config.set("localize", "enable", "1")
  157. self.config.set("localize", "ipapiurl", "http://ip.zxq.co")
  158.  
  159. # Write ini to file and close
  160. self.config.write(f)
  161. f.close()
Add Comment
Please, Sign In to add comment