Browse Source

Updated guild settings to write ID's in string and convert them on boot to int and then save them back as int again. This is because JSON is fucked and did not like ID's and how big their were so we got errors.

tags/v1.7.0
Roxie Gibson 6 years ago
parent
commit
d1a048c537
1 changed files with 59 additions and 5 deletions
  1. +59
    -5
      roxbot/guild_settings.py

+ 59
- 5
roxbot/guild_settings.py View File

"greets": { "greets": {
"enabled": 0, "enabled": 0,
"convert": {"enabled": "bool", "welcome-channel": "channel"}, "convert": {"enabled": "bool", "welcome-channel": "channel"},
"welcome-channel": "",
"welcome-channel": 0,
"member-role": "", "member-role": "",
"custom-message": "", "custom-message": "",
"default-message": "Be sure to read the rules." "default-message": "Be sure to read the rules."
"goodbyes": { "goodbyes": {
"enabled": 0, "enabled": 0,
"convert": {"enabled": "bool", "goodbye-channel": "channel"}, "convert": {"enabled": "bool", "goodbye-channel": "channel"},
"goodbye-channel": "",
"goodbye-channel": 0,
}, },
"self_assign": { "self_assign": {
"enabled": 0, "enabled": 0,
"twitch": { "twitch": {
"enabled": 0, "enabled": 0,
"convert": {"enabled": "bool", "channel": "channel", "whitelist_enabled": "bool", "whitelist": "user"}, "convert": {"enabled": "bool", "channel": "channel", "whitelist_enabled": "bool", "whitelist": "user"},
"channel": "",
"channel": 0,
"whitelist_enabled": 0, "whitelist_enabled": 0,
"whitelist": [] "whitelist": []
}, },
self.id = guild.id self.id = guild.id
self.name = str(guild) self.name = str(guild)
self.settings = self.refresh() self.settings = self.refresh()

self.get_settings() self.get_settings()


def __str__(self): def __str__(self):
yield setting yield setting


def refresh(self): def refresh(self):
return _open_config()[str(self.id)]
settings = _open_config()[str(self.id)]

# TODO: Make this not deterministic in future.
settings["logging"]["channel"] = int(settings["logging"]["channel"])
settings["greets"]["welcome-channel"] = int(settings["greets"]["welcome-channel"])
settings["goodbyes"]["goodbye-channel"] = int(settings["goodbyes"]["goodbye-channel"])
for role in settings["self_assign"]["roles"]:
index = settings["self_assign"]["roles"].index(role)
settings["self_assign"]["roles"][index] = int(role)
settings["twitch"]["channel"] = int(settings["twitch"]["channel"])
for user in settings["twitch"]["whitelist"]:
index = settings["twitch"]["whitelist"].index(user)
settings["twitch"]["whitelist"][index] = int(user)
for channel in settings["nsfw"]["channels"]:
index = settings["nsfw"]["channels"].index(channel)
settings["nsfw"]["channels"][index] = int(channel)
for admin in settings["perm_roles"]["admin"]:
index = settings["perm_roles"]["admin"].index(admin)
settings["perm_roles"]["admin"][index] = int(admin)
for mod in settings["perm_roles"]["mod"]:
index = settings["perm_roles"]["mod"].index(mod)
settings["perm_roles"]["mod"][index] = int(mod)
for user in settings["warnings"]:
for warning in settings["warnings"][user]:
index = settings["warnings"]["user"].index(warning)
warning["warned_by"] = int(warning["warned_by"])
settings["warnings"][user][index] = warning
return settings



def get_settings(self): def get_settings(self):
self.logging = self.settings["logging"] self.logging = self.settings["logging"]
self.settings[setting] = changed_dict self.settings[setting] = changed_dict
else: else:
self.settings = changed_dict self.settings = changed_dict
settings = self.settings.copy()
settings["logging"]["channel"] = str(settings["logging"]["channel"])
settings["greets"]["welcome-channel"] = str(settings["greets"]["welcome-channel"])
settings["goodbyes"]["goodbye-channel"] = str(settings["goodbyes"]["goodbye-channel"])
for role in settings["self_assign"]["roles"]:
index = settings["self_assign"]["roles"].index(role)
settings["self_assign"]["roles"][index] = str(role)
settings["twitch"]["channel"] = str(settings["twitch"]["channel"])
for user in settings["twitch"]["whitelist"]:
index = settings["twitch"]["whitelist"].index(user)
settings["twitch"]["whitelist"][index] = str(user)
for channel in settings["nsfw"]["channels"]:
index = settings["nsfw"]["channels"].index(channel)
settings["nsfw"]["channels"][index] = str(channel)
for admin in settings["perm_roles"]["admin"]:
index = settings["perm_roles"]["admin"].index(admin)
settings["perm_roles"]["admin"][index] = str(admin)
for mod in settings["perm_roles"]["mod"]:
index = settings["perm_roles"]["mod"].index(mod)
settings["perm_roles"]["mod"][index] = str(mod)
for user in settings["warnings"]:
for warning in settings["warnings"][user]:
index = settings["warnings"]["user"].index(warning)
warning["warned_by"] = str(warning["warned_by"])
settings["warnings"][user][index] = warning
json = _open_config() json = _open_config()
json[str(self.id)] = self.settings
json[str(self.id)] = settings
_write_changes(json) _write_changes(json)
self.get_settings() self.get_settings()

Loading…
Cancel
Save