Clearer/simpler initial configuration

This commit is contained in:
Twentysix 2016-05-26 00:14:38 +02:00
parent 3d53d4e88c
commit f5a628214b

50
red.py
View File

@ -172,49 +172,55 @@ def check_configs():
"process.") "process.")
exit(1) exit(1)
print("\nChoose a prefix (or multiple ones, one at once) for the " print("\nChoose a prefix. A prefix is what you type before a command.\n"
"commands. Type exit when you're done. Example prefix: !") "A typical prefix would be the exclamation mark. Example: !help\n"
prefixes = [] "Can be multiple characters. You will be able to change it "
new_prefix = "" "later and add more of them.\nChoose your prefix:")
while new_prefix.lower() != "exit" or prefixes == []: confirmation = False
new_prefix = input("Prefix> ") while confirmation is False:
if new_prefix.lower() != "exit" and new_prefix != "": new_prefix = ensure_reply("\nPrefix> ").strip()
prefixes.append(new_prefix) print("\nAre you sure you want {0} as your prefix?\nYou "
# Remember we're using property's here, oh well... "will be able to issue commands like this: {0}help"
settings.prefixes = sorted(prefixes, reverse=True) "\nType yes to confirm or no to change it".format(new_prefix))
confirmation = get_answer()
print("\nIf you know what an User ID is, input *your own* now and" settings.prefixes = [new_prefix]
" press enter.")
print("Otherwise you can just set yourself as owner later with " print("\nOnce you're done with the configuration, you will have to type "
"'[prefix]set owner'. Leave empty and press enter in this case.") "'{}set owner' *in Discord's chat*\nto set yourself as owner.\n"
settings.owner = input("\nID> ") "Press enter to continue".format(new_prefix))
settings.owner = input("") # Shh, they will never know it's here
if settings.owner == "": if settings.owner == "":
settings.owner = "id_here" settings.owner = "id_here"
if not settings.owner.isdigit() or len(settings.owner) < 17: if not settings.owner.isdigit() or len(settings.owner) < 17:
if settings.owner != "id_here": if settings.owner != "id_here":
print("\nERROR: What you entered is not a valid ID. Set " print("\nERROR: What you entered is not a valid ID. Set "
"yourself as owner later with [prefix]set owner") "yourself as owner later with {}set owner".format(new_prefix))
settings.owner = "id_here" settings.owner = "id_here"
print("\nInput the admin role's name. Anyone with this role will be " print("\nInput the admin role's name. Anyone with this role in Discord will be "
"able to use the bot's admin commands") "able to use the bot's admin commands")
print("Leave blank for default name (Transistor)") print("Leave blank for default name (Transistor)")
settings.default_admin = input("\nAdmin role> ") settings.default_admin = input("\nAdmin role> ")
if settings.default_admin == "": if settings.default_admin == "":
settings.default_admin = "Transistor" settings.default_admin = "Transistor"
print("\nInput the moderator role's name. Anyone with this role will " print("\nInput the moderator role's name. Anyone with this role in Discord will "
"be able to use the bot's mod commands") "be able to use the bot's mod commands")
print("Leave blank for default name (Process)") print("Leave blank for default name (Process)")
settings.default_mod = input("\nModerator role> ") settings.default_mod = input("\nModerator role> ")
if settings.default_mod == "": if settings.default_mod == "":
settings.default_mod = "Process" settings.default_mod = "Process"
print("\nThe configuration is done. Leave this window always open to keep "
"Red online.\nAll commands will have to be issued through Discord's "
"chat, *this window will now be read only*.\nPress enter to continue")
input("\n")
if not os.path.isfile("data/red/cogs.json"): if not os.path.isfile("data/red/cogs.json"):
print("Creating new cogs.json...") print("Creating new cogs.json...")
dataIO.save_json("data/red/cogs.json", {}) dataIO.save_json("data/red/cogs.json", {})
def set_logger(): def set_logger():
global logger global logger
logger = logging.getLogger("discord") logger = logging.getLogger("discord")
@ -247,6 +253,11 @@ def set_logger():
logger.addHandler(fhandler) logger.addHandler(fhandler)
logger.addHandler(stdout_handler) logger.addHandler(stdout_handler)
def ensure_reply(msg):
choice = ""
while choice == "":
choice = input(msg)
return choice
def get_answer(): def get_answer():
choices = ("yes", "y", "no", "n") choices = ("yes", "y", "no", "n")
@ -258,7 +269,6 @@ def get_answer():
else: else:
return False return False
def set_cog(cog, value): def set_cog(cog, value):
data = dataIO.load_json("data/red/cogs.json") data = dataIO.load_json("data/red/cogs.json")
data[cog] = value data[cog] = value